import { ipcRenderer } from 'electron' import React, { useEffect, useState } from 'react' const labels = { every: ['Alert every me', 'minutes'], duration: ['For', 'seconds'], boot: ['Start on boot'], autoClose: ['Close window after countdown'], volume: ['Chime Volume'], } const ranges: Partial> = { every: [1, 60], duration: [1, 60], volume: [0, 100], } function getRange(key: keyof typeof labels): [number, number] { const range = ranges[key] return range || [0, 0] } const Field: React.FC<{ setting: keyof typeof labels }> = ({ setting: key }) => { const label = labels[key] const [value, setValue] = useState(null) useEffect(() => { const initial = ipcRenderer.sendSync('load', { key }) setValue(initial) }, []) useEffect(() => { if (value === null) return ipcRenderer.send('save', { key, value }) }, [value]) return value === null ? null : (
{typeof value === 'boolean' ? ( ) : (
setValue(parseInt(e.target.value))} />
)}
) } export default Field