From 5335f4afbc29c66c7fa5fc4eb18b17139ab77a2b Mon Sep 17 00:00:00 2001 From: Brandon Presley Date: Sun, 1 Jan 2023 13:32:26 +1300 Subject: [PATCH] Memoize switches in SettingsPage --- SettingsPage.tsx | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/SettingsPage.tsx b/SettingsPage.tsx index 8a7dd49..7b5ea51 100644 --- a/SettingsPage.tsx +++ b/SettingsPage.tsx @@ -66,16 +66,19 @@ export default function SettingsPage() { toast('Sound will play after rest timers.') }, [settings, setValue]) - const switches: Input[] = [ - {name: 'Rest timers', value: settings.alarm, key: 'alarm'}, - {name: 'Vibrate', value: settings.vibrate, key: 'vibrate'}, - {name: 'Disable sound', value: settings.noSound, key: 'noSound'}, - {name: 'Notifications', value: settings.notify, key: 'notify'}, - {name: 'Show images', value: settings.images, key: 'images'}, - {name: 'Show unit', value: settings.showUnit, key: 'showUnit'}, - {name: 'Show steps', value: settings.steps, key: 'steps'}, - {name: 'Show date', value: settings.showDate, key: 'showDate'}, - ] + const switches: Input[] = useMemo( + () => [ + {name: 'Rest timers', value: settings.alarm, key: 'alarm'}, + {name: 'Vibrate', value: settings.vibrate, key: 'vibrate'}, + {name: 'Disable sound', value: settings.noSound, key: 'noSound'}, + {name: 'Notifications', value: settings.notify, key: 'notify'}, + {name: 'Show images', value: settings.images, key: 'images'}, + {name: 'Show unit', value: settings.showUnit, key: 'showUnit'}, + {name: 'Show steps', value: settings.steps, key: 'steps'}, + {name: 'Show date', value: settings.showDate, key: 'showDate'}, + ], + [settings], + ) const changeString = useCallback( async (key: keyof Settings, value: string) => {