From e01892b54e154c53b2c5ff9ea560891255fd95ae Mon Sep 17 00:00:00 2001 From: zojgame Date: Thu, 11 Apr 2024 12:31:54 +0500 Subject: [PATCH] marks --- src/components/Mark.tsx | 94 +++++++++++++++++++++++++++++++ src/components/MarksContainer.tsx | 38 ++++--------- src/marks.json | 16 ------ 3 files changed, 106 insertions(+), 42 deletions(-) create mode 100644 src/components/Mark.tsx diff --git a/src/components/Mark.tsx b/src/components/Mark.tsx new file mode 100644 index 0000000..b009397 --- /dev/null +++ b/src/components/Mark.tsx @@ -0,0 +1,94 @@ +import { useState } from "react"; +import { Mark as MarkType } from "../types/Mark"; + +interface MarkProps { + isFiltered: boolean; + mark: MarkType; + width: number; + height: number; + icon: React.ReactNode; +} + +const Mark = ({ isFiltered, width, height, icon, mark }: MarkProps) => { + const [isHovered, setIsHovered] = useState(false); + function handleOnMouseEnter(): void { + setIsHovered(true); + } + + function handleOnMouseLeave(): void { + setIsHovered(false); + } + + return ( + + + + + + {mark.label} + + + + + + {icon} + + // + // + // + // {icon} + // + ); +}; + +export default Mark; diff --git a/src/components/MarksContainer.tsx b/src/components/MarksContainer.tsx index 1986bd9..1c3d64c 100644 --- a/src/components/MarksContainer.tsx +++ b/src/components/MarksContainer.tsx @@ -1,4 +1,5 @@ -import { Mark } from "../types/Mark"; +import Mark from "./Mark"; +import { Mark as MarkType } from "../types/Mark"; import MarkEducationIcon from "./icons/marks/MarkEducationIcon"; import MarkFoodIcon from "./icons/marks/MarkFoodIcon"; import MarkHeathyIcon from "./icons/marks/MarkHeathyIcon"; @@ -14,8 +15,8 @@ const markIcons: { [key: string]: React.ReactNode } = { }; interface MarksContainerProps { - marks: Mark[]; - filteredMarks: Mark[]; + marks: MarkType[]; + filteredMarks: MarkType[]; markWidth?: number; markHeigth?: number; } @@ -33,37 +34,22 @@ function MarksContainer({ viewBox="0 0 2160 2160" fill="none" xmlns="http://www.w3.org/2000/svg" - className="absolute top-0 left-0 w-full h-full" + className="absolute z-50 top-0 left-0 w-full h-full" > {marks.map((mark) => { - const isFiltered = filteredMarks.find( + const isFiltered = filteredMarks.some( (filteredMark) => filteredMark.id === mark.id ); return ( - - - - {markIcons[mark.icon]} - + icon={markIcons[mark.icon]} + /> ); })} diff --git a/src/marks.json b/src/marks.json index 81e0c7e..0e43194 100644 --- a/src/marks.json +++ b/src/marks.json @@ -534,21 +534,5 @@ "y": 1200, "icon": "sport", "distance": 700 - }, - { - "id": "sport_15", - "label": "Bright Fit", - "x": 1540, - "y": 1200, - "icon": "sport", - "distance": 700 - }, - { - "id": "sport_16", - "label": "Bright Fit", - "x": 1540, - "y": 1200, - "icon": "sport", - "distance": 700 } ]