import { LearnProps } from "../../../../types/props"; import { useQuery } from "@tanstack/react-query"; import useAxios from "../../../../hooks/useAxios"; import Alert from "../../../../components/alert/Alert"; import { MdErrorOutline } from "react-icons/md"; import Button from "../../../../components/button"; import { saveAs } from "file-saver"; import { Fragment } from "react/jsx-runtime"; const getMediaType = (url: string) => { const extension = url.split(".").pop()?.toLowerCase(); if (extension) { if (["jpg", "jpeg", "png", "gif"].includes(extension)) { return "image"; } if (["mp4", "webm", "ogg"].includes(extension)) { return "video"; } } return "unknown"; }; const Learn = ({ activeTutorial }: LearnProps) => { const axios = useAxios(); const { data, isLoading, isFetching, error } = useQuery({ queryKey: ["learn", activeTutorial], queryFn: () => { return axios.get(`/home/category/learning/${activeTutorial}`); }, }); return (
{isLoading || isFetching ? (
) : error ? ( {error.message} ) : data?.data?.result?.learning.length === 0 && !data?.data?.result?.files ? (

اموزشی وجود ندارد

) : ( <> {/* Render files if they exist */} {data?.data?.result?.files && data?.data?.result?.files.length > 0 && (
{data.data.result.files.map( (file: { id: number; title: string; file: string; description: string; }) => ( {file?.description ? (

{file.title}

توضیحات : {file?.description}

) : (

{file.title}

)}
) )}
)} {/* Render learning items */} {data?.data?.result?.learning.map( (i: { id: string; title: string; medias: string[]; url_file: string; }) => (
{i.title}
{i.medias.map((media, index) => { const mediaType = getMediaType(media); return (
{mediaType === "image" ? ( media ) : mediaType === "video" ? (
); })}
{i.url_file && ( <> )}
) )} )}
); }; export default Learn;