Skip to content

Commit

Permalink
Fix ContextMenu requiring reload to apply changes
Browse files Browse the repository at this point in the history
  • Loading branch information
tfedor committed Jun 21, 2024
1 parent bde29ff commit e691ece
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 19 deletions.
2 changes: 1 addition & 1 deletion src/js/Background/Modules/ContextMenu/ContextMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export default class ContextMenu {
}
}

private static async update(): Promise<void> {
public static async update(): Promise<void> {
await SettingsStore;
if (!await Permissions.contains(["contextMenus"])) {
Settings.context_steam_store = false;
Expand Down
46 changes: 28 additions & 18 deletions src/js/Options/Modules/Options/Settings/ContextMenuOptions.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -13,56 +13,66 @@
import {L} from "@Core/Localization/Localization";
import Toggle from "../Components/Toggle.svelte";
import Permissions from "@Core/Permissions";
import ContextMenu from "@Background/Modules/ContextMenu/ContextMenu";
export let settings: Writable<SettingsSchema>;
type ContextMenuKeys = keyof SettingsSchema & (
"context_steam_store"
| "context_steam_market"
| "context_itad"
| "context_bartervg"
| "context_steamdb"
| "context_steamdb_instant"
| "context_steam_keys"
);
async function handleChange(value: boolean): Promise<boolean> {
if (!value) {
return false;
}
export let settings: Writable<SettingsSchema>;
const permissions = ["contextMenus"];
const hasPermissions = await Permissions.contains(permissions);
if (hasPermissions) {
return true;
async function handleChange(key: ContextMenuKeys, value: boolean): Promise<void> {
if (value) {
const permissions = ["contextMenus"];
const hasPermissions = await Permissions.contains(permissions);
if (!hasPermissions) {
// @ts-expect-error
value = await Permissions.request(permissions);
}
}
// @ts-ignore
return Permissions.request(permissions);
$settings[key] = value;
ContextMenu.update();
}
</script>

<Toggle value={$settings.context_steam_store}
on:toggle={async (e) => $settings.context_steam_store = await handleChange(e.detail)}>
on:toggle={async (e) => handleChange("context_steam_store", e.detail)}>
{L(__options_contextSteamStore, {query: "..."})}
</Toggle>

<Toggle value={$settings.context_steam_market}
on:toggle={async (e) => $settings.context_steam_market = await handleChange(e.detail)}>
on:toggle={async (e) => handleChange("context_steam_market", e.detail)}>
{L(__options_contextSteamMarket, {query: "..."})}
</Toggle>

<Toggle value={$settings.context_itad}
on:toggle={async (e) => $settings.context_itad = await handleChange(e.detail)}>
on:toggle={async (e) => handleChange("context_itad", e.detail)}>
{L(__options_contextItad, {query: "..."})}
</Toggle>

<Toggle value={$settings.context_bartervg}
on:toggle={async (e) => $settings.context_bartervg = await handleChange(e.detail)}>
on:toggle={async (e) => handleChange("context_bartervg", e.detail)}>
{L(__options_contextBartervg, {query: "..."})}
</Toggle>

<Toggle value={$settings.context_steamdb}
on:toggle={async (e) => $settings.context_steamdb = await handleChange(e.detail)}>
on:toggle={async (e) => handleChange("context_steamdb", e.detail)}>
{L(__options_contextSteamdb, {query: "..."})}
</Toggle>

<Toggle value={$settings.context_steamdb_instant}
on:toggle={async (e) => $settings.context_steamdb_instant = await handleChange(e.detail)}>
on:toggle={async (e) => handleChange("context_steamdb_instant", e.detail)}>
{L(__options_contextSteamdbInstant, {query: "..."})}
</Toggle>

<Toggle value={$settings.context_steam_keys}
on:toggle={async (e) => $settings.context_steam_keys = await handleChange(e.detail)}>
on:toggle={async (e) => handleChange("context_steam_keys", e.detail)}>
{L(__options_contextSteamKeys)}
</Toggle>

0 comments on commit e691ece

Please sign in to comment.