* wip * wip * wip * format * wip(mobile): lint and format * cleanup * nits * nits * idiomatic react * nit * format all root files
23 lines
540 B
TypeScript
23 lines
540 B
TypeScript
import { useState, useCallback } from 'react';
|
|
|
|
export type RecordingMode = 'video' | 'audio';
|
|
|
|
const KEY = 'llink:recording-mode';
|
|
|
|
export function useRecordingMode(): [
|
|
RecordingMode,
|
|
(mode: RecordingMode) => void,
|
|
] {
|
|
const [mode, setModeState] = useState<RecordingMode>(() => {
|
|
const stored = localStorage.getItem(KEY);
|
|
return stored === 'audio' ? 'audio' : 'video';
|
|
});
|
|
|
|
const setMode = useCallback((m: RecordingMode) => {
|
|
localStorage.setItem(KEY, m);
|
|
setModeState(m);
|
|
}, []);
|
|
|
|
return [mode, setMode];
|
|
}
|