[#181] update opListCreate to desktopOpListCreate ( to always include drag events and popovers ) and the inverse for mobile. Now it is ready for window resizing

This commit is contained in:
Robin Scholtes 2023-04-27 21:35:50 +12:00
parent c6cc998100
commit 89c1ab12ab
4 changed files with 30 additions and 13 deletions

View file

@ -889,14 +889,13 @@ class App {
*/ */
setDesktopUI(minimise){ setDesktopUI(minimise){
this.setDesktopLayout(minimise); this.setDesktopLayout(minimise);
// repopulate to enable popovers and drag events
this.populateOperationsList();
/** /**
* We don't want to display any checkmarks on desktop, so we clear them. * We don't want to display any checkmarks on desktop, so we clear them.
* It has no effect on the recipe list, it's purely a visual indicator * It has no effect on the recipe list, it's purely a visual indicator
*/ */
this.manager.recipe.clearAllSelectedClasses(); this.manager.recipe.clearAllSelectedClasses();
// @TODO: handle sortable, draggable, popovers functionality. Works fine on init but needs to work on window resizing too
} }
/** /**
@ -906,10 +905,10 @@ class App {
*/ */
setMobileUI(){ setMobileUI(){
this.setMobileLayout(); this.setMobileLayout();
// on window resizing below breakpoint, we need to put the checkmarks back // repopulate to disable popovers and drag events
this.populateOperationsList();
// restore the appropriate checkmarks
this.manager.recipe.updateSelectedOperations(); this.manager.recipe.updateSelectedOperations();
// @TODO: handle sortable, draggable, popovers functionality. Works fine on init but needs to work on window resizing too
} }
} }

View file

@ -11,8 +11,6 @@
- test drag and drop etc. Regular mobile events / UX - test drag and drop etc. Regular mobile events / UX
- view-heights not correct due to variable taskbar on mobile devices - view-heights not correct due to variable taskbar on mobile devices
- see if i can use OpWaiter > getSelectedOp for getting selected ops. Although I dont see 'selected-op' on any op?
### Desktop UI: ### Desktop UI:
### General UI: ### General UI:
- fix up key / tab events so UI can be navigated comfortably with keys ( inc. visual focus feedback ). Probably a lot of work though - fix up key / tab events so UI can be navigated comfortably with keys ( inc. visual focus feedback ). Probably a lot of work though

View file

@ -185,14 +185,34 @@ class OperationsWaiter {
*/ */
opListCreate(e) { opListCreate(e) {
if ( window.innerWidth < this.app.breakpoint ){ if ( window.innerWidth < this.app.breakpoint ){
this.manager.recipe.createSortableSeedList(e.target, false); this.mobileOpListCreate(e);
this.disableOpsListPopovers();
} else { } else {
this.manager.recipe.createSortableSeedList(e.target); this.desktopOpListCreate(e);
this.enableOpPopover(e.target);
} }
} }
/**
* Create the desktop op-list which allows popovers
* and dragging
*
* @param {event} e
*/
desktopOpListCreate(e){
this.manager.recipe.createSortableSeedList(e.target);
this.enableOpPopover(e.target);
}
/**
* Create the mobile op-list which does not allow
* popovers and dragging
*
* @param {event} e
*/
mobileOpListCreate(e){
this.manager.recipe.createSortableSeedList(e.target, false);
this.disableOpsListPopovers();
}
/** /**
* Enable the target operation popover itself to gain focus which * Enable the target operation popover itself to gain focus which

View file

@ -27,7 +27,7 @@ class WindowWaiter {
* continuous resetting). * continuous resetting).
*/ */
windowResize() { windowResize() {
// @TODO: maybe a debounce is desireable although genrally people won't be resizing like crazy // @TODO: maybe a debounce is desirable although generally people won't be resizing like crazy.. I think
if ( window.innerWidth >= this.app.breakpoint ) { if ( window.innerWidth >= this.app.breakpoint ) {
this.app.setDesktopUI(false); this.app.setDesktopUI(false);
} else { } else {