browser-extension-settings 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/settings.ts +27 -0
  2. package/package.json +2 -2
package/lib/settings.ts CHANGED
@@ -402,6 +402,10 @@ function createSettingsElement() {
402
402
  }
403
403
 
404
404
  function addSideMenu() {
405
+ if (!getSettingsValue("displaySettingsButtonInSideMenu")) {
406
+ return
407
+ }
408
+
405
409
  const menu =
406
410
  $("#browser_extension_side_menu") ||
407
411
  addElement(doc.body, "div", {
@@ -430,6 +434,27 @@ function addSideMenu() {
430
434
  })
431
435
  }
432
436
 
437
+ function addCommonSettings(settingsTable: SettingsTable) {
438
+ let maxGroup = 0
439
+ for (const key in settingsTable) {
440
+ if (Object.hasOwn(settingsTable, key)) {
441
+ const item = settingsTable[key]
442
+ const group = item.group || 1
443
+ if (group > maxGroup) {
444
+ maxGroup = group
445
+ }
446
+ }
447
+ }
448
+
449
+ settingsTable.displaySettingsButtonInSideMenu = {
450
+ title: "Display Settings Button in Side Menu",
451
+ defaultValue: !(
452
+ typeof GM === "object" && typeof GM.registerMenuCommand === "function"
453
+ ),
454
+ group: maxGroup + 1,
455
+ }
456
+ }
457
+
433
458
  export async function showSettings() {
434
459
  const settingsContainer = getSettingsContainer()
435
460
 
@@ -446,10 +471,12 @@ export async function showSettings() {
446
471
  export const initSettings = async (options: SettingsOptions) => {
447
472
  settingsOptions = options
448
473
  settingsTable = options.settingsTable || {}
474
+ addCommonSettings(settingsTable)
449
475
  addValueChangeListener(storageKey, async () => {
450
476
  settings = await getSettings()
451
477
  // console.log(JSON.stringify(settings, null, 2))
452
478
  await updateOptions()
479
+ addSideMenu()
453
480
  if (typeof options.onValueChange === "function") {
454
481
  options.onValueChange()
455
482
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browser-extension-settings",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Settings module for developing browser extensions and userscripts",
5
5
  "type": "module",
6
6
  "main": "./lib/index.ts",
@@ -28,7 +28,7 @@
28
28
  "homepage": "https://github.com/utags/browser-extension-settings#readme",
29
29
  "dependencies": {
30
30
  "browser-extension-storage": "^0.1.2",
31
- "browser-extension-utils": "^0.1.7"
31
+ "browser-extension-utils": "^0.1.9"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/chrome": "^0.0.237",