"use client";
import { ReleaseCourusel } from "#/components/ReleaseCourusel/ReleaseCourusel";
import { Spinner } from "#/components/Spinner/Spinner";
import { useUserStore } from "#/store/auth";
import { useState, useEffect } from "react";
import { FetchFilter } from "#/api/utils";
import { usePreferencesStore } from "#/store/preferences";
import { useRouter } from "next/navigation";
import {
ListAnnounce,
ListFilms,
ListFinished,
ListLast,
ListOngoing,
} from "./IndexFilters";
export function IndexPage() {
const token = useUserStore((state) => state.token);
const preferenceStore = usePreferencesStore();
const router = useRouter();
const [isLoading, setIsLoading] = useState(true);
const [lastReleasesData, setLastReleasesData] = useState(null);
const [ongoingReleasesData, setOngoingReleasesData] = useState(null);
const [finishedReleasesData, setFinishedReleasesData] = useState(null);
const [announceReleasesData, setAnnounceReleasesData] = useState(null);
const [filmsReleasesData, setFilmsReleasesData] = useState(null);
useEffect(() => {
if (preferenceStore.params.skipToCategory.enabled) {
router.push(
`/home/${preferenceStore.params.skipToCategory.homeCategory}`
);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
useEffect(() => {
async function _loadReleases() {
setIsLoading(true);
setLastReleasesData(null);
setOngoingReleasesData(null);
setFinishedReleasesData(null);
setAnnounceReleasesData(null);
setFilmsReleasesData(null);
const [lastReleases] = await FetchFilter(ListLast.filter, 0, token);
const [ongoingReleases] = await FetchFilter(ListOngoing.filter, 0, token);
const [announceReleases] = await FetchFilter(
ListAnnounce.filter,
0,
token
);
const [finishedReleases] = await FetchFilter(
ListFinished.filter,
0,
token
);
const [filmsReleases] = await FetchFilter(ListFilms.filter, 0, token);
setLastReleasesData(lastReleases);
setOngoingReleasesData(ongoingReleases);
setFinishedReleasesData(finishedReleases);
setAnnounceReleasesData(announceReleases);
setFilmsReleasesData(filmsReleases);
setIsLoading(false);
}
if (!preferenceStore.params.skipToCategory.enabled) {
_loadReleases();
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [token]);
return (
<>
{lastReleasesData && (