From 27b7e91e91ace539425a66719f4a3baff90f2eda Mon Sep 17 00:00:00 2001 From: Brandon Presley Date: Sat, 24 Dec 2022 13:36:11 +1300 Subject: [PATCH] Factor out buttons in SettingsPage --- SettingsPage.tsx | 54 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/SettingsPage.tsx b/SettingsPage.tsx index df4639e..8f2d0de 100644 --- a/SettingsPage.tsx +++ b/SettingsPage.tsx @@ -262,16 +262,13 @@ export default function SettingsPage() { toast('Database exported. Check downloads.') }, []) - return ( - <> - - - - {switches.map(s => renderSwitch(s))} - - <>{selects.map(s => renderSelect(s))} - {'alarm sound'.includes(term.toLowerCase()) && ( + const buttons = useMemo( + () => [ + { + name: 'Alarm sound', + element: ( Alarm sound - )} - {'export database'.includes(term.toLowerCase()) && ( - - )} - {'import database'.includes(term.toLowerCase()) && ( + ), + }, + { + name: 'Import database', + element: ( - )} + ), + }, + ], + [changeSound, exportDatabase, soundString], + ) + + return ( + <> + + + + + {switches.map(s => renderSwitch(s))} + {selects.map(s => renderSelect(s))} + {buttons + .filter(b => b.name.includes(term.toLowerCase())) + .map(b => b.element)} +