import { Button, ButtonGroup, Field, FieldGroup, FieldLabel, FieldRow, TextInput } from '@rocket.chat/fuselage'; import { PageScrollableContent, Page, PageHeader } from '@rocket.chat/ui-client'; import { useTranslation, useRouter } from '@rocket.chat/ui-contexts'; import { useCallback, useId } from 'react'; import { useForm, Controller } from 'react-hook-form'; import { useInstallApp } from './hooks/useInstallApp'; import { useSingleFileInput } from '../../hooks/useSingleFileInput'; const AppInstallPage = () => { const t = useTranslation(); const router = useRouter(); const { control, setValue, watch } = useForm<{ file: File }>(); const { file } = watch(); const { install, isInstalling } = useInstallApp(file); const [handleUploadButtonClick] = useSingleFileInput((value) => setValue('file', value), 'app'); const handleCancel = useCallback(() => { router.navigate({ name: 'marketplace', params: { context: 'private', page: 'list', }, }); }, [router]); const fileField = useId(); return ( {t('App_Url_to_Install_From_File')} ( {t('Browse_Files')} } /> )} /> ); }; export default AppInstallPage;