diff --git a/src/config/Paths.tsx b/src/config/Paths.tsx index ae9c50d..b86071a 100644 --- a/src/config/Paths.tsx +++ b/src/config/Paths.tsx @@ -14,7 +14,10 @@ export const Paths = { detail: '/announcement/', }, criticisms: '/criticisms', - learning: '/learning', + learning: { + list: '/learning/list', + detail: '/learning/', + }, auth: { login: '/auth/login', }, diff --git a/src/pages/criticisms/hooks/useCriticismsData.ts b/src/pages/criticisms/hooks/useCriticismsData.ts index a4942b9..d5cced2 100644 --- a/src/pages/criticisms/hooks/useCriticismsData.ts +++ b/src/pages/criticisms/hooks/useCriticismsData.ts @@ -1,5 +1,5 @@ import { useMutation } from "@tanstack/react-query"; -import { CreateCriticismsTypes } from "../types/CriticismsTypes"; +import { type CreateCriticismsTypes } from "../types/CriticismsTypes"; import * as api from "../service/CriticismsService"; export const useCreateCriticisms = () => { diff --git a/src/pages/criticisms/service/CriticismsService.ts b/src/pages/criticisms/service/CriticismsService.ts index e07d021..b228f2f 100644 --- a/src/pages/criticisms/service/CriticismsService.ts +++ b/src/pages/criticisms/service/CriticismsService.ts @@ -1,5 +1,5 @@ import axios from "../../../config/axios"; -import { CreateCriticismsTypes } from "../types/CriticismsTypes"; +import { type CreateCriticismsTypes } from "../types/CriticismsTypes"; export const createCriticisms = async (params: CreateCriticismsTypes) => { const { data } = await axios.post(`/criticisms`, params); diff --git a/src/pages/learning/Detail.tsx b/src/pages/learning/Detail.tsx new file mode 100644 index 0000000..b0cdab5 --- /dev/null +++ b/src/pages/learning/Detail.tsx @@ -0,0 +1,90 @@ +import { type FC } from 'react' +import { useParams } from 'react-router-dom' +import { useGetLearningDetail } from './hooks/useLearningData' +import PageLoading from '../../components/PageLoading' +// import DanakLearning from '../home/components/DanakLearning' +import { Calendar2, Clock, Element3 } from 'iconsax-react' +import moment from 'moment-jalaali' +import { Helmet } from 'react-helmet-async' +import { type LearningItemType } from './types/LearningTypes' + +const LearningDetail: FC = () => { + + const { id } = useParams() + const getLearningDetail = useGetLearningDetail(id ? id : '') + + return ( +
+ + + داناک | آموزش + + + { + getLearningDetail.isPending ? + + : +
+
+ + +
+ + +
+
+ {(getLearningDetail.data as { data: { learning: LearningItemType } })?.data?.learning?.title} +
+ +
+ +
+ +
+ {(getLearningDetail.data as { data: { learning: LearningItemType } })?.data?.learning?.videoDuration + ' دقیقه'} +
+
+ +
+ +
+ {(getLearningDetail.data as { data: { learning: LearningItemType } })?.data?.learning?.category?.name} +
+
+ +
+ +
+ {moment((getLearningDetail.data as { data: { learning: LearningItemType } })?.data?.learning?.createdAt).format('jYYYY-jMM-jDD')} +
+
+ +
+ + +
+
+ {(getLearningDetail.data as { data: { learning: LearningItemType } })?.data?.learning?.description} +
+ +
+
+ {/* */} +
+ } +
+ ) +} + +export default LearningDetail \ No newline at end of file diff --git a/src/pages/learning/List.tsx b/src/pages/learning/List.tsx new file mode 100644 index 0000000..ff26254 --- /dev/null +++ b/src/pages/learning/List.tsx @@ -0,0 +1,106 @@ +import { type FC, useState } from 'react' +// import { useTranslation } from 'react-i18next' +import BannerImage from '../../assets/images/support1.png' +import Input from '../../components/Input' +import { useGetLearnings } from './hooks/useLearningData' +import PageLoading from '../../components/PageLoading' +import { type LearningItemType } from './types/LearningTypes' +import moment from 'moment-jalaali' +import { Link } from 'react-router-dom' +// import { Pages } from '../../config/Pages' +import { Helmet } from 'react-helmet-async' + +const LearningList: FC = () => { + + // const { t } = useTranslation('global') + const [search, setSearch] = useState('') + const getLearnings = useGetLearnings(search) + + return ( +
+ + + داناک | آموزش + + +
+
+ آموزش +
+ +
+
+ setSearch(value)} + /> +
+ + {/*
+