Frontend Page - Configure MenuConfig: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
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

menuElements recursion

  • Menu elements are nested to any level
  • Structure of rows and menuElements in visible object matches structure of menuConfig/menuConfigSetting

Working documents