From 9841da8b88fd1de50f7c6573fdd68aa37d4f537e Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Wed, 23 Apr 2025 16:45:06 +0300 Subject: [PATCH] feat: task status change --- src/components/task.tsx | 16 +++++++++++++--- src/pages/profile_tasks.tsx | 31 ++++++++++++++++++------------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/components/task.tsx b/src/components/task.tsx index 2935c4f..6f814f7 100644 --- a/src/components/task.tsx +++ b/src/components/task.tsx @@ -1,4 +1,5 @@ import { FunctionComponent } from "preact"; +import { MouseEventHandler } from "preact/compat"; import { tv } from "tailwind-variants"; import classes from "./task.module.scss"; @@ -6,10 +7,11 @@ interface TaskProps { name: string; checked?: boolean; onClick?: () => void; + onMarkClick?: MouseEventHandler; } const taskStyle = tv({ - base: "flex aspect-square h-full flex-col items-center justify-center rounded-full border", + base: "hover:scale-[1.1]active:scale-[1.1] flex aspect-square h-full flex-col items-center justify-center rounded-full border transition-[scale] duration-100 ease-in-out select-none", variants: { checked: { true: "bg-black", @@ -28,12 +30,18 @@ const markStyle = tv({ }, }); -const Task: FunctionComponent = ({ name, checked = false, onClick = () => {} }: TaskProps) => { +const Task: FunctionComponent = ({ name, checked = false, onClick = () => {}, onMarkClick = () => {} }) => { return ( // Временное действие для тестирования
-
+
{ + e.stopPropagation(); + onMarkClick(e); + }} + >

{name} @@ -42,4 +50,6 @@ const Task: FunctionComponent = ({ name, checked = false, onClick = ( ); }; +Task.displayName = "AHTask"; + export default Task; diff --git a/src/pages/profile_tasks.tsx b/src/pages/profile_tasks.tsx index 2bda06a..064b355 100644 --- a/src/pages/profile_tasks.tsx +++ b/src/pages/profile_tasks.tsx @@ -238,8 +238,8 @@ const ProfileTasks: FunctionComponent = () => { handleSubmit((data) => saveTask({ ...data, id: tasks.length + 1 }))(); }} > -
-
+
+
{ {...register("name", { required: "Заполните название" })} />