настроила отображение дней по порядку внезависимости от удаленных

This commit is contained in:
Tatyana 2025-08-29 14:07:13 +03:00
parent d47fe0d338
commit 9b709f3bb7

View File

@ -97,24 +97,21 @@ export const CourseExercises = () => {
const uniqueDays = Array.from(new Set(course_exercises.map(ex => ex.day))).sort((a, b) => a - b);
const filteredExercises = selectedDay !== null
? course_exercises.filter(ex => ex.day === selectedDay)
: course_exercises;
const allExercises = course_exercises;
const uniqueDays = Array.from(new Set(allExercises.map(ex => ex.day))).sort((a, b) => a - b);
const dayMap: { [key: number]: number } = {};
uniqueDays.forEach((day, index) => {
dayMap[day] = index + 1; // номера начинаются с 1
});
const daysNav = uniqueDays.map(day => dayMap[day]);
const daysNav = uniqueDays.map(day => dayMap[day]);
const days = Array.from(new Set(course_exercises.map(ex => ex.day))).sort((a, b) => a - b);
const filteredExercises = selectedDay !== null
? course_exercises.filter(ex => ex.day === selectedDay)
: course_exercises;
@ -122,7 +119,7 @@ const daysNav = uniqueDays.map(day => dayMap[day]);
return (
<div className="my-36 min-h-screen max-w-4xl mx-auto">
<div className="my-36 min-h-screen max-w-4xl mx-auto">
<HeaderNav item={course?.title ?? 'Название курса'} text={'курс'} />
{/* Это выражение использует оператор опциональной цепочки (?.) и оператор нулевого слияния (??).
Если course не null и не undefined, то взять его свойство title, иначе вернуть undefined*/}
@ -132,18 +129,16 @@ const daysNav = uniqueDays.map(day => dayMap[day]);
<h2 className="text-xl font-black text-[#5F5C5C]">Упражнения</h2>
<span className="text-sm text-gray-500">Количество упражнений: {course_exercises.length}</span>
</div>
<p>{uniqueDays}</p>
{/* <p>{JSON.stringify(course_exercises)}</p> */}
{daysNav}
{/* Кнопки выбора дня */}
{days.length > 1 && (
<div className="mb-6">
<div className="flex space-x-2 overflow-x-auto pb-2">
{days.map((day) => (
{days.map((day, index) => (
<button
key={day}
onClick={() => {
@ -154,21 +149,14 @@ const daysNav = uniqueDays.map(day => dayMap[day]);
: "bg-white text-gray-600 hover:bg-gray-100"
}`}
>
День {day}
День {daysNav[index]}
</button>
))}
</div>
</div>
)}
{/* надо делать по индексу, чтоб шло по порядку
{filteredExercises
.filter(item => item.deleted_at === null) // фильтруем по условию
.length > 0 ? (
filteredExercises
.filter(item => item.deleted_at === null)
*/}
<div className="exercise-list mb-20">
{filteredExercises.length > 0 ? (