aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/MenuItem.mjs
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-10-27 23:48:19 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-28 12:24:12 +0800
commit069b1b74bbc369b3dddcd6fb2d64d77381ba0b17 (patch)
tree35a0cbdd2e0ee75dc0a452e9f6ab5a8cb4a78845 /src/MenuItem.mjs
parented1a8d2e4eb77c2e33d5d44118f13331dac43899 (diff)
feat: add menu item for add marker
* remove code about adding reference link in editor.mjs * TODO: use local storage to access reference about marker
Diffstat (limited to 'src/MenuItem.mjs')
-rw-r--r--src/MenuItem.mjs32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/MenuItem.mjs b/src/MenuItem.mjs
index 1d864fd..11ce4be 100644
--- a/src/MenuItem.mjs
+++ b/src/MenuItem.mjs
@@ -1,7 +1,7 @@
1import { shiftByWindow } from './utils.mjs' 1import { shiftByWindow } from './utils.mjs'
2/* eslint-disable no-unused-vars */ 2import { addMarkerByPoint } from './dumbyUtils.mjs'
3/* eslint-disable-next-line no-unused-vars */
3import { GeoLink, getMarkersFromMaps, removeLeaderLines } from './Link.mjs' 4import { GeoLink, getMarkersFromMaps, removeLeaderLines } from './Link.mjs'
4/* eslint-enable */
5import * as markers from './marker.mjs' 5import * as markers from './marker.mjs'
6 6
7/** 7/**
@@ -495,3 +495,31 @@ export const setLeaderLineType = (link) => new Folder({
495 }, 495 },
496 })), 496 })),
497}) 497})
498
499/**
500 * addMarker.
501 *
502 * @param {Object} options
503 * @param {HTMLElement} options.map - map element
504 * @param {Number[]} options.point - xy values in pixel
505 * @param {Function} options.isNameValid - check marker name is valid
506 * @param {Function} options.callback
507 */
508export const addMarker = ({
509 map,
510 point,
511 isNameValid = () => true,
512 callback = null,
513}) => new Item({
514 text: 'Add Marker',
515 onclick: () => {
516 let markerName
517 do {
518 markerName = window.prompt(markerName ? 'Name exists' : 'Marker Name')
519 } while (markerName && !isNameValid(markerName))
520 if (markerName === null) return
521
522 const marker = addMarkerByPoint({ point, map })
523 callback?.(marker)
524 },
525})