import React from "react"; import Link from "next/link"; import { Draggable } from "react-beautiful-dnd"; import { getAPIUrl, getUriWithOrg } from "@services/config/config"; import { FileText, Video, Sparkles, X, Pencil, MoreVertical, Eye, Save, File } from "lucide-react"; import { mutate } from "swr"; import { revalidateTags } from "@services/utils/ts/requests"; import { useRouter } from "next/navigation"; import ConfirmationModal from "@components/StyledElements/ConfirmationModal/ConfirmationModal"; import { deleteActivity, updateActivity } from "@services/courses/activities"; interface ModifiedActivityInterface { activityId: string; activityName: string; } function Activity(props: any) { const router = useRouter(); const [modifiedActivity, setModifiedActivity] = React.useState(undefined); const [selectedActivity, setSelectedActivity] = React.useState(undefined); async function removeActivity() { await deleteActivity(props.activity.id); mutate(`${getAPIUrl()}chapters/meta/course_${props.courseid}`); await revalidateTags(['courses'], props.orgslug); router.refresh(); } async function updateActivityName(activityId: string) { if ((modifiedActivity?.activityId === activityId) && selectedActivity !== undefined) { setSelectedActivity(undefined); let modifiedActivityCopy = { name: modifiedActivity.activityName, description: '', type: props.activity.type, content: props.activity.content, } await updateActivity(modifiedActivityCopy, activityId) await mutate(`${getAPIUrl()}chapters/meta/course_${props.courseid}`) await revalidateTags(['courses'], props.orgslug) router.refresh(); } } return ( {(provided) => (
{props.activity.type === "video" && <>
} {props.activity.type === "documentpdf" && <>
Document
} {props.activity.type === "dynamic" && <>
Dynamic
}
{selectedActivity === props.activity.id ? (
setModifiedActivity({ activityId: props.activity.id, activityName: e.target.value })} />
) : (

{props.activity.name}

)} setSelectedActivity(props.activity.id)} size={12} className="text-neutral-400 hover:cursor-pointer" />
{props.activity.type === "TYPE_DYNAMIC" && <>
Edit
}
} functionToExecute={() => removeActivity()} status='warning' >
)}
); } export default Activity;