From 2ce45ecbc448841db2a3b0fac790dd2327477db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Miko=C5=82ajczak?= <Mateusz@appunitesmac251.home> Date: Wed, 27 Sep 2023 16:10:28 +0200 Subject: [PATCH] feat(drawer): add draft of drawer, move icons components to Icon folder --- src/assets/vectors/icons/close.svg | 10 +++++ .../FunctionalArea.component.tsx | 6 +-- .../Map/Drawer/Drawer.component.tsx | 37 +++++++++++++++++++ src/components/Map/Drawer/index.ts | 1 + src/components/Map/Map.component.tsx | 6 ++- src/shared/Icon/Icon.component.tsx | 26 ++++++------- .../icons => shared/Icon/Icons}/AdminIcon.tsx | 0 .../icons => shared/Icon/Icons}/ArrowIcon.tsx | 0 .../Icon/Icons}/ChevronDownIcon.tsx | 0 .../Icon/Icons}/ChevronLeftIcon.tsx | 0 .../Icon/Icons}/ChevronRightIcon.tsx | 0 .../Icon/Icons}/ChevronUpIcon.tsx | 0 .../icons => shared/Icon/Icons}/DotsIcon.tsx | 0 .../Icon/Icons}/ExportIcon.tsx | 0 .../icons => shared/Icon/Icons}/InfoIcon.tsx | 0 .../Icon/Icons}/LegendIcon.tsx | 0 .../icons => shared/Icon/Icons}/PageIcon.tsx | 0 .../Icon/Icons}/PluginIcon.tsx | 0 .../icons => shared/Icon/Icons}/PlusIcon.tsx | 0 tailwind.config.ts | 3 ++ 20 files changed, 71 insertions(+), 18 deletions(-) create mode 100644 src/assets/vectors/icons/close.svg create mode 100644 src/components/Map/Drawer/Drawer.component.tsx create mode 100644 src/components/Map/Drawer/index.ts rename src/{assets/vectors/icons => shared/Icon/Icons}/AdminIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/ArrowIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/ChevronDownIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/ChevronLeftIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/ChevronRightIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/ChevronUpIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/DotsIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/ExportIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/InfoIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/LegendIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/PageIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/PluginIcon.tsx (100%) rename src/{assets/vectors/icons => shared/Icon/Icons}/PlusIcon.tsx (100%) diff --git a/src/assets/vectors/icons/close.svg b/src/assets/vectors/icons/close.svg new file mode 100644 index 00000000..72a0b270 --- /dev/null +++ b/src/assets/vectors/icons/close.svg @@ -0,0 +1,10 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_2059_12637)"> +<path d="M11.9997 10.5867L16.9497 5.63672L18.3637 7.05072L13.4137 12.0007L18.3637 16.9507L16.9497 18.3647L11.9997 13.4147L7.04974 18.3647L5.63574 16.9507L10.5857 12.0007L5.63574 7.05072L7.04974 5.63672L11.9997 10.5867Z" fill="#070130"/> +</g> +<defs> +<clipPath id="clip0_2059_12637"> +<rect width="24" height="24" fill="white"/> +</clipPath> +</defs> +</svg> diff --git a/src/components/FunctionalArea/FunctionalArea.component.tsx b/src/components/FunctionalArea/FunctionalArea.component.tsx index 22043804..73c95e42 100644 --- a/src/components/FunctionalArea/FunctionalArea.component.tsx +++ b/src/components/FunctionalArea/FunctionalArea.component.tsx @@ -4,13 +4,13 @@ import { MapNavigation } from '@/components/FunctionalArea/MapNavigation'; export const FunctionalArea = (): JSX.Element => ( <> - <div className="absolute top-0 left-0 z-10 w-full"> + <div className="absolute top-0 left-0 z-20 w-full"> <TopBar /> </div> - <div className="absolute left-[88px] top-16 z-10 w-[calc(100%-88px)]"> + <div className="absolute left-[88px] top-16 z-20 w-[calc(100%-88px)]"> <MapNavigation /> </div> - <div className="absolute top-16 left-0 z-10 h-[calc(100%-64px)] flex"> + <div className="absolute top-16 left-0 z-20 h-[calc(100%-64px)] flex"> <NavBar /> </div> </> diff --git a/src/components/Map/Drawer/Drawer.component.tsx b/src/components/Map/Drawer/Drawer.component.tsx new file mode 100644 index 00000000..5bdf85b0 --- /dev/null +++ b/src/components/Map/Drawer/Drawer.component.tsx @@ -0,0 +1,37 @@ +import Image from 'next/image'; +import closeIcon from '@/assets/vectors/icons/close.svg'; +import { useState } from 'react'; +import { Button } from '@/shared/Button'; +import { twMerge } from 'tailwind-merge'; + +export const Drawer = (): JSX.Element | null => { + const [open, setOpenDrawer] = useState(false); + + return ( + <> + <Button + className="absolute top-[100px] left-[100px] z-20 peer" + onClick={() => setOpenDrawer(true)} + > + Open Drawer + </Button> + + <div + className={twMerge( + 'absolute top-[104px] left-[88px] w-[432px] h-calc-drawer bg-white-pearl text-font-500 transition-all duration-500 transform -translate-x-full', + open && 'translate-x-0', + )} + > + <div className="flex justify-between text-xl px-6 py-8 border-b border-b-[#E1E0E6]"> + <div> + <span className="font-normal">Search: </span> + <span className="font-semibold">NADH</span> + </div> + <div className="cursor-pointer" onClick={() => setOpenDrawer(false)}> + <Image src={closeIcon} alt="close drawer" width="24" height="24" /> + </div> + </div> + </div> + </> + ); +}; diff --git a/src/components/Map/Drawer/index.ts b/src/components/Map/Drawer/index.ts new file mode 100644 index 00000000..1c73307c --- /dev/null +++ b/src/components/Map/Drawer/index.ts @@ -0,0 +1 @@ +export { Drawer } from './Drawer.component'; diff --git a/src/components/Map/Map.component.tsx b/src/components/Map/Map.component.tsx index 8c11af5f..7fb43320 100644 --- a/src/components/Map/Map.component.tsx +++ b/src/components/Map/Map.component.tsx @@ -1,8 +1,10 @@ import mapImg from '@/assets/images/image.jpg'; +import { Drawer } from '@/components/Map/Drawer'; import Image from 'next/image'; export const Map = (): JSX.Element => ( - <div className="w-100 h-screen bg-black" data-testid="map-container"> - <Image src={mapImg} fill sizes="100vw" alt="map" /> + <div className="w-100 h-screen bg-black relative" data-testid="map-container"> + <Drawer /> + <Image src={mapImg} fill sizes="100vw" alt="map" className="z-0" /> </div> ); diff --git a/src/shared/Icon/Icon.component.tsx b/src/shared/Icon/Icon.component.tsx index 09ab33c8..fd68463e 100644 --- a/src/shared/Icon/Icon.component.tsx +++ b/src/shared/Icon/Icon.component.tsx @@ -1,16 +1,16 @@ -import { ChevronRightIcon } from '@/assets/vectors/icons/ChevronRightIcon'; -import { ChevronLeftIcon } from '@/assets/vectors/icons/ChevronLeftIcon'; -import { ChevronUpIcon } from '@/assets/vectors/icons/ChevronUpIcon'; -import { ChevronDownIcon } from '@/assets/vectors/icons/ChevronDownIcon'; -import { PlusIcon } from '@/assets/vectors/icons/PlusIcon'; -import { ArrowIcon } from '@/assets/vectors/icons/ArrowIcon'; -import { DotsIcon } from '@/assets/vectors/icons/DotsIcon'; -import { AdminIcon } from '@/assets/vectors/icons/AdminIcon'; -import { ExportIcon } from '@/assets/vectors/icons/ExportIcon'; -import { InfoIcon } from '@/assets/vectors/icons/InfoIcon'; -import { LegendIcon } from '@/assets/vectors/icons/LegendIcon'; -import { PageIcon } from '@/assets/vectors/icons/PageIcon'; -import { PluginIcon } from '@/assets/vectors/icons/PluginIcon'; +import { ChevronRightIcon } from '@/shared/Icon/Icons/ChevronRightIcon'; +import { ChevronLeftIcon } from '@/shared/Icon/Icons/ChevronLeftIcon'; +import { AdminIcon } from '@/shared/Icon/Icons/AdminIcon'; +import { ArrowIcon } from '@/shared/Icon/Icons/ArrowIcon'; +import { ChevronDownIcon } from '@/shared/Icon/Icons/ChevronDownIcon'; +import { ChevronUpIcon } from '@/shared/Icon/Icons/ChevronUpIcon'; +import { DotsIcon } from '@/shared/Icon/Icons/DotsIcon'; +import { ExportIcon } from '@/shared/Icon/Icons/ExportIcon'; +import { InfoIcon } from '@/shared/Icon/Icons/InfoIcon'; +import { LegendIcon } from '@/shared/Icon/Icons/LegendIcon'; +import { PageIcon } from '@/shared/Icon/Icons/PageIcon'; +import { PluginIcon } from '@/shared/Icon/Icons/PluginIcon'; +import { PlusIcon } from '@/shared/Icon/Icons/PlusIcon'; import type { IconTypes } from '@/types/iconTypes'; diff --git a/src/assets/vectors/icons/AdminIcon.tsx b/src/shared/Icon/Icons/AdminIcon.tsx similarity index 100% rename from src/assets/vectors/icons/AdminIcon.tsx rename to src/shared/Icon/Icons/AdminIcon.tsx diff --git a/src/assets/vectors/icons/ArrowIcon.tsx b/src/shared/Icon/Icons/ArrowIcon.tsx similarity index 100% rename from src/assets/vectors/icons/ArrowIcon.tsx rename to src/shared/Icon/Icons/ArrowIcon.tsx diff --git a/src/assets/vectors/icons/ChevronDownIcon.tsx b/src/shared/Icon/Icons/ChevronDownIcon.tsx similarity index 100% rename from src/assets/vectors/icons/ChevronDownIcon.tsx rename to src/shared/Icon/Icons/ChevronDownIcon.tsx diff --git a/src/assets/vectors/icons/ChevronLeftIcon.tsx b/src/shared/Icon/Icons/ChevronLeftIcon.tsx similarity index 100% rename from src/assets/vectors/icons/ChevronLeftIcon.tsx rename to src/shared/Icon/Icons/ChevronLeftIcon.tsx diff --git a/src/assets/vectors/icons/ChevronRightIcon.tsx b/src/shared/Icon/Icons/ChevronRightIcon.tsx similarity index 100% rename from src/assets/vectors/icons/ChevronRightIcon.tsx rename to src/shared/Icon/Icons/ChevronRightIcon.tsx diff --git a/src/assets/vectors/icons/ChevronUpIcon.tsx b/src/shared/Icon/Icons/ChevronUpIcon.tsx similarity index 100% rename from src/assets/vectors/icons/ChevronUpIcon.tsx rename to src/shared/Icon/Icons/ChevronUpIcon.tsx diff --git a/src/assets/vectors/icons/DotsIcon.tsx b/src/shared/Icon/Icons/DotsIcon.tsx similarity index 100% rename from src/assets/vectors/icons/DotsIcon.tsx rename to src/shared/Icon/Icons/DotsIcon.tsx diff --git a/src/assets/vectors/icons/ExportIcon.tsx b/src/shared/Icon/Icons/ExportIcon.tsx similarity index 100% rename from src/assets/vectors/icons/ExportIcon.tsx rename to src/shared/Icon/Icons/ExportIcon.tsx diff --git a/src/assets/vectors/icons/InfoIcon.tsx b/src/shared/Icon/Icons/InfoIcon.tsx similarity index 100% rename from src/assets/vectors/icons/InfoIcon.tsx rename to src/shared/Icon/Icons/InfoIcon.tsx diff --git a/src/assets/vectors/icons/LegendIcon.tsx b/src/shared/Icon/Icons/LegendIcon.tsx similarity index 100% rename from src/assets/vectors/icons/LegendIcon.tsx rename to src/shared/Icon/Icons/LegendIcon.tsx diff --git a/src/assets/vectors/icons/PageIcon.tsx b/src/shared/Icon/Icons/PageIcon.tsx similarity index 100% rename from src/assets/vectors/icons/PageIcon.tsx rename to src/shared/Icon/Icons/PageIcon.tsx diff --git a/src/assets/vectors/icons/PluginIcon.tsx b/src/shared/Icon/Icons/PluginIcon.tsx similarity index 100% rename from src/assets/vectors/icons/PluginIcon.tsx rename to src/shared/Icon/Icons/PluginIcon.tsx diff --git a/src/assets/vectors/icons/PlusIcon.tsx b/src/shared/Icon/Icons/PlusIcon.tsx similarity index 100% rename from src/assets/vectors/icons/PlusIcon.tsx rename to src/shared/Icon/Icons/PlusIcon.tsx diff --git a/tailwind.config.ts b/tailwind.config.ts index 18b85c28..aaf81f9d 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -25,6 +25,9 @@ const config: Config = { cultured: '#f7f7f8', 'white-pearl': '#ffffff', }, + height: { + 'calc-drawer': 'calc(100% - 104px)', + }, }, fontFamily: { manrope: ['var(--font-manrope)'], -- GitLab