import FolderIcon from '@mui/icons-material/Folder'; import { AutocompleteRenderInputParams, MenuItem, Typography } from '@mui/material'; import { useTranslation } from 'react-i18next'; import { isWikiWorkspace } from '@services/workspaces/interface'; import { CreateContainer, LocationPickerButton, LocationPickerContainer, LocationPickerInput, SoftLinkToMainWikiSelect, SubWikiTagAutoComplete } from './FormComponents'; import { useAvailableTags } from './useAvailableTags'; import type { IWikiWorkspaceFormProps } from './useForm'; import { useValidateNewWiki } from './useNewWiki'; export function NewWikiForm({ form, isCreateMainWorkspace, isCreateSyncedWorkspace, errorInWhichComponent, errorInWhichComponentSetter, }: IWikiWorkspaceFormProps & { isCreateSyncedWorkspace: boolean }): React.JSX.Element { const { t } = useTranslation(); useValidateNewWiki(isCreateMainWorkspace, isCreateSyncedWorkspace, form, errorInWhichComponentSetter); // Fetch all tags from main wiki for autocomplete suggestions const availableTags = useAvailableTags(form.mainWikiToLink.id, !isCreateMainWorkspace); return ( ) => { form.parentFolderLocationSetter(event.target.value); }} label={t('AddWorkspace.WorkspaceParentFolder')} value={form.parentFolderLocation} /> { // first clear the text, so button will refresh form.parentFolderLocationSetter(''); const filePaths = await window.service.native.pickDirectory(form.parentFolderLocation); if (filePaths.length > 0) { form.parentFolderLocationSetter(filePaths[0]); } }} endIcon={} > {t('AddWorkspace.Choose')} ) => { form.wikiFolderNameSetter(event.target.value); }} label={t('AddWorkspace.WorkspaceFolderNameToCreate')} helperText={`${t('AddWorkspace.CreateWiki')}${form.wikiFolderLocation ?? ''}`} value={form.wikiFolderName} /> {!isCreateMainWorkspace && ( <> ) => { const index = Number(event.target.value); const selectedWorkspace = form.mainWorkspaceList[index]; if (selectedWorkspace && isWikiWorkspace(selectedWorkspace)) { form.mainWikiToLinkSetter({ wikiFolderLocation: selectedWorkspace.wikiFolderLocation, port: selectedWorkspace.port, id: selectedWorkspace.id, }); } }} > {form.mainWorkspaceList.map((workspace, index) => ( {workspace.name} ))} { form.tagNameSetter(value); }} renderInput={(parameters: AutocompleteRenderInputParams) => ( )} /> )} ); }