import { RouteComponentProps } from '@reach/router'; import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch } from 'react-redux'; import { useModule } from '../../../lib/react-utils'; import Stulbe from '../../../lib/stulbe-lib'; import apiReducer, { modules } from '../../../store/api/reducer'; export default function StulbeConfigPage( // eslint-disable-next-line @typescript-eslint/no-unused-vars params: RouteComponentProps, ): React.ReactElement { const { t } = useTranslation(); const [moduleConfig, setModuleConfig] = useModule(modules.moduleConfig); const [stulbeConfig, setStulbeConfig] = useModule(modules.stulbeConfig); const [testResult, setTestResult] = useState(null); const dispatch = useDispatch(); const busy = moduleConfig === null; const active = moduleConfig?.stulbe ?? false; const test = async () => { try { const client = new Stulbe(stulbeConfig.endpoint); await client.auth(stulbeConfig.username, stulbeConfig.auth_key); setTestResult('Connection/Authentication were successful!'); } catch (e) { setTestResult(e.message); } }; return ( <>

{t('backend.config.header')}

dispatch( apiReducer.actions.stulbeConfigChanged({ ...stulbeConfig, endpoint: ev.target.value, }), ) } />

dispatch( apiReducer.actions.stulbeConfigChanged({ ...stulbeConfig, username: ev.target.value, }), ) } />

dispatch( apiReducer.actions.stulbeConfigChanged({ ...stulbeConfig, auth_key: ev.target.value, }), ) } />

{testResult ? (
{testResult}
) : null} ); }