import React, { useCallback, useState } from 'react'; import FormGroup from 'Components/Form/FormGroup'; import FormInputGroup from 'Components/Form/FormInputGroup'; import FormLabel from 'Components/Form/FormLabel'; import Button from 'Components/Link/Button'; import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; import useApiQuery from 'Helpers/Hooks/useApiQuery'; import { inputTypes } from 'Helpers/Props'; import { useIsWindows } from 'System/Status/useSystemStatus'; import { InputChanged } from 'typings/inputs'; import translate from 'Utilities/String/translate'; export interface RootFolderUpdated { path: string; rootFolderPath: string; } export interface RootFolderModalContentProps { seriesId: number; rootFolderPath: string; onSavePress(change: RootFolderUpdated): void; onModalClose(): void; } interface SeriesFolder { folder: string; } function RootFolderModalContent(props: RootFolderModalContentProps) { const { seriesId, onSavePress, onModalClose } = props; const isWindows = useIsWindows(); const [rootFolderPath, setRootFolderPath] = useState(props.rootFolderPath); const { isLoading, data } = useApiQuery({ path: `/series/${seriesId}/folder`, }); const onInputChange = useCallback(({ value }: InputChanged) => { setRootFolderPath(value); }, []); const handleSavePress = useCallback(() => { const separator = isWindows ? '\\' : '/'; onSavePress({ path: `${rootFolderPath}${separator}${data?.folder}`, rootFolderPath, }); }, [rootFolderPath, isWindows, data, onSavePress]); return ( {translate('UpdateSeriesPath')} {translate('RootFolder')} ); } export default RootFolderModalContent;