Create contex menu
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Todo } from "@src/core/entities/todo";
|
||||
import { FC } from "react";
|
||||
import { FC, useState } from "react";
|
||||
import { TodoCheckmark } from "@src/components/todos/todoCheckmark";
|
||||
|
||||
interface TodoItemProps {
|
||||
@@ -8,18 +8,41 @@ interface TodoItemProps {
|
||||
displayProject: boolean;
|
||||
}
|
||||
|
||||
export const TodoItem: FC<TodoItemProps> = (props) => (
|
||||
<div className="py-3 border-b border-gray-300 dark:border-gray-600">
|
||||
<div className="flex items-center space-x-4">
|
||||
<TodoCheckmark {...props} />
|
||||
<div className="flex flex-col md:flex-row flex-grow gap-0.5 md:gap-2 pr-6">
|
||||
<div className="flex-grow w-full break-all">{props.todo.title}</div>
|
||||
{props.displayProject && props.todo.project && (
|
||||
<div className="text-gray-500 text-xs text-right whitespace-nowrap place-self-end">
|
||||
{props.todo.project}
|
||||
export const TodoItem: FC<TodoItemProps> = (props) => {
|
||||
const [isHovering, setIsHovering] = useState(false);
|
||||
|
||||
return (
|
||||
<div
|
||||
className="py-3 border-b border-gray-300 dark:border-gray-600 relative"
|
||||
onMouseEnter={() => setIsHovering(true)}
|
||||
onMouseLeave={() => setIsHovering(false)}
|
||||
onFocus={() => setIsHovering(true)}
|
||||
>
|
||||
<div className="flex items-center space-x-4">
|
||||
<TodoCheckmark {...props} />
|
||||
<div className="flex flex-col md:flex-row flex-grow gap-0.5 md:gap-2 pr-6">
|
||||
<div className="flex-grow w-full break-all">{props.todo.title}</div>
|
||||
<div>
|
||||
{props.displayProject && props.todo.project && (
|
||||
<div className="text-gray-500 text-xs text-right whitespace-nowrap place-self-end">
|
||||
{props.todo.project}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={`absolute left-full top-1/2 w-4 h-4 box-content p-2 rounded-md hover:bg-gray-300 active:bg-gray-400 transition group`}
|
||||
style={{ transform: "translate(0px, -50%)" }}
|
||||
>
|
||||
{isHovering && (
|
||||
<div className="flex flex-col justify-between h-full ">
|
||||
<div className="h-0.5 bg-gray-300 rounded-full group-hover:bg-gray-700" />
|
||||
<div className="h-0.5 bg-gray-300 rounded-full group-hover:bg-gray-700" />
|
||||
<div className="h-0.5 bg-gray-300 rounded-full group-hover:bg-gray-700" />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
);
|
||||
};
|
||||
|
Reference in New Issue
Block a user