Files
SwimBuddy/src/providers/WatchProvider.tsx
T

37 lines
935 B
TypeScript

import { createContext, useContext, useEffect, useState, type ReactNode } from "react";
import { createMMKV } from "react-native-mmkv";
const storage = createMMKV();
type SettingsContextType = {
poolLength: number;
setPoolLength: (length: number) => void;
};
const SettingsContext = createContext<SettingsContextType>({
poolLength: 25,
setPoolLength: () => {},
});
export function useSettings() {
return useContext(SettingsContext);
}
export function SettingsProvider({ children }: { children: ReactNode }) {
const [poolLength, setPoolLengthState] = useState<number>(() => {
const stored = storage.getNumber("poolLength");
return stored ?? 25;
});
const setPoolLength = (length: number) => {
setPoolLengthState(length);
storage.set("poolLength", length);
};
return (
<SettingsContext.Provider value={{ poolLength, setPoolLength }}>
{children}
</SettingsContext.Provider>
);
}