Add toggle to enable/disable sound

This commit is contained in:
Idrees Hassan
2026-01-04 18:02:47 -05:00
parent 0cc06a8856
commit e5956426d5
9 changed files with 90 additions and 42 deletions

BIN
dist/extension.zip vendored

Binary file not shown.

View File

@@ -1209,7 +1209,7 @@
class MenuItem {
/**
* @param {string} text
* @param {string|(() => string)} text
* @param {() => void} action
* @param {boolean} [removeMenu]
*/
@@ -1258,7 +1258,7 @@
if (item instanceof Separator) {
return makeElement("birb-window-separator");
}
let menuItem = makeElement("birb-menu-item", item.text);
let menuItem = makeElement("birb-menu-item", typeof item.text === "function" ? item.text() : item.text);
onClick(menuItem, () => {
if (item.removeMenu) {
removeMenuCallback();
@@ -1365,7 +1365,8 @@
* @typedef {typeof DEFAULT_SETTINGS} Settings
*/
const DEFAULT_SETTINGS = {
birbMode: false
birbMode: false,
soundEnabled: true
};
// Rendering constants
@@ -1578,6 +1579,7 @@
.birb-menu-item {
width: calc(100% - var(--birb-double-border-size));
white-space: nowrap;
font-size: 14px;
padding-top: 4px;
padding-bottom: 4px;
@@ -1850,7 +1852,11 @@
const settingsItems = [
new MenuItem("Go Back", () => switchMenuItems(menuItems, updateMenuLocation), false),
new Separator(),
new MenuItem("Toggle Birb Mode", () => {
new MenuItem(() => `${userSettings.soundEnabled ? "Disable" : "Enable"} Sound`, () => {
userSettings.soundEnabled = !userSettings.soundEnabled;
save();
}),
new MenuItem(() => `Toggle ${birdBirb(true)} Mode`, () => {
userSettings.birbMode = !userSettings.birbMode;
save();
const message = makeElement("birb-message-content");
@@ -1969,8 +1975,8 @@
/**
* Bird or birb, you decide
*/
function birdBirb() {
return settings().birbMode ? "Birb" : "Bird";
function birdBirb(invert = false) {
return settings().birbMode !== invert ? "Birb" : "Bird";
}
function init() {
@@ -2559,7 +2565,9 @@
function pet() {
if (currentState === States.IDLE && birb.getCurrentAnimation() !== Animations.HEART) {
birdsong.chirp();
if (settings().soundEnabled) {
birdsong.chirp();
}
birb.setAnimation(Animations.HEART);
lastPetTimestamp = Date.now();
}

22
dist/obsidian/main.js vendored
View File

@@ -1252,7 +1252,7 @@ module.exports = class PocketBird extends Plugin {
class MenuItem {
/**
* @param {string} text
* @param {string|(() => string)} text
* @param {() => void} action
* @param {boolean} [removeMenu]
*/
@@ -1301,7 +1301,7 @@ module.exports = class PocketBird extends Plugin {
if (item instanceof Separator) {
return makeElement("birb-window-separator");
}
let menuItem = makeElement("birb-menu-item", item.text);
let menuItem = makeElement("birb-menu-item", typeof item.text === "function" ? item.text() : item.text);
onClick(menuItem, () => {
if (item.removeMenu) {
removeMenuCallback();
@@ -1408,7 +1408,8 @@ module.exports = class PocketBird extends Plugin {
* @typedef {typeof DEFAULT_SETTINGS} Settings
*/
const DEFAULT_SETTINGS = {
birbMode: false
birbMode: false,
soundEnabled: true
};
// Rendering constants
@@ -1621,6 +1622,7 @@ module.exports = class PocketBird extends Plugin {
.birb-menu-item {
width: calc(100% - var(--birb-double-border-size));
white-space: nowrap;
font-size: 14px;
padding-top: 4px;
padding-bottom: 4px;
@@ -1893,7 +1895,11 @@ module.exports = class PocketBird extends Plugin {
const settingsItems = [
new MenuItem("Go Back", () => switchMenuItems(menuItems, updateMenuLocation), false),
new Separator(),
new MenuItem("Toggle Birb Mode", () => {
new MenuItem(() => `${userSettings.soundEnabled ? "Disable" : "Enable"} Sound`, () => {
userSettings.soundEnabled = !userSettings.soundEnabled;
save();
}),
new MenuItem(() => `Toggle ${birdBirb(true)} Mode`, () => {
userSettings.birbMode = !userSettings.birbMode;
save();
const message = makeElement("birb-message-content");
@@ -2012,8 +2018,8 @@ module.exports = class PocketBird extends Plugin {
/**
* Bird or birb, you decide
*/
function birdBirb() {
return settings().birbMode ? "Birb" : "Bird";
function birdBirb(invert = false) {
return settings().birbMode !== invert ? "Birb" : "Bird";
}
function init() {
@@ -2602,7 +2608,9 @@ module.exports = class PocketBird extends Plugin {
function pet() {
if (currentState === States.IDLE && birb.getCurrentAnimation() !== Animations.HEART) {
birdsong.chirp();
if (settings().soundEnabled) {
birdsong.chirp();
}
birb.setAnimation(Animations.HEART);
lastPetTimestamp = Date.now();
}

View File

@@ -1214,7 +1214,7 @@
class MenuItem {
/**
* @param {string} text
* @param {string|(() => string)} text
* @param {() => void} action
* @param {boolean} [removeMenu]
*/
@@ -1263,7 +1263,7 @@
if (item instanceof Separator) {
return makeElement("birb-window-separator");
}
let menuItem = makeElement("birb-menu-item", item.text);
let menuItem = makeElement("birb-menu-item", typeof item.text === "function" ? item.text() : item.text);
onClick(menuItem, () => {
if (item.removeMenu) {
removeMenuCallback();
@@ -1370,7 +1370,8 @@
* @typedef {typeof DEFAULT_SETTINGS} Settings
*/
const DEFAULT_SETTINGS = {
birbMode: false
birbMode: false,
soundEnabled: true
};
// Rendering constants
@@ -1583,6 +1584,7 @@
.birb-menu-item {
width: calc(100% - var(--birb-double-border-size));
white-space: nowrap;
font-size: 14px;
padding-top: 4px;
padding-bottom: 4px;
@@ -1855,7 +1857,11 @@
const settingsItems = [
new MenuItem("Go Back", () => switchMenuItems(menuItems, updateMenuLocation), false),
new Separator(),
new MenuItem("Toggle Birb Mode", () => {
new MenuItem(() => `${userSettings.soundEnabled ? "Disable" : "Enable"} Sound`, () => {
userSettings.soundEnabled = !userSettings.soundEnabled;
save();
}),
new MenuItem(() => `Toggle ${birdBirb(true)} Mode`, () => {
userSettings.birbMode = !userSettings.birbMode;
save();
const message = makeElement("birb-message-content");
@@ -1974,8 +1980,8 @@
/**
* Bird or birb, you decide
*/
function birdBirb() {
return settings().birbMode ? "Birb" : "Bird";
function birdBirb(invert = false) {
return settings().birbMode !== invert ? "Birb" : "Bird";
}
function init() {
@@ -2564,7 +2570,9 @@
function pet() {
if (currentState === States.IDLE && birb.getCurrentAnimation() !== Animations.HEART) {
birdsong.chirp();
if (settings().soundEnabled) {
birdsong.chirp();
}
birb.setAnimation(Animations.HEART);
lastPetTimestamp = Date.now();
}

View File

@@ -1194,7 +1194,7 @@
class MenuItem {
/**
* @param {string} text
* @param {string|(() => string)} text
* @param {() => void} action
* @param {boolean} [removeMenu]
*/
@@ -1243,7 +1243,7 @@
if (item instanceof Separator) {
return makeElement("birb-window-separator");
}
let menuItem = makeElement("birb-menu-item", item.text);
let menuItem = makeElement("birb-menu-item", typeof item.text === "function" ? item.text() : item.text);
onClick(menuItem, () => {
if (item.removeMenu) {
removeMenuCallback();
@@ -1350,7 +1350,8 @@
* @typedef {typeof DEFAULT_SETTINGS} Settings
*/
const DEFAULT_SETTINGS = {
birbMode: false
birbMode: false,
soundEnabled: true
};
// Rendering constants
@@ -1563,6 +1564,7 @@
.birb-menu-item {
width: calc(100% - var(--birb-double-border-size));
white-space: nowrap;
font-size: 14px;
padding-top: 4px;
padding-bottom: 4px;
@@ -1835,7 +1837,11 @@
const settingsItems = [
new MenuItem("Go Back", () => switchMenuItems(menuItems, updateMenuLocation), false),
new Separator(),
new MenuItem("Toggle Birb Mode", () => {
new MenuItem(() => `${userSettings.soundEnabled ? "Disable" : "Enable"} Sound`, () => {
userSettings.soundEnabled = !userSettings.soundEnabled;
save();
}),
new MenuItem(() => `Toggle ${birdBirb(true)} Mode`, () => {
userSettings.birbMode = !userSettings.birbMode;
save();
const message = makeElement("birb-message-content");
@@ -1954,8 +1960,8 @@
/**
* Bird or birb, you decide
*/
function birdBirb() {
return settings().birbMode ? "Birb" : "Bird";
function birdBirb(invert = false) {
return settings().birbMode !== invert ? "Birb" : "Bird";
}
function init() {
@@ -2544,7 +2550,9 @@
function pet() {
if (currentState === States.IDLE && birb.getCurrentAnimation() !== Animations.HEART) {
birdsong.chirp();
if (settings().soundEnabled) {
birdsong.chirp();
}
birb.setAnimation(Animations.HEART);
lastPetTimestamp = Date.now();
}

22
dist/web/birb.js vendored
View File

@@ -1194,7 +1194,7 @@
class MenuItem {
/**
* @param {string} text
* @param {string|(() => string)} text
* @param {() => void} action
* @param {boolean} [removeMenu]
*/
@@ -1243,7 +1243,7 @@
if (item instanceof Separator) {
return makeElement("birb-window-separator");
}
let menuItem = makeElement("birb-menu-item", item.text);
let menuItem = makeElement("birb-menu-item", typeof item.text === "function" ? item.text() : item.text);
onClick(menuItem, () => {
if (item.removeMenu) {
removeMenuCallback();
@@ -1350,7 +1350,8 @@
* @typedef {typeof DEFAULT_SETTINGS} Settings
*/
const DEFAULT_SETTINGS = {
birbMode: false
birbMode: false,
soundEnabled: true
};
// Rendering constants
@@ -1563,6 +1564,7 @@
.birb-menu-item {
width: calc(100% - var(--birb-double-border-size));
white-space: nowrap;
font-size: 14px;
padding-top: 4px;
padding-bottom: 4px;
@@ -1835,7 +1837,11 @@
const settingsItems = [
new MenuItem("Go Back", () => switchMenuItems(menuItems, updateMenuLocation), false),
new Separator(),
new MenuItem("Toggle Birb Mode", () => {
new MenuItem(() => `${userSettings.soundEnabled ? "Disable" : "Enable"} Sound`, () => {
userSettings.soundEnabled = !userSettings.soundEnabled;
save();
}),
new MenuItem(() => `Toggle ${birdBirb(true)} Mode`, () => {
userSettings.birbMode = !userSettings.birbMode;
save();
const message = makeElement("birb-message-content");
@@ -1954,8 +1960,8 @@
/**
* Bird or birb, you decide
*/
function birdBirb() {
return settings().birbMode ? "Birb" : "Bird";
function birdBirb(invert = false) {
return settings().birbMode !== invert ? "Birb" : "Bird";
}
function init() {
@@ -2544,7 +2550,9 @@
function pet() {
if (currentState === States.IDLE && birb.getCurrentAnimation() !== Animations.HEART) {
birdsong.chirp();
if (settings().soundEnabled) {
birdsong.chirp();
}
birb.setAnimation(Animations.HEART);
lastPetTimestamp = Date.now();
}