тестовый вывод дней по порядку, исключая удаленные

This commit is contained in:
Tatyana 2025-08-29 13:36:40 +03:00
parent 32625b9034
commit d47fe0d338
2 changed files with 38 additions and 10 deletions

View File

@ -0,0 +1,6 @@
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
});

View File

@ -1,5 +1,7 @@
"use client"
import React from 'react';
import { useState, useEffect } from "react";
import { useParams, useHistory, useLocation } from "react-router-dom";
@ -12,6 +14,7 @@ import { getRouteExercise } from "../shared/consts/router";
import { ArrowIcon } from "../components/icons/ArrowIcon";
import type { Course } from "../pages/Courses";
// import { Exercise } from "./Exercise";
export interface CourseExercises {
id_course: number;
@ -21,6 +24,7 @@ export interface CourseExercises {
position: number;
repeats: number;
time: string;
DeletedAt: string | null;
}
interface Exercise {
@ -64,7 +68,7 @@ export const CourseExercises = () => {
})
.then(response => {
console.log('Response status:', response.status);
console.log('Данные:', response.data);
console.log('Данные страницы упражнения курса:', response.data);
// setPacientData(response.data);
setExercises(response.data.course_exercises);
@ -92,31 +96,49 @@ export const CourseExercises = () => {
}, [course_exercises]);
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;
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 days = Array.from(new Set(course_exercises.map(ex => ex.day))).sort((a, b) => a - b);
//тут выводим дни из БД
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*/}
<div className="px-6 mb-8">
{/* Заголовок секции */}
<div className="flex items-center justify-between mb-6">
<div className="flex flex-col sm:flex-row items-center justify-between mb-6">
<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">