import { useEffect, useState } from 'react' import '@homebridge/plugin-ui-utils/dist/ui.interface' import TokenForm from './TokenForm' const { homebridge } = window function getConfigs() { return homebridge.getPluginConfig() } export default function CustomConfigUi() { const [showTokenForm, setShowTokenForm] = useState(false) useEffect(() => { if (showTokenForm) { homebridge.hideSchemaForm() } else { homebridge.showSchemaForm() } }, [showTokenForm]) useEffect(() => { getConfigs() .then((configs) => { const needToken = !configs[0]?.refreshToken setShowTokenForm(needToken) }) // eslint-disable-next-line no-console .catch((e) => console.error(e)) }, []) async function onRefreshToken(refreshToken: string) { const [config, ...otherConfigs] = await getConfigs() await homebridge.updatePluginConfig([ { ...config, refreshToken }, ...otherConfigs, ]) homebridge.toast.success('Refresh Token Updated', 'Ring Login Successful') setShowTokenForm(false) } return showTokenForm ? ( ) : ( ) }