import React, { useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import config from '../config/config'; import { ApiKeyReducer, ReduxSelector } from '../types/store'; import apiKeyInvalid from '../utils/apiKey'; import { fetchUserData } from '../utils/user'; import Alert from './Alert'; import MainList from './MainList'; import NavBar from './NavBar'; export default function WakaTime(): JSX.Element { const dispatch = useDispatch(); const [extensionStatus, setExtensionStatus] = useState(''); const { apiKey: apiKeyFromRedux, loggingEnabled, totalTimeLoggedToday, }: ApiKeyReducer = useSelector((selector: ReduxSelector) => selector.config); useEffect(() => { const fetchData = async () => { await fetchUserData(apiKeyFromRedux, dispatch); }; void fetchData(); }, [apiKeyFromRedux, dispatch]); useEffect(() => { const init = async () => { const items = await browser.storage.sync.get({ extensionStatus: '' }); setExtensionStatus(items.extensionStatus as string); }; void init(); }, []); const isApiKeyValid = apiKeyInvalid(apiKeyFromRedux) === ''; return (