import React, {useState} from "react"; import {addToast, Button, Checkbox, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader} from "@heroui/react"; import {Form, Formik} from "formik"; import {LibraryEndpoint} from "Frontend/generated/endpoints"; import Input from "Frontend/components/general/input/Input"; import * as Yup from "yup"; import DirectoryMappingInput from "Frontend/components/general/input/DirectoryMappingInput"; import ArrayInputAutocomplete from "Frontend/components/general/input/ArrayInputAutocomplete"; import {useSnapshot} from "valtio/react"; import {platformState} from "Frontend/state/PlatformState"; import LibraryAdminDto from "Frontend/generated/org/gameyfin/app/libraries/dto/LibraryAdminDto"; interface LibraryCreationModalProps { isOpen: boolean; onOpenChange: () => void; } export default function LibraryCreationModal({ isOpen, onOpenChange }: LibraryCreationModalProps) { const [scanAfterCreation, setScanAfterCreation] = useState(true); const availablePlatforms = useSnapshot(platformState).available; async function createLibrary(library: LibraryAdminDto) { await LibraryEndpoint.createLibrary(library, scanAfterCreation); addToast({ title: "New library created", description: `Library ${library.name} created!`, color: "success" }); } return (availablePlatforms && <> {(onClose) => ( { await createLibrary(values); onClose(); }} > {(formik) =>
Add a new library
Scan after creation?
}
)}
); }