// Copyright (C) 2022-present Daniel31x13 // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. // You should have received a copy of the GNU General Public License along with this program. If not, see . import React, { useState } from "react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faClose, faPenToSquare, faPlus, faTrashCan, faUser, faUserPlus, } from "@fortawesome/free-solid-svg-icons"; import useCollectionStore from "@/store/collections"; import { CollectionIncludingMembers, Member } from "@/types/global"; import { useSession } from "next-auth/react"; import Modal from "@/components/Modal"; import DeleteCollection from "@/components/Modal/Collection/DeleteCollection"; import RequiredBadge from "../../RequiredBadge"; import addMemberToCollection from "@/lib/client/addMemberToCollection"; import ImageWithFallback from "../../ImageWithFallback"; import Checkbox from "../../Checkbox"; type Props = { toggleCollectionModal: Function; activeCollection: CollectionIncludingMembers; method: "CREATE" | "UPDATE"; }; export default function CollectionInfo({ toggleCollectionModal, activeCollection, method, }: Props) { const [collection, setCollection] = useState(activeCollection); const { updateCollection, addCollection } = useCollectionStore(); const submit = async () => { if (!collection) return null; let response = null; if (method === "CREATE") response = await addCollection(collection); else if (method === "UPDATE") response = await updateCollection(collection); else console.log("Unknown method."); if (response) toggleCollectionModal(); }; return (

{method === "CREATE" ? "Add" : "Edit"} Collection

Name

setCollection({ ...collection, name: e.target.value }) } type="text" placeholder="e.g. Example Collection" className="w-full rounded-md p-3 border-sky-100 border-solid border outline-none focus:border-sky-500 duration-100" />

Description