Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 1x 1x 1x 1x 1x 1x 1x | import React, { useEffect, useState } from "react";
import { Alert } from "react-native";
import {
useGeneralSettings,
getCampusLabel,
} from "../../hooks/useGeneralSettings";
import { SettingsScreenScaffold } from "../../components/settings/SettingsScreenScaffold";
import {
SettingsCard,
SettingsKeyValueRow,
SettingsLinkRow,
SettingsPrimaryButton,
SettingsSectionLabel,
} from "../../components/settings";
export default function SettingsGeneral() {
const { defaultCampus, setDefaultCampus, hydrateFromStorage } =
useGeneralSettings();
useEffect(() => {
void hydrateFromStorage();
}, [hydrateFromStorage]);
const [cacheSize, setCacheSize] = useState("42.3 MB");
const [offlineMapsSize, setOfflineMapsSize] = useState("128.7 MB");
const onClearCache = () => {
setCacheSize("0 MB");
setOfflineMapsSize("0 MB");
Alert.alert(
"Cache cleared",
"Stored map data and cache have been cleared.",
);
};
return (
<SettingsScreenScaffold title="General">
<SettingsLinkRow
title="Default Campus"
subtitle={getCampusLabel(defaultCampus)}
onPress={() => {
Alert.alert("Default Campus", "Choose your default campus", [
{
text: "Sir George Williams Campus",
onPress: () => setDefaultCampus("SGW"),
},
{
text: "Loyola Campus",
onPress: () => setDefaultCampus("LOYOLA"),
},
{ text: "Cancel", style: "cancel" },
]);
}}
/>
<SettingsCard>
<SettingsSectionLabel style={{ marginTop: 8 }}>
Storage
</SettingsSectionLabel>
<SettingsKeyValueRow label="Cache Size" value={cacheSize} />
<SettingsKeyValueRow label="Offline Maps" value={offlineMapsSize} />
<SettingsPrimaryButton label="Clear Cache" onPress={onClearCache} />
</SettingsCard>
</SettingsScreenScaffold>
);
}
|