'use client' import { useOrg } from '@components/Contexts/OrgContext' import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement' import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal' import { getUriWithOrg } from '@services/config/config' import { deleteCourseFromBackend } from '@services/courses/courses' import { getCourseThumbnailMediaDirectory } from '@services/media/media' import { revalidateTags } from '@services/utils/ts/requests' import { BookMinus, FilePenLine, Settings2, MoreVertical } from 'lucide-react' import { useLHSession } from '@components/Contexts/LHSessionContext' import Link from 'next/link' import { useRouter } from 'next/navigation' import React from 'react' import toast from 'react-hot-toast' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@components/ui/dropdown-menu" type Course = { course_uuid: string name: string description: string thumbnail_image: string org_id: string } type PropsType = { course: Course orgslug: string customLink?: string } export const removeCoursePrefix = (course_uuid: string) => course_uuid.replace('course_', '') function CourseThumbnail({ course, orgslug, customLink }: PropsType) { const router = useRouter() const org = useOrg() as any const session = useLHSession() as any const deleteCourse = async () => { const toastId = toast.loading('Deleting course...') try { await deleteCourseFromBackend(course.course_uuid, session.data?.tokens?.access_token) await revalidateTags(['courses'], orgslug) toast.success('Course deleted successfully') router.refresh() } catch (error) { toast.error('Failed to delete course') } finally { toast.dismiss(toastId) } } const thumbnailImage = course.thumbnail_image ? getCourseThumbnailMediaDirectory(org?.org_uuid, course.course_uuid, course.thumbnail_image) : '../empty_thumbnail.png' return (
{course.description}