summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/settings-permissions.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/src/components/settings-permissions.tsx')
-rw-r--r--packages/app/src/components/settings-permissions.tsx8
1 files changed, 5 insertions, 3 deletions
diff --git a/packages/app/src/components/settings-permissions.tsx b/packages/app/src/components/settings-permissions.tsx
index 7dd43a707..348854491 100644
--- a/packages/app/src/components/settings-permissions.tsx
+++ b/packages/app/src/components/settings-permissions.tsx
@@ -165,12 +165,14 @@ export const SettingsPermissions: Component = () => {
const nextValue =
existing && typeof existing === "object" && !Array.isArray(existing) ? { ...existing, "*": action } : action
- globalSync.set("config", "permission", { ...map, [id]: nextValue })
- globalSync.updateConfig({ permission: { [id]: nextValue } }).catch((err: unknown) => {
+ const rollback = (err: unknown) => {
globalSync.set("config", "permission", before)
const message = err instanceof Error ? err.message : String(err)
showToast({ title: language.t("settings.permissions.toast.updateFailed.title"), description: message })
- })
+ }
+
+ globalSync.set("config", "permission", { ...map, [id]: nextValue })
+ globalSync.updateConfig({ permission: { [id]: nextValue } }).catch(rollback)
}
return (