Fix mobile menu toggle with bookmarks disabled
This commit is contained in:
parent
7391c15087
commit
1500fcab43
4
js/complete.min.js
vendored
4
js/complete.min.js
vendored
File diff suppressed because one or more lines are too long
2
js/mobile-menu.min.js
vendored
2
js/mobile-menu.min.js
vendored
@ -1 +1 @@
|
|||||||
application.register("fictioneer-mobile-menu",class extends Stimulus.Controller{static get targets(){return["frame","bookmarks","panelBookmarks"]}advanced=!!_$(".mobile-menu._advanced-mobile-menu");open=!1;editingBookmarks=!1;currentFrame=null;bookmarkTemplate=_$$$("mobile-bookmark-template");chapterId=_$("article")?.id;connect(){window.FictioneerApp.Controllers.fictioneerMobileMenu=this}toggle(e=null){this.open=e??!this.open,this.advanced?this.#e(this.open):this.#o(this.open)}clickOutside({detail:{target:e}}){this.open&&"site"===e?.id&&this.toggle(!1)}openFrame({params:{frame:e}}){const o=`mobile-frame-${e}`;this.editingBookmarks=!1,this.panelBookmarksTarget.dataset.editing=!1,this.hasFrameTarget&&this.frameTargets.forEach((e=>{e.classList.toggle("_active",e.id===o),e.id===o&&(this.currentFrame=e)}))}back(){this.openFrame({params:{frame:"main"}})}setMobileBookmarks(){const e=window.FictioneerApp.Controllers.fictioneerBookmarks;if(e&&this.hasBookmarksTarget){const o=Object.entries(e.data());if(this.bookmarksTarget.innerHTML="",!o||o.length<1){const e=document.createElement("li");return e.classList.add("no-bookmarks"),e.textContent=this.bookmarksTarget.dataset.empty,void this.bookmarksTarget.appendChild(e)}const t=document.createDocumentFragment();o.forEach((([e,{color:o,progress:r,link:s,chapter:a,"paragraph-id":i}])=>{const n=this.bookmarkTemplate.content.cloneNode(!0),l=n.querySelector(".mobile-menu__bookmark");l.classList.add(`bookmark-${e}`),l.dataset.color=o,n.querySelector(".mobile-menu__bookmark-progress > div > div").style.width=`${r.toFixed(1)}%`,n.querySelector(".mobile-menu__bookmark a").href=`${s}#paragraph-${i}`,n.querySelector(".mobile-menu__bookmark a span").innerText=a,n.querySelector(".mobile-menu-bookmark-delete-button").setAttribute("data-fictioneer-mobile-menu-id-param",e),t.appendChild(n)})),this.bookmarksTarget.appendChild(t)}}deleteBookmark({params:{id:e}}){const o=window.FictioneerApp.Controllers.fictioneerBookmarks;o?(o.remove({params:{id:e}}),this.setMobileBookmarks()):fcn_showNotification("Error: Bookmarks Controller not connected.",3,"warning")}toggleBookmarksEdit(){this.editingBookmarks=!this.editingBookmarks,this.panelBookmarksTarget.dataset.editing=this.editingBookmarks}scrollToComments(){this.#t(_$$$("comments"))}scrollToBookmark(){const e=window.FictioneerApp.Controllers.fictioneerBookmarks;if(!e)return void fcn_showNotification("Error: Bookmarks Controller not connected.",3,"warning");const o=e.data()?.[this.chapterId]?.["paragraph-id"],t=_$(`[data-paragraph-id="${o}"]`);this.#t(t)}changeLightness({currentTarget:e}){fcn_updateDarken(fcn_siteSettings.darken+parseFloat(e.value))}#t(e){this.toggle(!1),e&&setTimeout((()=>{FcnUtils.scrollTo(e)}),200)}#o(e){this.back(),e?(document.body.classList.add("mobile-menu-open","scrolling-down"),document.body.classList.remove("scrolling-up")):document.body.classList.remove("mobile-menu-open")}#e(e){const o=_$$$("wpadminbar")?.offsetHeight??0,t=window.scrollY,r=FcnGlobals.eSite.scrollTop;this.back(),e?(document.body.classList.add("mobile-menu-open","scrolling-down","scrolled-to-top"),document.body.classList.remove("scrolling-up"),FcnGlobals.eSite.classList.add("transformed-scroll","transformed-site"),FcnGlobals.eSite.scrollTop=t-o):(FcnGlobals.eSite.classList.remove("transformed-site","transformed-scroll"),document.body.classList.remove("mobile-menu-open"),document.documentElement.style.scrollBehavior="auto",window.scroll(0,r+o),document.documentElement.style.scrollBehavior="")}});
|
application.register("fictioneer-mobile-menu",class extends Stimulus.Controller{static get targets(){return["frame","bookmarks","panelBookmarks"]}advanced=!!_$(".mobile-menu._advanced-mobile-menu");open=!1;editingBookmarks=!1;currentFrame=null;bookmarkTemplate=_$$$("mobile-bookmark-template");chapterId=_$("article")?.id;connect(){window.FictioneerApp.Controllers.fictioneerMobileMenu=this}toggle(e=null){this.open=e??!this.open,this.advanced?this.#e(this.open):this.#o(this.open)}clickOutside({detail:{target:e}}){this.open&&"site"===e?.id&&this.toggle(!1)}openFrame({params:{frame:e}}){const o=`mobile-frame-${e}`;this.editingBookmarks=!1,this.hasPanelBookmarksTarget&&(this.panelBookmarksTarget.dataset.editing=!1),this.hasFrameTarget&&this.frameTargets.forEach((e=>{e.classList.toggle("_active",e.id===o),e.id===o&&(this.currentFrame=e)}))}back(){this.openFrame({params:{frame:"main"}})}setMobileBookmarks(){const e=window.FictioneerApp.Controllers.fictioneerBookmarks;if(e&&this.hasBookmarksTarget){const o=Object.entries(e.data());if(this.bookmarksTarget.innerHTML="",!o||o.length<1){const e=document.createElement("li");return e.classList.add("no-bookmarks"),e.textContent=this.bookmarksTarget.dataset.empty,void this.bookmarksTarget.appendChild(e)}const t=document.createDocumentFragment();o.forEach((([e,{color:o,progress:r,link:a,chapter:s,"paragraph-id":i}])=>{const n=this.bookmarkTemplate.content.cloneNode(!0),l=n.querySelector(".mobile-menu__bookmark");l.classList.add(`bookmark-${e}`),l.dataset.color=o,n.querySelector(".mobile-menu__bookmark-progress > div > div").style.width=`${r.toFixed(1)}%`,n.querySelector(".mobile-menu__bookmark a").href=`${a}#paragraph-${i}`,n.querySelector(".mobile-menu__bookmark a span").innerText=s,n.querySelector(".mobile-menu-bookmark-delete-button").setAttribute("data-fictioneer-mobile-menu-id-param",e),t.appendChild(n)})),this.bookmarksTarget.appendChild(t)}}deleteBookmark({params:{id:e}}){const o=window.FictioneerApp.Controllers.fictioneerBookmarks;o?(o.remove({params:{id:e}}),this.setMobileBookmarks()):fcn_showNotification("Error: Bookmarks Controller not connected.",3,"warning")}toggleBookmarksEdit(){this.editingBookmarks=!this.editingBookmarks,this.panelBookmarksTarget.dataset.editing=this.editingBookmarks}scrollToComments(){this.#t(_$$$("comments"))}scrollToBookmark(){const e=window.FictioneerApp.Controllers.fictioneerBookmarks;if(!e)return void fcn_showNotification("Error: Bookmarks Controller not connected.",3,"warning");const o=e.data()?.[this.chapterId]?.["paragraph-id"],t=_$(`[data-paragraph-id="${o}"]`);this.#t(t)}changeLightness({currentTarget:e}){fcn_updateDarken(fcn_siteSettings.darken+parseFloat(e.value))}#t(e){this.toggle(!1),e&&setTimeout((()=>{FcnUtils.scrollTo(e)}),200)}#o(e){this.back(),e?(document.body.classList.add("mobile-menu-open","scrolling-down"),document.body.classList.remove("scrolling-up")):document.body.classList.remove("mobile-menu-open")}#e(e){const o=_$$$("wpadminbar")?.offsetHeight??0,t=window.scrollY,r=FcnGlobals.eSite.scrollTop;this.back(),e?(document.body.classList.add("mobile-menu-open","scrolling-down","scrolled-to-top"),document.body.classList.remove("scrolling-up"),FcnGlobals.eSite.classList.add("transformed-scroll","transformed-site"),FcnGlobals.eSite.scrollTop=t-o):(FcnGlobals.eSite.classList.remove("transformed-site","transformed-scroll"),document.body.classList.remove("mobile-menu-open"),document.documentElement.style.scrollBehavior="auto",window.scroll(0,r+o),document.documentElement.style.scrollBehavior="")}});
|
@ -44,7 +44,10 @@ application.register('fictioneer-mobile-menu', class extends Stimulus.Controller
|
|||||||
const targetId = `mobile-frame-${frame}`;
|
const targetId = `mobile-frame-${frame}`;
|
||||||
|
|
||||||
this.editingBookmarks = false;
|
this.editingBookmarks = false;
|
||||||
this.panelBookmarksTarget.dataset.editing = false;
|
|
||||||
|
if (this.hasPanelBookmarksTarget) {
|
||||||
|
this.panelBookmarksTarget.dataset.editing = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.hasFrameTarget) {
|
if (this.hasFrameTarget) {
|
||||||
this.frameTargets.forEach(element => {
|
this.frameTargets.forEach(element => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user