import { useT } from 'contexts'; import React, { useState } from 'react'; import { Header, Row, Content, Action, PreferencesWrapper, Section } from 'components/Layout/Settings'; import { Checkbox, Dropdown, Radio } from 'components/Form/Settings'; import googleFonts from 'config/googleFonts.json'; import { MdRefresh, MdPalette } from 'react-icons/md'; const TimeOptions = ({ currentSubSection, onSubSectionChange, sectionName }) => { const t = useT(); const [timeType, setTimeType] = useState(localStorage.getItem('timeType') || 'digital'); const [hourColour, setHourColour] = useState(localStorage.getItem('hourColour') || '#ffffff'); const [minuteColour, setMinuteColour] = useState( localStorage.getItem('minuteColour') || '#ffffff', ); const [secondColour, setSecondColour] = useState( localStorage.getItem('secondColour') || '#ffffff', ); const [clockColor, setClockColor] = useState(localStorage.getItem('clockColor') || '#ffffff'); const TIME_SECTION = 'modals.main.settings.sections.time'; const updateColour = (type, event) => { const colour = event.target.value; if (type === 'hourColour') { setHourColour(colour); } else if (type === 'minuteColour') { setMinuteColour(colour); } else if (type === 'secondColour') { setSecondColour(colour); } localStorage.setItem(type, colour); }; const WidgetType = () => { return ( setTimeType(value)} category="clock" items={[ { value: 'digital', text: t(`${TIME_SECTION}.digital.title`) }, { value: 'analogue', text: t(`${TIME_SECTION}.analogue.title`) }, { value: 'percentageComplete', text: t(`${TIME_SECTION}.percentage_complete`), }, { value: 'verticalClock', text: t(`${TIME_SECTION}.vertical_clock.title`), }, ]} /> ); }; const digitalSettings = ( ); const analogSettings = ( ); const verticalClock = ( <> updateColour('hourColour', event)} value={hourColour} > {hourColour} localStorage.setItem('hourColour', '#ffffff')}> {t('modals.main.settings.buttons.reset')} updateColour('minuteColour', event)} value={minuteColour} > {minuteColour} localStorage.setItem('minuteColour', '#ffffff')}> {t('modals.main.settings.buttons.reset')} updateColour('secondColour', event)} value={secondColour} > {secondColour} localStorage.setItem('secondColour', '#ffffff')}> {t('modals.main.settings.buttons.reset')} {digitalSettings} > ); const getTimeSettings = () => { switch (timeType) { case 'digital': return digitalSettings; case 'analogue': return analogSettings; case 'verticalClock': return verticalClock; default: return null; } }; const AppearanceSection = () => { const fontWeight = `${TIME_SECTION}.appearance.font_weight`; const updateClockColor = (event) => { const color = event.target.value; setClockColor(color); localStorage.setItem('clockColor', color); }; return ( <> ({ value: font, text: font, }))} /> {clockColor} { localStorage.setItem('clockColor', '#ffffff'); setClockColor('#ffffff'); }} > {t('modals.main.settings.buttons.reset')} > ); }; const isAppearanceSection = currentSubSection === 'appearance'; let header; if (isAppearanceSection) { header = ( onSubSectionChange(null, sectionName)} report={false} /> ); } else { header = ( ); } return ( <> {header} {isAppearanceSection ? ( ) : ( onSubSectionChange('appearance', sectionName)} icon={} /> {getTimeSettings()} )} > ); }; export { TimeOptions as default, TimeOptions };