diff --git a/src/app/components/EditResourceModal.js b/src/app/components/EditResourceModal.js index f2911930be8b2283ee87efc7eb97fd76492af441..90019a6c357ae948fed4b8302dedeab6a37c8e48 100644 --- a/src/app/components/EditResourceModal.js +++ b/src/app/components/EditResourceModal.js @@ -8,34 +8,59 @@ import mecredApi from "@/axiosConfig"; export function EditResourceModal({ open, onClose, resource, setEditOpen }) { const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); + const [id, setId] = useState(); const [openSuccess, setOpenSuccess] = useState(false) + const token = getStoredValue("access_token"); const client = getStoredValue("client"); const uid = getStoredValue("uid"); useEffect(() => { + if (resource?.learning_object) { setTitle(resource.learning_object.name ?? ""); setDescription(resource.learning_object.description ?? ""); + setId(resource?.learning_object.id) + } else if (resource?.id) { + setTitle(resource.name); + setId(resource.id) + setDescription(resource.description); } }, [resource]); - if (!resource?.learning_object) return null; + + console.log("resource", resource, resource.learning_object) + if (!resource?.id) return null; const handleTitleChange = (e) => setTitle(e.target.value); const handleDescriptionChange = (e) => setDescription(e.target.value); const fetchData = async () => { + let resourceDraftNew = { ...resource } + + if (resource?.learning_object) { + resourceDraftNew.learning_object.name = title; + resourceDraftNew.learning_object.description = description; + } else if (resource?.id) { + resourceDraftNew.name = title; + resourceDraftNew.description = description; + } const payload = { - "id": resource?.learning_object.id, - "name": title, - "description": description + "learning_object": { + id: id, + name: resource?.learning_object?.name ?? resource.name, + description: resource?.learning_object?.description ?? resource.description, + language_ids: (resource?.language)?.map(l => l.id) + } } - console.log("aa") + + + //:author, :name, :curator, :object_type_id, :description, :license_id, :terms_of_service, :thumbnail, :software, :link, :magnetlink, language_ids: [ + console.log("aa", (resource?.language)?.map(l=>l.id) ) try { - await mecredApi.put(`/learning_objects/${resource?.learning_object.id}.json`, payload, { + await mecredApi.put(`/learning_objects/${id}.json`, payload, { headers: { "access-token": token, "token-type": "Bearer", @@ -54,30 +79,30 @@ export function EditResourceModal({ open, onClose, resource, setEditOpen }) { const ModalSucess = ({ open, onClose }) => { return ( - <Modal open={open} onClose={onClose} className="grid place-items-center" - slotProps={{ - backdrop: { - sx: { - backgroundColor: "rgba(0, 0, 0, 0.3)", // Ajuste a opacidade conforme necessário - }, - }, - }}> - <div className="flex flex-col justify-center bg-ice-HC-dark p-5 rounded"> - <p className="text-xl justify-center flex text-darkGray-HC-white-underline mb-2"> - Recurso editado com sucesso! - </p> - <div className="flex flex-row mt-2 justify-center gap-3"> - <button - className="text-sm text-darkGray-HC-white-underline border-main rounded-lg normal-case font-bold bg-ice-HC-dark hover:bg-ice-HC-dark-hover" - onClick={() => onClose()} - > - OK - </button> - </div> - </div> - </Modal> + <Modal open={open} onClose={onClose} className="grid place-items-center" + slotProps={{ + backdrop: { + sx: { + backgroundColor: "rgba(0, 0, 0, 0.3)", // Ajuste a opacidade conforme necessário + }, + }, + }}> + <div className="flex flex-col justify-center bg-ice-HC-dark p-5 rounded"> + <p className="text-xl justify-center flex text-darkGray-HC-white-underline mb-2"> + Recurso editado com sucesso! + </p> + <div className="flex flex-row mt-2 justify-center gap-3"> + <button + className="text-sm text-darkGray-HC-white-underline border-main rounded-lg normal-case font-bold bg-ice-HC-dark hover:bg-ice-HC-dark-hover" + onClick={() => onClose()} + > + OK + </button> + </div> + </div> + </Modal> ); - }; + }; return ( <Modal @@ -86,7 +111,7 @@ export function EditResourceModal({ open, onClose, resource, setEditOpen }) { className="grid place-items-center" > <div className="bg-ice-HC-dark p-6 rounded-lg"> - <ModalSucess open={openSuccess} onClose={() => setOpenSuccess(false)}/> + <ModalSucess open={openSuccess} onClose={() => setOpenSuccess(false)} /> <div className="flex justify-center mb-4">