mirror of
https://github.com/john-okeefe/foliate-js.git
synced 2026-09-09 11:29:14 -04:00
Add panel mode toggle to reader settings menu
Add a checkbox menu item to the demo reader's settings menu that allows users to toggle panel detection mode on or off. Implementation details: - Adds "Panel Mode" checkbox to existing settings menu - Uses the createMenu API with type="checkbox" - Safely checks for togglePanelMode method availability - Checks current panel-mode state before toggling - Properly enables/disables panel mode via attribute API User-facing behavior: - Click gear icon → settings menu appears - Check/uncheck "Panel Mode" to enable/disable - Works seamlessly with existing layout options - Only active when viewing fixed-layout content This change only affects the demo reader (reader.html + reader.js), not the foliate-js library itself. The library's panel detection API in fixed-layout.js remains unchanged. The panel mode toggle provides easy access to the new panel navigation features for testing and demonstration purposes.
This commit is contained in:
@@ -101,6 +101,24 @@ class Reader {
|
|||||||
this.view?.renderer.setAttribute("flow", value);
|
this.view?.renderer.setAttribute("flow", value);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "panel-mode",
|
||||||
|
label: "Panel Mode",
|
||||||
|
type: "checkbox",
|
||||||
|
checked: false,
|
||||||
|
onclick: () => {
|
||||||
|
// ← No 'value' parameter for checkbox
|
||||||
|
const renderer = this.view?.renderer;
|
||||||
|
if (!renderer?.togglePanelMode) return;
|
||||||
|
|
||||||
|
const isActive = renderer.hasAttribute("panel-mode");
|
||||||
|
if (isActive) {
|
||||||
|
renderer.removeAttribute("panel-mode");
|
||||||
|
} else {
|
||||||
|
renderer.togglePanelMode();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
menu.element.classList.add("menu");
|
menu.element.classList.add("menu");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user