Reapply "More aggressive using of cache on engine settings changes" (#4736)
* Reapply "More aggressive using of cache on engine settings changes (#4691)" (#4729)
This reverts commit 3f1f40eeba.
* Add a utility to get all the current values from the settings object
* Use an XState selector to get the latest settings snapshot for WASM
---------
Co-authored-by: Frank Noirot <frank@kittycad.io>
This commit is contained in:
@ -286,6 +286,27 @@ export function getChangedSettingsAtLevel(
|
||||
return changedSettings
|
||||
}
|
||||
|
||||
export function getAllCurrentSettings(
|
||||
allSettings: typeof settings
|
||||
): SaveSettingsPayload {
|
||||
const currentSettings = {} as SaveSettingsPayload
|
||||
Object.entries(allSettings).forEach(([category, settingsCategory]) => {
|
||||
const categoryKey = category as keyof typeof settings
|
||||
Object.entries(settingsCategory).forEach(
|
||||
([setting, settingValue]: [string, Setting]) => {
|
||||
const settingKey =
|
||||
setting as keyof (typeof settings)[typeof categoryKey]
|
||||
currentSettings[categoryKey] = {
|
||||
...currentSettings[categoryKey],
|
||||
[settingKey]: settingValue.current,
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
return currentSettings
|
||||
}
|
||||
|
||||
export function setSettingsAtLevel(
|
||||
allSettings: typeof settings,
|
||||
level: SettingsLevel,
|
||||
|
||||
Reference in New Issue
Block a user