aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-10-06 00:13:11 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-06 00:43:45 +0800
commit9d18a1071cc9a4e3dca01ae76dd88ad3bf27bb30 (patch)
tree956b9b500d33dbac343949794fd59ddeea1fbef2 /src
parentc248e2bf6a4a126ff492297e8130ecca33a8c7e0 (diff)
feat: set 'EDIT' menu item in editor.mjs
Diffstat (limited to 'src')
-rw-r--r--src/MenuItem.mjs5
-rw-r--r--src/dumbymap.mjs2
-rw-r--r--src/editor.mjs18
3 files changed, 20 insertions, 5 deletions
diff --git a/src/MenuItem.mjs b/src/MenuItem.mjs
index 54da450..9218b45 100644
--- a/src/MenuItem.mjs
+++ b/src/MenuItem.mjs
@@ -133,11 +133,6 @@ export const pickLayoutItem = ({ container, layouts }) =>
133 new Folder({ 133 new Folder({
134 innerHTML: '<span>Layouts<span><span class="info">(x)</span>', 134 innerHTML: '<span>Layouts<span><span class="info">(x)</span>',
135 items: [ 135 items: [
136 new Item({
137 text: 'EDIT',
138 onclick: () =>
139 container.closest('[data-mode]').setAttribute('data-mode', 'editing')
140 }),
141 ...layouts.map( 136 ...layouts.map(
142 layout => 137 layout =>
143 new Item({ 138 new Item({
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs
index 8f049b2..a31274e 100644
--- a/src/dumbymap.mjs
+++ b/src/dumbymap.mjs
@@ -465,6 +465,8 @@ export const generateMaps = (container, { delay } = {}) => {
465 } 465 }
466 466
467 shiftByWindow(menu) 467 shiftByWindow(menu)
468
469 return menu
468 } 470 }
469 471
470 // Remove menu when click outside 472 // Remove menu when click outside
diff --git a/src/editor.mjs b/src/editor.mjs
index 90c446e..9bb62a9 100644
--- a/src/editor.mjs
+++ b/src/editor.mjs
@@ -4,6 +4,7 @@ import { markdown2HTML, generateMaps } from './dumbymap'
4import { defaultAliases, parseConfigsFromYaml } from 'mapclay' 4import { defaultAliases, parseConfigsFromYaml } from 'mapclay'
5import * as menuItem from './MenuItem' 5import * as menuItem from './MenuItem'
6import { shiftByWindow } from './utils.mjs' 6import { shiftByWindow } from './utils.mjs'
7import { Item } from './MenuItem.mjs'
7 8
8// Set up Containers {{{ 9// Set up Containers {{{
9 10
@@ -333,6 +334,23 @@ const updateDumbyMap = () => {
333 334
334 const htmlHolder = dumbymap.htmlHolder 335 const htmlHolder = dumbymap.htmlHolder
335 htmlHolder.onscroll = htmlOnScroll(htmlHolder) 336 htmlHolder.onscroll = htmlOnScroll(htmlHolder)
337
338 const dumbymenu = dumbyContainer.oncontextmenu
339 dumbyContainer.oncontextmenu = e => {
340 const menu = dumbymenu(e)
341
342 if (context.dataset.mode !== 'editing') {
343 menu.appendChild(
344 new Item({
345 innerHTML: '<strong>EDIT</strong>',
346 onclick: () => context.dataset.mode = 'editing'
347 })
348 )
349 }
350
351 menu.style.transform = ''
352 shiftByWindow(menu)
353 }
336} 354}
337updateDumbyMap() 355updateDumbyMap()
338 356