import Task from "@/components/task"; import Button from "@/components/ui/Button"; import ModalWindow from "@/components/ui/Modal"; import { withTitle } from "@/constructors/Component"; import { UrlsTitle } from "@/enums/urls"; import { PlusIcon } from "@heroicons/react/20/solid"; import { BookmarkIcon, BookOpenIcon, CalendarDaysIcon, DocumentDuplicateIcon, FunnelIcon, MagnifyingGlassIcon, PencilIcon, } from "@heroicons/react/24/outline"; import { FunctionComponent } from "preact"; import { useEffect, useMemo, useRef, useState } from "preact/hooks"; import { ITask } from "./profile_tasks.dto"; import classes from "./profile_tasks.module.scss"; const example_tasks: ITask[] = [ { checked: false, date: new Date(), description: "test", id: 1, name: "test1", tags: ["Программирование", "Лабораторная работа"], }, { checked: true, date: new Date(2025, 6, 2), description: "test2", id: 3, name: "test3", tags: ["Информатика", "Практическая работа"], }, { checked: false, date: new Date(2025, 5, 1), description: "test3", id: 2, name: "test2", tags: ["Математика", "Домашнее задание"], }, ]; const ProfileTasks: FunctionComponent = () => { const getDate = useMemo(() => { const date = new Date(); const formatter = new Intl.DateTimeFormat("ru-RU", { month: "long", day: "numeric" }); return formatter.format(date); }, []); const init_tasks: ITask[] = localStorage.getItem("tasks") ? JSON.parse(localStorage.getItem("tasks") as string) : example_tasks; init_tasks.forEach((task) => { task.date = new Date(task.date); }); const [tasks, setTasks] = useState(init_tasks); useEffect(() => { localStorage.setItem("tasks", JSON.stringify(tasks)); }, [tasks]); const [openModal, setIsOpen] = useState(false); const [isEdit, setIsEdit] = useState(false); const [isCreating, setIsCreating] = useState(false); const [editContent, setEditContent] = useState(null); const taskNameRef = useRef(null); const taskDescriptionRef = useRef(null); return (
{ setIsEdit(false); setEditContent(null); setIsCreating(false); }} > {isEdit && editContent && (

{editContent.name}

{editContent.description}

Редактировать

{Intl.DateTimeFormat("ru-RU", { day: "2-digit", month: "2-digit", year: "numeric", hour: "2-digit", minute: "2-digit", }).format(editContent.date)}

{editContent.tags[0]}

{editContent.tags[1]}

)} {isCreating && (