Thème
Superviseur — Frontend / features/map/useMapEditor / useMapEditor
Fonction: useMapEditor()
ts
function useMapEditor(): object;Défini dans: features/map/useMapEditor.ts:35
Logique de l'éditeur de plans : chargement et navigation entre plans, sauvegarde (avec suivi des modifications non enregistrées), téléversement d'image de fond (image ou PDF converti via pdf.js), réordonnancement des onglets et suppression. Extrait de MapEditor.vue pour séparer le comportement du gabarit.
Retourne
| Nom | Type | Description | Défini dans |
|---|---|---|---|
maps | Ref<object[], BuildingMap[] | object[]> | - | features/map/useMapEditor.ts:570 |
currentMap | Ref< | { id: string; name: string; imageUrl: string; imageName?: string; points: object[]; pointSize?: number; lineSize?: number; labelScale?: number; resolutionScale?: number; sortOrder?: number; createdAt: string; } | null, | BuildingMap | { id: string; name: string; imageUrl: string; imageName?: string; points: object[]; pointSize?: number; lineSize?: number; labelScale?: number; resolutionScale?: number; sortOrder?: number; createdAt: string; } | null> | - | features/map/useMapEditor.ts:571 |
unifiedMapRef | any | - | features/map/useMapEditor.ts:572 |
isSaving | Ref<boolean, boolean> | - | features/map/useMapEditor.ts:573 |
justSaved | Ref<boolean, boolean> | - | features/map/useMapEditor.ts:574 |
hasUnsavedChanges | Ref<boolean, boolean> | - | features/map/useMapEditor.ts:575 |
selectMap() | (map) => Promise<void> | Sélectionne un plan avec un fondu de la seule zone de plan : l'image cible se précharge, la permutation se fait pendant que le plan est invisible, puis fondu d'entrée — sans à-coup. | features/map/useMapEditor.ts:576 |
locateItem() | (item) => Promise<void> | Localise un élément placé qui n'est pas sur le plan courant : bascule vers le plan qui le contient puis le survole. Déclenché par l'événement locate-item d'UnifiedMap (clic sur un élément de la bibliothèque situé sur un autre plan). | features/map/useMapEditor.ts:577 |
onMapUpdate() | (m) => void | Réception d'une édition du plan depuis l'éditeur : applique la mise à jour et marque le plan modifié. | features/map/useMapEditor.ts:578 |
isDemo() | (name) => boolean | - | features/map/useMapEditor.ts:579 |
planLabel() | (name) => string | - | features/map/useMapEditor.ts:580 |
fileInputRef | Ref<HTMLInputElement | null, HTMLInputElement | null> | - | features/map/useMapEditor.ts:581 |
isMobile | Ref<boolean, boolean> | - | features/map/useMapEditor.ts:582 |
loading | Ref<boolean, boolean> | - | features/map/useMapEditor.ts:583 |
mapTabsRef | Ref<HTMLDivElement | null, HTMLDivElement | null> | - | features/map/useMapEditor.ts:584 |
hasTabsOverflow | Ref<boolean, boolean> | - | features/map/useMapEditor.ts:585 |
scrollTabs() | (amount) => void | - | features/map/useMapEditor.ts:586 |
onTabsWheel() | (e) => void | Convertit le défilement vertical de la molette en défilement horizontal des onglets (confort souris). | features/map/useMapEditor.ts:587 |
onSortStart() | () => void | Aligne le clone flottant de SortableJS (mode forceFallback, compatible souris ET tactile) sous le zoom CSS dynamique du layout : le clone est en position fixe DANS le contexte zoomé, donc SortableJS le positionne en px écran qui sont ensuite re-multipliés par le zoom → dérive. On divise sa taille, sa position initiale et sa translation de suivi par le zoom, si bien qu'après re-mise à l'échelle il colle exactement au curseur/doigt (même convention que les menus téléportés). | features/map/useMapEditor.ts:588 |
onSortEnd() | () => void | Fin du glisser-déposer : arrête la correction de zoom et persiste le nouvel ordre des onglets. | features/map/useMapEditor.ts:589 |
createNewMap() | () => Promise<void> | - | features/map/useMapEditor.ts:590 |
deleteMap() | (id) => Promise<void> | - | features/map/useMapEditor.ts:591 |
onManualSave() | () => Promise<void> | Sauvegarde manuelle (clic bouton) : affiche l'état « Enregistrement… » au moins ~450 ms pour que l'animation reste perceptible même quand la requête est instantanée, puis repasse à l'état enregistré. | features/map/useMapEditor.ts:592 |
savedLabel | ComputedRef<string> | Libellé relatif du dernier enregistrement, rafraîchi par le tic de saveNow. | features/map/useMapEditor.ts:593 |
triggerUpload() | () => void | undefined | - | features/map/useMapEditor.ts:594 |
handleFileUpload() | (e) => Promise<void> | - | features/map/useMapEditor.ts:595 |
handleDeleteImage() | () => Promise<void> | - | features/map/useMapEditor.ts:596 |