import React from 'react' import Link from 'next/link' import { Draggable } from 'react-beautiful-dnd' import { getAPIUrl, getUriWithOrg } from '@services/config/config' import { 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' import { useLHSession } from '@components/Contexts/LHSessionContext' interface ModifiedActivityInterface { activityId: string activityName: string } function Activity(props: any) { const router = useRouter() const session = useLHSession() as any; const [modifiedActivity, setModifiedActivity] = React.useState< ModifiedActivityInterface | undefined >(undefined) const [selectedActivity, setSelectedActivity] = React.useState< string | undefined >(undefined) async function removeActivity() { await deleteActivity(props.activity.id, session.data?.tokens?.access_token) 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 ) { let modifiedActivityCopy = { ...props.activity, name: modifiedActivity.activityName, } await updateActivity(modifiedActivityCopy, activityId, session.data?.tokens?.access_token) await mutate(`${getAPIUrl()}chapters/meta/course_${props.courseid}`) await revalidateTags(['courses'], props.orgslug) router.refresh() } setSelectedActivity(undefined) } 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