/* eslint-disable react-hooks/exhaustive-deps */ /* eslint-disable @typescript-eslint/no-explicit-any */ // import { ChangeEvent, useEffect, useState } from "react"; // import useAuthStore from "./stores/useAuthStore"; // import { // addHours, // eachMinuteOfInterval, // format, // isBefore, // parse, // } from "date-fns"; // import ky from "ky"; import SessionScheduleSettings from "./components/SessionScheduleSettings"; function PersonalAreaDashboardPage() { // const [user, removeAuthStore, accessToken] = useAuthStore((state) => [ // state.user, // state.removeAuthStore, // state.accessToken, // ]); // const [startTime, setStartTime] = useState("09:00"); // const [endTime, setEndTime] = useState("20:00"); // const [duration, setDuration] = useState(30); // const [datesAndTimes, setDatesAndTimes] = useState([]); // const [isLoading, setIsLoading] = useState(true); // function handleDuration(e: ChangeEvent) { // e.preventDefault(); // let value = parseInt(e.target.value); // const min = parseInt(e.target.min); // const max = parseInt(e.target.max); // if (!value || value < min) value = min; // if (value > max) value = max; // setDuration(value); // } // function calculateTimes() { // if (startTime && endTime) { // const startDateTime = parse(startTime, "HH:mm", new Date()); // const endDateTime = parse(endTime, "HH:mm", new Date()); // if (!isBefore(startDateTime, endDateTime)) { // setEndTime(format(addHours(startDateTime, 1), "HH:mm")); // return false; // } // const newDateAndTimes: any[] = eachMinuteOfInterval( // { // start: startDateTime, // end: endDateTime, // }, // { step: duration } // ); // newDateAndTimes.forEach((value: Date, index: number) => { // newDateAndTimes[index] = { value, active: true }; // }); // setDatesAndTimes(newDateAndTimes); // } // } // async function getSessionScheduleSettings() { // setIsLoading(true); // try { // const result: any = await ky // .get( // `${import.meta.env.VITE_COORD_URL}/users/session_schedule_settings`, // { // headers: { // Authorization: `Bearer ${accessToken}`, // }, // } // ) // .json(); // if (result.error) { // console.log("Error: ", result.error); // return; // } // const { datesAndTimes, startTime, endTime, duration } = result; // console.log("datesAndTimes", datesAndTimes); // setStartTime(startTime); // setEndTime(endTime); // setDuration(duration); // setIsLoading(false); // } catch (error) { // if (error instanceof Error) { // console.log(error.message); // } // setIsLoading(false); // } // } // async function saveSessionScheduleSettings() { // try { // await ky // .post( // `${import.meta.env.VITE_COORD_URL}/users/session_schedule_settings`, // { // headers: { // Authorization: `Bearer ${accessToken}`, // }, // json: { startTime, endTime, duration, datesAndTimes }, // } // ) // .json(); // alert("Изменения сохранены!"); // } catch (error) { // if (error instanceof Error) { // console.log(error.message); // } // } // } // function changeActive(dateAndTimeValue: Date) { // const newDatesAndTimes = datesAndTimes.map((dateAndTime) => { // if (dateAndTime.value === dateAndTimeValue) { // dateAndTime.active = !dateAndTime.active; // } // return dateAndTime; // }); // setDatesAndTimes(newDatesAndTimes); // } // function logout() { // removeAuthStore(); // } // useEffect(() => { // calculateTimes(); // }, [startTime, endTime, duration]); // useEffect(() => { // getSessionScheduleSettings(); // }, []); // return ( //
//
//

// Вы вошли как{" "} // {user?.username} //

// //
//
//
//

Настройки расписания сеансов

// {!isLoading ? ( //
e.preventDefault()} // className="flex flex-col space-y-8" // > //
//
//
//

Начало

// setStartTime(e.target.value)} // className="px-3 py-2 rounded bg-[#1C1D21] outline-none focus:outline-[#BC75FF] w-full transition-all" // /> //
// //
//

Конец

// setEndTime(e.target.value)} // className="px-3 py-2 rounded bg-[#1C1D21] outline-none focus:outline-[#BC75FF] w-full transition-all" // /> //
//
//
//

Длительность сеанса

// //
//
// //
// ) : ( //
// // // // //
// )} //
//
//

Предпросмотр

// {!isLoading ? ( //
// {datesAndTimes.map( // (dateAndTime: { value: Date; active: true }, index: number) => ( // // ) // )} //
// ) : ( //
// // // // //
// )} //
//
//
// ); return (
); } export default PersonalAreaDashboardPage;