fix: guard against malformed stored settings (crash → blank window); add ErrorBoundary to surface render errors
This commit is contained in:
1 parent
bfd3638093
commit
895b254c2a
3 files changed
+36
-7
No files matched your search
+9
-3
@@ -52,12 +52,18 @@ export function createApinexProvider (): ProviderConfig {
|
||||
}
|
||||
|
||||
export async function loadSettings (): Promise<Settings> {
|
||||
const defaults = defaultSettings()
|
||||
try {
|
||||
const stored = await figma.clientStorage.getAsync(SETTINGS_KEY)
|
||||
if (stored == null || stored.version !== 1) return defaultSettings()
|
||||
return stored as Settings
|
||||
if (stored == null || stored.version !== 1) return defaults
|
||||
const merged: Settings = { ...defaults, ...(stored as Settings) }
|
||||
if (!Array.isArray(merged.providers) || merged.providers.length === 0) {
|
||||
merged.providers = defaults.providers
|
||||
merged.activeProviderId = defaults.providers[0].id
|
||||
}
|
||||
return merged
|
||||
} catch (e) {
|
||||
return defaultSettings()
|
||||
return defaults
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user