Add settings panel

This commit is contained in:
aet
2021-12-19 01:57:38 -05:00
parent 298482f70e
commit bf5bdd1f72
18 changed files with 847 additions and 275 deletions

View File

@ -1,21 +1,32 @@
/* eslint-disable import/no-unresolved */
import { useCallback, useEffect, useState } from "react"
import type { Vault, OnePassword } from "opvault.js"
import { useIdleTimer } from "react-idle-timer/modern"
import { VaultView } from "./pages/Vault"
import { VaultPicker } from "./pages/VaultPicker"
import { Key, useStorage } from "./utils/localStorage"
export const App: React.FC = () => {
const [instance, setInstance] = useState<OnePassword>()
const [vault, setVault] = useState<Vault>()
const [enableAutoLock] = useStorage(Key.ENABLE_AUTO_LOCK)
const [autolockAfter] = useStorage(Key.AUTO_LOCK_AFTER)
const onLock = useCallback(() => {
vault?.lock()
setVault(undefined)
}, [vault])
const onAutoLock = useCallback(() => {
if (enableAutoLock) {
onLock()
}
}, [onLock, enableAutoLock])
const { reset, pause } = useIdleTimer({
timeout: 60_000,
onIdle: onLock,
timeout: autolockAfter * 1000,
onIdle: onAutoLock,
})
useEffect(() => {