Factor out buttons in SettingsPage
This commit is contained in:
parent
fc6f5e3b53
commit
27b7e91e91
|
@ -262,16 +262,13 @@ export default function SettingsPage() {
|
||||||
toast('Database exported. Check downloads.')
|
toast('Database exported. Check downloads.')
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
return (
|
const buttons = useMemo(
|
||||||
<>
|
() => [
|
||||||
<DrawerHeader name="Settings" />
|
{
|
||||||
<Page term={term} search={setTerm} style={{flexGrow: 0}}>
|
name: 'Alarm sound',
|
||||||
<View style={{marginTop: MARGIN}}>
|
element: (
|
||||||
{switches.map(s => renderSwitch(s))}
|
|
||||||
</View>
|
|
||||||
<>{selects.map(s => renderSelect(s))}</>
|
|
||||||
{'alarm sound'.includes(term.toLowerCase()) && (
|
|
||||||
<View
|
<View
|
||||||
|
key="alarm-sound"
|
||||||
style={{
|
style={{
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
|
@ -280,19 +277,46 @@ export default function SettingsPage() {
|
||||||
<Subheading style={{width: 100}}>Alarm sound</Subheading>
|
<Subheading style={{width: 100}}>Alarm sound</Subheading>
|
||||||
<Button onPress={changeSound}>{soundString || 'Default'}</Button>
|
<Button onPress={changeSound}>{soundString || 'Default'}</Button>
|
||||||
</View>
|
</View>
|
||||||
)}
|
),
|
||||||
{'export database'.includes(term.toLowerCase()) && (
|
},
|
||||||
<Button style={{alignSelf: 'flex-start'}} onPress={exportDatabase}>
|
{
|
||||||
|
name: 'Export database',
|
||||||
|
element: (
|
||||||
|
<Button
|
||||||
|
key="export-db"
|
||||||
|
style={{alignSelf: 'flex-start'}}
|
||||||
|
onPress={exportDatabase}>
|
||||||
Export database
|
Export database
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
),
|
||||||
{'import database'.includes(term.toLowerCase()) && (
|
},
|
||||||
|
{
|
||||||
|
name: 'Import database',
|
||||||
|
element: (
|
||||||
<Button
|
<Button
|
||||||
|
key="import-db"
|
||||||
style={{alignSelf: 'flex-start'}}
|
style={{alignSelf: 'flex-start'}}
|
||||||
onPress={() => setImporting(true)}>
|
onPress={() => setImporting(true)}>
|
||||||
Import database
|
Import database
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[changeSound, exportDatabase, soundString],
|
||||||
|
)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<DrawerHeader name="Settings" />
|
||||||
|
|
||||||
|
<Page term={term} search={setTerm} style={{flexGrow: 0}}>
|
||||||
|
<View style={{marginTop: MARGIN}}>
|
||||||
|
{switches.map(s => renderSwitch(s))}
|
||||||
|
{selects.map(s => renderSelect(s))}
|
||||||
|
{buttons
|
||||||
|
.filter(b => b.name.includes(term.toLowerCase()))
|
||||||
|
.map(b => b.element)}
|
||||||
|
</View>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
||||||
<ConfirmDialog
|
<ConfirmDialog
|
||||||
|
|
Loading…
Reference in New Issue
Block a user