diff --git a/app/api/config.ts b/app/api/config.ts index e75acb0..d4b4e1b 100644 --- a/app/api/config.ts +++ b/app/api/config.ts @@ -81,5 +81,6 @@ export const ENDPOINTS = { watching: `${API_PREFIX}/discover/watching`, recommendations: `${API_PREFIX}/discover/recommendations`, collections: `${API_PREFIX}/collection/all`, + schedule: `${API_PREFIX}/schedule`, } }; diff --git a/app/components/Discovery/Modal/ScheduleModal.tsx b/app/components/Discovery/Modal/ScheduleModal.tsx new file mode 100644 index 0000000..1b60d49 --- /dev/null +++ b/app/components/Discovery/Modal/ScheduleModal.tsx @@ -0,0 +1,71 @@ +"use client"; + +import { ENDPOINTS } from "#/api/config"; +import { useSWRfetcher } from "#/api/utils"; +import useSWR from "swr"; +import { Modal, ModalBody, ModalHeader } from "flowbite-react"; +import { Spinner } from "#/components/Spinner/Spinner"; +import { ReleaseCourusel } from "#/components/ReleaseCourusel/ReleaseCourusel"; +type ModalProps = { + isOpen: boolean; + setIsOpen: (value: boolean) => void; +}; + +export const ScheduleModal = ({ isOpen, setIsOpen }: ModalProps) => { + const { data, isLoading, error } = useSWR( + ENDPOINTS.discover.schedule, + useSWRfetcher, + { + revalidateOnFocus: false, + revalidateIfStale: false, + revalidateOnReconnect: false, + } + ); + + return ( + setIsOpen(false)} + size="7xl" + dismissible + > + Расписание + + {!error ? + isLoading ? +
+ +
+ :
+ + + + + + + +
+ + : "Ошибка загрузки"} +
+
+ ); +}; diff --git a/app/pages/Discover.tsx b/app/pages/Discover.tsx index 13f33c9..ca7cb7a 100644 --- a/app/pages/Discover.tsx +++ b/app/pages/Discover.tsx @@ -3,6 +3,7 @@ import { CollectionsOfTheWeek } from "#/components/Discovery/CollectionsOfTheWee import { DiscussingToday } from "#/components/Discovery/DiscussingToday"; import { InterestingCarousel } from "#/components/Discovery/InterestingCarousel"; import { PopularModal } from "#/components/Discovery/Modal/PopularModal"; +import { ScheduleModal } from "#/components/Discovery/Modal/ScheduleModal"; import { RecommendedCarousel } from "#/components/Discovery/RecommendedCarousel"; import { WatchingNowCarousel } from "#/components/Discovery/WatchingNowCarousel"; import { Button } from "flowbite-react"; @@ -12,6 +13,7 @@ import { useState } from "react"; export const DiscoverPage = () => { const router = useRouter(); const [PopularModalOpen, setPopularModalOpen] = useState(false); + const [ScheduleModalOpen, setScheduleModalOpen] = useState(false); return ( <> @@ -25,7 +27,11 @@ export const DiscoverPage = () => { Популярное - @@ -48,6 +54,10 @@ export const DiscoverPage = () => { + ); };