Frontend Page - Configure MenuConfig: Difference between revisions
Jump to navigation
Jump to search
(→OnDrag) |
(→OnDrag) |
||
Line 35: | Line 35: | ||
Under Construction | Under Construction | ||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
const dragStartRowIndex = useRef(null); | |||
const dragPassRowIndex = useRef(null); | |||
const [dragnamerow, setdragnamerow] = useState(null); | |||
const [dragPassRowIndexState, setDragPassRowIndexState] = useState(null); | |||
<div | <div | ||
dragable | dragable | ||
onDragStart={(e) => {}} | onDragStart={(e) => { | ||
onDragEnter={(e) => {}} | dragStartRowIndex.current = rowIndex; | ||
onDragEnd={} | dragPassRowIndex.current = null; | ||
setdragnamerow("row"); | |||
}} | |||
onDragEnter={(e) => { | |||
if (dragnamerow === "row") { | |||
dragPassRowIndex.current = rowIndex; | |||
setDragPassRowIndexState(rowIndex) | |||
} | |||
}} | |||
onDragEnd={moveRows} | |||
> | > | ||
{"text"} | {"text"} |
Revision as of 06:36, 19 June 2023
Overview
Frontend page for creating and editing MenuConfigs
Repository
visibleObj Object
let visibleObj = {
visibleRowIndex: 0, // row index we have open on page
visibleRenameRowIndex: 0, // row index currently renaming
rows:[
{
menuElements: [
{
show: false, // whether the menuElement settings are expanded
menuText
menuElements: [ // if menuElement is elementType menu, will have child menuElements
],
},
// ..
]
},
// ..
]
}
- visibleRowIndex : identify visible position row
- visibleRenameRowIndex : identify row being renamed
- show : expand or collapse elements
OnDrag
Under Construction
const dragStartRowIndex = useRef(null);
const dragPassRowIndex = useRef(null);
const [dragnamerow, setdragnamerow] = useState(null);
const [dragPassRowIndexState, setDragPassRowIndexState] = useState(null);
<div
dragable
onDragStart={(e) => {
dragStartRowIndex.current = rowIndex;
dragPassRowIndex.current = null;
setdragnamerow("row");
}}
onDragEnter={(e) => {
if (dragnamerow === "row") {
dragPassRowIndex.current = rowIndex;
setDragPassRowIndexState(rowIndex)
}
}}
onDragEnd={moveRows}
>
{"text"}
</div>
- onDragStart : when you started to click element
- onDragEnter : when you passed element
- onDragEnd : when you released holding
- Menu elements are nested to any level
- Structure of rows and menuElements in visible object matches structure of menuConfig/menuConfigSetting