contests update

This commit is contained in:
Виталий Лавшонок
2025-11-06 18:27:28 +03:00
parent 1b39b8c77f
commit 6c92c789d0
5 changed files with 136 additions and 108 deletions

View File

@@ -28,16 +28,6 @@ const Contests = () => {
dispatch(fetchContests({}));
}, []);
if (status == 'loading') {
return (
<div className="text-liquid-white p-4">Загрузка контестов...</div>
);
}
if (error) {
return <div className="text-red-500 p-4">Ошибка: {error}</div>;
}
return (
<div className="h-full w-[calc(100%+250px)] box-border p-[20px] pt-[20p]">
<div className="h-full box-border">
@@ -59,24 +49,29 @@ const Contests = () => {
</div>
<div className="bg-liquid-lighter h-[50px] mb-[20px]" />
{status == 'loading' && <div className="text-liquid-white p-4">Загрузка контестов...</div>}
{status == 'failed' && <div className="text-red-500 p-4">Ошибка: {error}</div>}
{status == 'successful' &&
<>
<ContestsBlock
className="mb-[20px]"
title="Текущие"
contests={contests.filter((contest) => {
const endTime = new Date(contest.endsAt ?? new Date().toDateString()).getTime();
return endTime >= now.getTime();
})}
/>
<ContestsBlock
className="mb-[20px]"
title="Текущие"
contests={contests.filter((contest) => {
const endTime = new Date(contest.endsAt).getTime();
return endTime >= now.getTime();
})}
/>
<ContestsBlock
className="mb-[20px]"
title="Прошедшие"
contests={contests.filter((contest) => {
const endTime = new Date(contest.endsAt).getTime();
return endTime < now.getTime();
})}
/>
<ContestsBlock
className="mb-[20px]"
title="Прошедшие"
contests={contests.filter((contest) => {
const endTime = new Date(contest.endsAt ?? new Date().toDateString()).getTime();
return endTime < now.getTime();
})}
/>
</>
}
</div>
<ModalCreateContest

View File

@@ -55,13 +55,13 @@ const ContestsBlock: FC<ContestsBlockProps> = ({
key={i}
id={v.id}
name={v.name}
startAt={v.startsAt}
startAt={v.startsAt ?? new Date().toString()}
statusRegister={'reg'}
duration={
new Date(v.endsAt).getTime() -
new Date(v.startsAt).getTime()
new Date(v.endsAt ?? new Date().toString()).getTime() -
new Date(v.startsAt ?? new Date().toString()).getTime()
}
members={v.members.length}
members={v.members?.length ?? 0}
type={i % 2 ? 'second' : 'first'}
/>
))}

View File

@@ -37,7 +37,7 @@ const ModalCreateContest: FC<ModalCreateContestProps> = ({
attemptDurationMinutes: 0,
maxAttempts: 0,
allowEarlyFinish: false,
groupId: 0,
groupIds: [],
missionIds: [],
articleIds: [],
});
@@ -48,13 +48,12 @@ const ModalCreateContest: FC<ModalCreateContestProps> = ({
useEffect(() => {
if (status === 'successful') {
console.log('navigate');
navigate(
`/contest/create?back=/home/account/contests&contestId=${contest.id}`,
);
dispatch(
setContestStatus({ key: 'createContest', status: 'idle' }),
);
navigate(
`/contest/create?back=/home/account/contests&contestId=${contest.id}`,
);
}
}, [status]);