import React, { useState } from 'react'; import { useTimeUpdate } from '../hooks/useTimeUpdate'; import { useClockZoom } from '../hooks/useClockZoom'; import { convertTimezone } from 'utils/date'; import defaults from '../options/default'; export const VerticalClock = () => { const [hour, setHour] = useState(''); const [minute, setMinute] = useState(''); const [seconds, setSeconds] = useState(''); const { elementRef, updateZoom } = useClockZoom(); const updateTime = () => { let now = new Date(); const timezone = localStorage.getItem('timezone'); const zero = localStorage.getItem('zero'); const showSeconds = localStorage.getItem('seconds') === 'true'; if (timezone && timezone !== 'auto') { now = convertTimezone(now, timezone); } let hours = now.getHours(); const minutes = ('00' + now.getMinutes()).slice(-2); if (localStorage.getItem('timeformat') !== 'twentyfourhour') { if (hours > 12) { hours -= 12; } else if (hours === 0) { hours = 12; } } setHour(zero === 'false' ? `${hours}` : ('00' + hours).slice(-2)); setMinute(minutes); if (showSeconds) { setSeconds(('00' + now.getSeconds()).slice(-2)); } }; useTimeUpdate(updateTime); const hourColour = localStorage.getItem('hourColour') || defaults.hourColour; const minuteColour = localStorage.getItem('minuteColour') || defaults.minuteColour; const secondColour = localStorage.getItem('secondColour') || defaults.secondColour; return (
{hour}
{minute}
{localStorage.getItem('seconds') === 'true' && (
{seconds}
)}
); };