From 1175c40fa2100e42dc24f721f8711a6506135fca Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Fri, 14 Nov 2025 00:28:14 -0500 Subject: [PATCH] Add conditional menu items and disable sticky notes at root --- dist/birb.js | 39 +++++++++++++++++++++++---------- dist/extension.zip | Bin 149728 -> 149808 bytes dist/extension/birb.js | 39 +++++++++++++++++++++++---------- dist/extension/manifest.json | 2 +- dist/obsidian/main.js | 41 +++++++++++++++++++++++++---------- dist/obsidian/manifest.json | 2 +- dist/userscript/birb.user.js | 41 +++++++++++++++++++++++++---------- src/application.js | 5 ++--- src/context.js | 5 +++++ src/menu.js | 25 +++++++++++++++------ src/stickyNotes.js | 3 +++ 11 files changed, 144 insertions(+), 58 deletions(-) diff --git a/dist/birb.js b/dist/birb.js index ae6f91e..00f20ee 100644 --- a/dist/birb.js +++ b/dist/birb.js @@ -1148,6 +1148,11 @@ return path === this.getPath(); } + /** @override */ + areStickyNotesEnabled() { + return this.getPath() !== ROOT_PATH; + } + /** @returns {HTMLElement|null} */ getActiveEditorElement() { // @ts-expect-error @@ -1313,6 +1318,9 @@ * @param {(note: StickyNote) => void} onDelete */ function createNewStickyNote(stickyNotes, onSave, onDelete) { + if (getContext().areStickyNotesEnabled() === false) { + return; + } const id = Date.now().toString(); const site = getContext().getPath(); const stickyNote = new StickyNote(id, site, ""); @@ -1334,23 +1342,34 @@ * @param {string} text * @param {() => void} action * @param {boolean} [removeMenu] - * @param {boolean} [isDebug] */ - constructor(text, action, removeMenu = true, isDebug = false) { + constructor(text, action, removeMenu = true) { this.text = text; this.action = action; this.removeMenu = removeMenu; - this.isDebug = isDebug; } } - class DebugMenuItem extends MenuItem { + class ConditionalMenuItem extends MenuItem { + /** + * @param {string} text + * @param {() => void} action + * @param {() => boolean} condition + * @param {boolean} [removeMenu] + */ + constructor(text, action, condition, removeMenu = true) { + super(text, action, removeMenu); + this.condition = condition; + } + } + + class DebugMenuItem extends ConditionalMenuItem { /** * @param {string} text * @param {() => void} action */ constructor(text, action, removeMenu = true) { - super(text, action, removeMenu, true); + super(text, action, () => isDebug(), removeMenu); } } @@ -1396,7 +1415,7 @@ let content = makeElement("birb-window-content"); const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1453,7 +1472,7 @@ } const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1955,9 +1974,7 @@ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), - ...(getContext().areStickyNotesEnabled() ? [ - new MenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote)) - ] : []), + new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { frozen = !frozen; @@ -1994,7 +2011,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.14.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.16"); }, false), + new MenuItem("2025.11.14.47", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.47"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension.zip b/dist/extension.zip index 94c87e96a0c354e409d64a66aaf8edbcf78a2fa3..5525574a017d93f89af6bc0c51e92ab5d57bc9c4 100644 GIT binary patch delta 27639 zcmV(=K-s_GkqNMp39zIEe|;-%TL1t6000000000000#g70Agu!VlHZP<-L1X8@aLv z`ZxPi^f3FJI72XC-r4gq#()X0U)+*`sl^KfBx~0nR>rB90l9$ zLBzF&!7o&6=AgWD_BxnfdWGMomEAr3LBGFIlTI`W8c}V0bJ%Z0sNd<=L+T;l>JLY~ zu#0cM{1VJA71r~M_-ARB8ZG?v(?4c{pMu{9(P%vA4TG<>e!mliy>G!qD;l+;fxry9 z1hhR2qFz|*L=9@RfAEhPJBs#jo4S_4%m}a;n|}dCx3jx&5O$re?!(SFN`f3lBZ0}K zOr;rjeEc~9xipBvQ51x|VDIekAc#6qH|mXohxVuyU@*b(E~>Yi?Whqj3ehMU3}yU^ z5=}wx=37wjgu~$xh?ZG;J&GPjrG9S&;2*MUv>RGr2}>B2e+8j$$+33B+epiDw(D1c z)6J`(-4GfGYnY+^5;XetF^w``=fN8=vyJxs>`TyRMyuu-@IiYx%7=|c+zr=hH-nth zoAhK`IwfE%=Pv?}!OT!|gP(2HZlH3zVd^MTC^m_S`(5e3t%Lbfhw;tKp-1Ih^g1Zt zW6UpuUw#elfBWsmw;*IeNfNf-D|OoS+no0LN~_8E3}HYHhDNlBdeI;^Tc<{|uYz2} zJqT?4;n6eQY}6muTT!nOxBLp?Fm)h2km#^ikNVBvjOuZhER)T!Gek#RS7nEYHbaAl zS|H*osxAynxo)<|2Lz?&st;9zG-Dvxw1e;{ktp} zSAl_1>yJkLE_GsPXy;4Fh@x+VZnsQ71Z-04_`3(lY~4B1D0D6HV`ynXlub|l<1l)xg2|6HDeDDqtz6HSk#weo?Oa=O25yn`U zO$K4R$Dpi+Z8JICRe{vnHVuc?48y~(NcVy~f22tU9}wuT!8fX8v5;vc zG5A4;p%X1Cg(jJ%mRG>`@UV}ybi4o113Z>2DyPM<-)v${xy0v1|I?NGNqac!AJUBd zVvzmK5Fjtumvw1*ZNAfL%JN`v6bOoGG#K=uSGL-N+Uwv%#&4#i*B@b?AYr1e9Sy*v zf6{8Cv=dsYOCxPyq)C0_(SV3dG=K-gzT9sn*;Oz z_83@PNckluLRgHI9ErPCJHelS#>SPIUX^>64r$m8A4#WB!~C#5=yy67?FQ`4Bnyhj zahczm#LH>D7x9{y-CPQ}J=o+EO zOyUS8#?ZsZD42NRSG@*sQ662%9=ANKhj-DesZFS=!J18EyGOGooZ0-+rV)$mfDAKi z)VVeE=kwvPLQIvloT+mi8)5EVnsmCWRH7t^*oy zPI_eYUnvwu=aqCIR9#pIc9<~WP$C8tEr`_W587WyiaOq)Uj+cpe_IYEDYghiQTB|~ zEvC9}jX$TsuX#D4A!2>_%=9E#mN≈Y`NH9Pd?;_*j7jSQHc7J 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 KqEDwF=>Gx9YmZa_ delta 27536 zcmV(=K-s^rk_q6E39zIEf3zrWTL1t6000000000000#g70Agu!VlHZP<-K`V8%eSU z`Zx0_s_D7ca@z--mpW}n zLD;L-I$?tvE&gN9f6k&EZPU;)nK|h!hUQ-Y(H(419ag)}P<3qUYi;td7E<+6(s14iAE`6L!PiD7bHrS^*{#M1!#2Znnclz#xR9a2Uz_6(k}- z@8(-j?^L7c2uMpUy&i=Rqhh}|LgydTYqT3$U=d3Yl?0$~f62LatGA(+W$e(e1811m zLAxP15Y{kL`z2`f>tmW_w$76`-OM-Ick?fSpE<3X<&F>9(I{JOG~!{nPP-XooY7y3O_n6EaH8=3tR_z8Vw;QI8GKE5uAl&bY|81SjpE`|ihK3%NGvS+{bcZ>= z41W1Fxa+qYf8T;C3rZ5P{a&%tuHR;K)Yn=~=4TKCbZ~Eko3IxSGxK$7H2*rtggk=u zjXykmPB$C%$Msg&Ys4)dfgHvTga;B`?bXA6GdQDqJS59xv)YL;5Z6`NA*9XG(=dD>N|>#;s=b@A!GMI(_0mTke^6?X&Y?=etJ#}ywACN?8juU% z5=cKqd4@5;Go$Y3xMy$}m0t$G{t{3p*-qFT1^@fMDK&o98pHNYE49j%?PSy+r1fzX zm_BO#(Wu|0K@1Kpy#$RY`bO}k=^zJ-fA+?mj%B#u4En;Lebk3C8xdX_!|F{C67NMp zzvpqKf7P7VU}jYKXjLehcl&oCs~{<}J>P?0_ta(CiNb9>UB70}v>F_YM-i1%Up>D5H;z1^QqC#$1?9 zhSheDyRsU#&FFAf1yXCn z_(7+kgcg-TL?+Vm3fPVg`&di2`}aNc$C5?mv^e&gO{^)G_`KwQx^h412xt96qS!A6 z*xw8SvI2ccmzFo?JFTWH4+ci*K_Lx?!#?!NR(n``6P(EW4M}?a5$FU76Lsxq0G^dr zeKhLSgk+lUTs(isze?(Y0biiaN}U5RnA3#tW13tA=}pf118PBX zhX2flnH2>T;c)akpp%M=+s7I!o|CVE(t%8wm)q<+bDImZgCUFlcG#?rJE{bA%61u^ zL8tK`Ibm8eV@es_Wu(D~i$@q>`SnbSe~C(-0VOZfbIy36sg;iJPeIV0y0STa{@%EZI#PsG;$nDwYn&uxBJ!P9{H0gx04*wGT@z2M@>Zp|k#F?enf&6awe=;-! zu$7|}RIFaU{5E*_gGVzW?e$Ab^ON0P#odx{Nw-%{w`4p%llxLAHvBD#dosgHBUh;~X|e+Se9YaD{xNJq*dbsJ97mMDK97f&Os!-xTg5;CA@fuvS{*#1gV)bS?$IzZ>Vf8|h=Vv9f+WzR_6 zLaJLvsq;&4%{xTePGrcIhM>WU#(#bmIPmk;D`gaJk{yhrmJ9v$6hm(~EeDj(b7-xB_U3EAK zuqo0m6^iho-Wk)DS@w40A@6u#8Vw zcyvxLQ@A4m>Lc(2E;tJ7=${~}h4m^F1;HBR*Mds5Ssk`Xe~ZE8HEd%$1}9k~xbOE~ zjIdV+KM$n`9(OSs!T&KamL>oWTR;uZ#hF7)6Txqmk#0?tB!S#15r_UAG9{+{EDBXS z_tgo_fk*V&L;#m9GQs1_j*!)aM*wJe7ywyj&uqk(c#if~&tyDzUp#}~h=|JMb}ckN zbd6UVEs5g*e{$1?ySG0C%#cy+QOQ3cIIdN}2etOF;i&=k-;z2W1r^bz;$lAAD;<_T z?ZLTxAP(kv;H4Wbv|yEX$TFQL=kwWV;iz&_I4vE)1wB6+R(p}`i@Egp{Oq87R6-coLbc&C){t*1e-*%3Vse@*}Fa2(ne+qA@Mp%XW4Q)zS)Jr (D>v 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 void} onDelete */ function createNewStickyNote(stickyNotes, onSave, onDelete) { + if (getContext().areStickyNotesEnabled() === false) { + return; + } const id = Date.now().toString(); const site = getContext().getPath(); const stickyNote = new StickyNote(id, site, ""); @@ -1334,23 +1342,34 @@ * @param {string} text * @param {() => void} action * @param {boolean} [removeMenu] - * @param {boolean} [isDebug] */ - constructor(text, action, removeMenu = true, isDebug = false) { + constructor(text, action, removeMenu = true) { this.text = text; this.action = action; this.removeMenu = removeMenu; - this.isDebug = isDebug; } } - class DebugMenuItem extends MenuItem { + class ConditionalMenuItem extends MenuItem { + /** + * @param {string} text + * @param {() => void} action + * @param {() => boolean} condition + * @param {boolean} [removeMenu] + */ + constructor(text, action, condition, removeMenu = true) { + super(text, action, removeMenu); + this.condition = condition; + } + } + + class DebugMenuItem extends ConditionalMenuItem { /** * @param {string} text * @param {() => void} action */ constructor(text, action, removeMenu = true) { - super(text, action, removeMenu, true); + super(text, action, () => isDebug(), removeMenu); } } @@ -1396,7 +1415,7 @@ let content = makeElement("birb-window-content"); const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1453,7 +1472,7 @@ } const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1955,9 +1974,7 @@ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), - ...(getContext().areStickyNotesEnabled() ? [ - new MenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote)) - ] : []), + new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { frozen = !frozen; @@ -1994,7 +2011,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.14.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.16"); }, false), + new MenuItem("2025.11.14.47", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.47"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension/manifest.json b/dist/extension/manifest.json index 43c5156..b0b3fee 100644 --- a/dist/extension/manifest.json +++ b/dist/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2025.11.14.16", + "version": "2025.11.14.47", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 145d3ce..a1a46d3 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -2,7 +2,7 @@ const { Plugin, Notice } = require('obsidian'); module.exports = class PocketBird extends Plugin { onload() { - console.log("Loading Pocket Bird version 2025.11.14.16..."); + console.log("Loading Pocket Bird version 2025.11.14.47..."); const OBSIDIAN_PLUGIN = this; (function () { 'use strict'; @@ -1154,6 +1154,11 @@ module.exports = class PocketBird extends Plugin { return path === this.getPath(); } + /** @override */ + areStickyNotesEnabled() { + return this.getPath() !== ROOT_PATH; + } + /** @returns {HTMLElement|null} */ getActiveEditorElement() { // @ts-expect-error @@ -1319,6 +1324,9 @@ module.exports = class PocketBird extends Plugin { * @param {(note: StickyNote) => void} onDelete */ function createNewStickyNote(stickyNotes, onSave, onDelete) { + if (getContext().areStickyNotesEnabled() === false) { + return; + } const id = Date.now().toString(); const site = getContext().getPath(); const stickyNote = new StickyNote(id, site, ""); @@ -1340,23 +1348,34 @@ module.exports = class PocketBird extends Plugin { * @param {string} text * @param {() => void} action * @param {boolean} [removeMenu] - * @param {boolean} [isDebug] */ - constructor(text, action, removeMenu = true, isDebug = false) { + constructor(text, action, removeMenu = true) { this.text = text; this.action = action; this.removeMenu = removeMenu; - this.isDebug = isDebug; } } - class DebugMenuItem extends MenuItem { + class ConditionalMenuItem extends MenuItem { + /** + * @param {string} text + * @param {() => void} action + * @param {() => boolean} condition + * @param {boolean} [removeMenu] + */ + constructor(text, action, condition, removeMenu = true) { + super(text, action, removeMenu); + this.condition = condition; + } + } + + class DebugMenuItem extends ConditionalMenuItem { /** * @param {string} text * @param {() => void} action */ constructor(text, action, removeMenu = true) { - super(text, action, removeMenu, true); + super(text, action, () => isDebug(), removeMenu); } } @@ -1402,7 +1421,7 @@ module.exports = class PocketBird extends Plugin { let content = makeElement("birb-window-content"); const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1459,7 +1478,7 @@ module.exports = class PocketBird extends Plugin { } const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1961,9 +1980,7 @@ module.exports = class PocketBird extends Plugin { const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), - ...(getContext().areStickyNotesEnabled() ? [ - new MenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote)) - ] : []), + new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { frozen = !frozen; @@ -2000,7 +2017,7 @@ module.exports = class PocketBird extends Plugin { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.14.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.16"); }, false), + new MenuItem("2025.11.14.47", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.47"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/obsidian/manifest.json b/dist/obsidian/manifest.json index 8066f1f..4f6128c 100644 --- a/dist/obsidian/manifest.json +++ b/dist/obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "pocket-bird", "name": "Pocket Bird", - "version": "2025.11.14.16", + "version": "2025.11.14.47", "minAppVersion": "0.15.0", "description": "It's a pet bird in your Obsidian, what more could you want?", "author": "Idrees Hassan", diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 4741ba3..765098d 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Pocket Bird // @namespace https://idreesinc.com -// @version 2025.11.14.16 +// @version 2025.11.14.47 // @description It's a bird that hops around your web browser, the future is here // @author Idrees // @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js @@ -1162,6 +1162,11 @@ return path === this.getPath(); } + /** @override */ + areStickyNotesEnabled() { + return this.getPath() !== ROOT_PATH; + } + /** @returns {HTMLElement|null} */ getActiveEditorElement() { // @ts-expect-error @@ -1327,6 +1332,9 @@ * @param {(note: StickyNote) => void} onDelete */ function createNewStickyNote(stickyNotes, onSave, onDelete) { + if (getContext().areStickyNotesEnabled() === false) { + return; + } const id = Date.now().toString(); const site = getContext().getPath(); const stickyNote = new StickyNote(id, site, ""); @@ -1348,23 +1356,34 @@ * @param {string} text * @param {() => void} action * @param {boolean} [removeMenu] - * @param {boolean} [isDebug] */ - constructor(text, action, removeMenu = true, isDebug = false) { + constructor(text, action, removeMenu = true) { this.text = text; this.action = action; this.removeMenu = removeMenu; - this.isDebug = isDebug; } } - class DebugMenuItem extends MenuItem { + class ConditionalMenuItem extends MenuItem { + /** + * @param {string} text + * @param {() => void} action + * @param {() => boolean} condition + * @param {boolean} [removeMenu] + */ + constructor(text, action, condition, removeMenu = true) { + super(text, action, removeMenu); + this.condition = condition; + } + } + + class DebugMenuItem extends ConditionalMenuItem { /** * @param {string} text * @param {() => void} action */ constructor(text, action, removeMenu = true) { - super(text, action, removeMenu, true); + super(text, action, () => isDebug(), removeMenu); } } @@ -1410,7 +1429,7 @@ let content = makeElement("birb-window-content"); const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1467,7 +1486,7 @@ } const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -1969,9 +1988,7 @@ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), - ...(getContext().areStickyNotesEnabled() ? [ - new MenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote)) - ] : []), + new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { frozen = !frozen; @@ -2008,7 +2025,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.14.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.16"); }, false), + new MenuItem("2025.11.14.47", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.14.47"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/src/application.js b/src/application.js index 8ba58fe..a7b6ef1 100644 --- a/src/application.js +++ b/src/application.js @@ -31,6 +31,7 @@ import { } from './stickyNotes.js'; import { MenuItem, + ConditionalMenuItem, DebugMenuItem, Separator, insertMenu, @@ -193,9 +194,7 @@ Promise.all([ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), - ...(getContext().areStickyNotesEnabled() ? [ - new MenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote)) - ] : []), + new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { frozen = !frozen; diff --git a/src/context.js b/src/context.js index 1600065..5811414 100644 --- a/src/context.js +++ b/src/context.js @@ -305,6 +305,11 @@ export class ObsidianContext extends Context { return path === this.getPath(); } + /** @override */ + areStickyNotesEnabled() { + return this.getPath() !== ROOT_PATH; + } + /** @returns {HTMLElement|null} */ getActiveEditorElement() { // @ts-expect-error diff --git a/src/menu.js b/src/menu.js index f4e7c68..1d67c18 100644 --- a/src/menu.js +++ b/src/menu.js @@ -15,23 +15,34 @@ export class MenuItem { * @param {string} text * @param {() => void} action * @param {boolean} [removeMenu] - * @param {boolean} [isDebug] */ - constructor(text, action, removeMenu = true, isDebug = false) { + constructor(text, action, removeMenu = true) { this.text = text; this.action = action; this.removeMenu = removeMenu; - this.isDebug = isDebug; } } -export class DebugMenuItem extends MenuItem { +export class ConditionalMenuItem extends MenuItem { + /** + * @param {string} text + * @param {() => void} action + * @param {() => boolean} condition + * @param {boolean} [removeMenu] + */ + constructor(text, action, condition, removeMenu = true) { + super(text, action, removeMenu); + this.condition = condition; + } +} + +export class DebugMenuItem extends ConditionalMenuItem { /** * @param {string} text * @param {() => void} action */ constructor(text, action, removeMenu = true) { - super(text, action, removeMenu, true); + super(text, action, () => isDebug(), removeMenu); } } @@ -77,7 +88,7 @@ export function insertMenu(menuItems, title, updateLocationCallback) { let content = makeElement("birb-window-content"); const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } @@ -134,7 +145,7 @@ export function switchMenuItems(menuItems, updateLocationCallback) { } const removeCallback = () => removeMenu(); for (const item of menuItems) { - if (!item.isDebug || isDebug()) { + if (!(item instanceof ConditionalMenuItem) || item.condition()) { content.appendChild(makeMenuItem(item, removeCallback)); } } diff --git a/src/stickyNotes.js b/src/stickyNotes.js index 130f52d..8fc8ecf 100644 --- a/src/stickyNotes.js +++ b/src/stickyNotes.js @@ -129,6 +129,9 @@ export function drawStickyNotes(stickyNotes, onSave, onDelete) { * @param {(note: StickyNote) => void} onDelete */ export function createNewStickyNote(stickyNotes, onSave, onDelete) { + if (getContext().areStickyNotesEnabled() === false) { + return; + } const id = Date.now().toString(); const site = getContext().getPath(); const stickyNote = new StickyNote(id, site, "");