feat(media): split layout 2/3 carte + 1/3 chatbot + toggle plein ecran
- Chatbot passe d'overlay flottant a inline (1/3 hauteur permanent) - Bouton [Carte plein ecran] / [Chatbot plein ecran] / [Vue partagee] - Transition CSS douce 0.3s ease sur height/flex-basis/opacity - Restart D3 simulation alpha(0.3) apres transition (350ms delay) - localStorage persistance du mode (cle media-layout-mode) - Responsive mobile <768px : stack vertical carte 60vh + chatbot 40vh - CartePensees expose triggerResize() via defineExpose - ChatbotPensees : prop inline booleen, 2 modes rendu (overlay/inline) V2 Phase 4 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -128,6 +128,16 @@ watch(() => props.active, (val) => { if (val && import.meta.client && props.data
|
||||
watch(() => props.data, (val) => { if (val && props.active && import.meta.client) requestAnimationFrame(() => requestAnimationFrame(() => initGraph())) })
|
||||
onMounted(async () => { if (import.meta.client && props.data && props.active) { await nextTick(); initGraph() } })
|
||||
onUnmounted(() => { if (simulation) simulation.stop() })
|
||||
|
||||
// Expose pour reset D3 apres resize du conteneur
|
||||
function triggerResize() {
|
||||
if (simulation) {
|
||||
simulation.alpha(0.3).restart()
|
||||
} else if (import.meta.client && props.data && props.active) {
|
||||
initGraph()
|
||||
}
|
||||
}
|
||||
defineExpose({ triggerResize })
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
Reference in New Issue
Block a user