import { Button, ButtonGroup, TextInput, Field, TextAreaInput, ToggleSwitch, FieldGroup } from '@rocket.chat/fuselage'; import React, { useCallback, useState } from 'react'; import VerticalBar from '../../../components/VerticalBar'; import { useRoute } from '../../../contexts/RouterContext'; import { useMethod } from '../../../contexts/ServerContext'; import { useToastMessageDispatch } from '../../../contexts/ToastMessagesContext'; import { useTranslation } from '../../../contexts/TranslationContext'; export default function OAuthAddApp(props) { const t = useTranslation(); const dispatchToastMessage = useToastMessageDispatch(); const [newData, setNewData] = useState({ name: '', active: false, redirectUri: '', }); const saveApp = useMethod('addOAuthApp'); const router = useRoute('admin-oauth-apps'); const close = useCallback(() => router.push({}), [router]); const handleSave = useCallback(async () => { try { await saveApp(newData); close(); dispatchToastMessage({ type: 'success', message: t('Application_added') }); } catch (error) { dispatchToastMessage({ type: 'error', message: error }); } }, [close, dispatchToastMessage, newData, saveApp, t]); const handleChange = (field, getValue = (e) => e.currentTarget.value) => (e) => setNewData({ ...newData, [field]: getValue(e) }); const { active, name, redirectUri } = newData; return ( {t('Active')} !active)} /> {t('Application_Name')} {t('Give_the_application_a_name_This_will_be_seen_by_your_users')} {t('Redirect_URI')} {t('After_OAuth2_authentication_users_will_be_redirected_to_this_URL')} ); }