Frontend Page - Configure MenuConfig: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
 
(10 intermediate revisions by the same user not shown)
Line 28: Line 28:
}
}
</syntaxhighlight>
</syntaxhighlight>
* visibleRowIndex : identify visible position row
 
* visibleRenameRowIndex : identify row being renamed
== OnDrag ==
 
<syntaxhighlight lang="json">
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; //set value when clicked element
                        dragPassRowIndex.current = null; //set null when departed original position
                        setdragnamerow("row");
}}
onDragEnter={(e) => {
            if (dragnamerow === "row") {
                            dragPassRowIndex.current = rowIndex;// change value when passed others element
                            setDragPassRowIndexState(rowIndex);
                          }
}}
onDragEnd={moveRows}
>
{"text"}
</div>
</syntaxhighlight>
* onDragStart : when you started to click element
* onDragEnter : when you passed element
* onDragEnd : when you released holding
* set variable by useRef : for save data immediately
* set variable by useState : for Re-render
 
== DragDrop ==
Under Construction
 
<syntaxhighlight lang="json">
<CellTabButton
              id={"menuelement" + menuElementIndex}
              type="button"
              name="menuelement"
              dragdrop={(
                dragPassMenuElementIndexState === menuElementIndex //set state of index
                && dragPassMenuElements.current === menuElements //switch element in array
             
              )}
>
              //...
           
</CellTabButton>
           
</syntaxhighlight>


== menuElements recursion ==  
== menuElements recursion ==  

Latest revision as of 01:57, 26 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
					
					],
				},
				// ..
			]
		},
		// ..
	]
}

OnDrag

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; //set value when clicked element
                        dragPassRowIndex.current = null; //set null when departed original position 
                        setdragnamerow("row");
		}}
		onDragEnter={(e) => {
			            if (dragnamerow === "row") {
                            dragPassRowIndex.current = rowIndex;// change value when passed others element
                            setDragPassRowIndexState(rowIndex);
                          }
		}}
		onDragEnd={moveRows}
	>
	{"text"}
	</div>
  • onDragStart : when you started to click element
  • onDragEnter : when you passed element
  • onDragEnd : when you released holding
  • set variable by useRef : for save data immediately
  • set variable by useState : for Re-render

DragDrop

Under Construction

	<CellTabButton
              id={"menuelement" + menuElementIndex}
              type="button"
              name="menuelement"
              dragdrop={(
                dragPassMenuElementIndexState === menuElementIndex //set state of index
                && dragPassMenuElements.current === menuElements //switch element in array
               
              )}
	>
              //...
            
	</CellTabButton>

menuElements recursion

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

Working documents