summaryrefslogtreecommitdiff
path: root/src-migrate/modules/header
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-11-21 06:10:12 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-11-21 06:10:12 +0000
commit0fc062268c71d53f8777c358b31e2a540d60d404 (patch)
tree0183a00dcfb14583c7dfa80da082c21630afe375 /src-migrate/modules/header
parent6ebe202147269100cd63ef125e877e8f693a27a1 (diff)
parent6a6ce21e5a552b0dc6cd541710a87fd0a0fd9d20 (diff)
Merged in refactor/all (pull request #116)
Refactor/all
Diffstat (limited to 'src-migrate/modules/header')
-rw-r--r--src-migrate/modules/header/components/HeaderDesktop.tsx82
-rw-r--r--src-migrate/modules/header/components/HeaderMobile.tsx7
-rw-r--r--src-migrate/modules/header/components/SearchBar.tsx24
-rw-r--r--src-migrate/modules/header/index.tsx13
4 files changed, 126 insertions, 0 deletions
diff --git a/src-migrate/modules/header/components/HeaderDesktop.tsx b/src-migrate/modules/header/components/HeaderDesktop.tsx
new file mode 100644
index 00000000..3860bded
--- /dev/null
+++ b/src-migrate/modules/header/components/HeaderDesktop.tsx
@@ -0,0 +1,82 @@
+import Logo from "~/images/logo.png";
+import { DocumentCheckIcon, HeartIcon } from "@heroicons/react/24/outline";
+
+import Image from 'next/image'
+import Link from 'next/link'
+
+// Components
+import SearchBar from "./SearchBar";
+
+// Constants
+import { SECONDARY_MENU_ITEMS } from "~/common/constants/menu";
+
+const LOGO_WIDTH = 210;
+const LOGO_HEIGHT = LOGO_WIDTH / 3;
+
+const HeaderDesktop = () => {
+ return (
+ <header>
+ <nav className="pt-6 sticky top-0 z-50 bg-white border-b-2 border-danger-500">
+ <div className="container flex items-center gap-x-6">
+ <Link href='/'>
+ <Image src={Logo} alt="Logo Indoteknik.com" width={LOGO_WIDTH} height={LOGO_HEIGHT} />
+ </Link>
+
+ <SearchBar />
+
+ <div className="flex gap-x-4 items-center">
+ <Link
+ target='_blank'
+ rel='noreferrer'
+ href='/my/transactions'
+ className='flex items-center gap-x-2 !text-gray-900'
+ >
+ <DocumentCheckIcon className='w-7' />
+ Daftar<br />Quotation
+ </Link>
+
+ <Link
+ target='_blank'
+ rel='noreferrer'
+ href='/my/wishlist'
+ className='flex items-center gap-x-2 !text-gray-900'
+ >
+ <HeartIcon className='w-7' />
+ Wishlist
+ </Link>
+
+ <a
+ href={''}
+ target='_blank'
+ rel='noreferrer'
+ className='flex items-center gap-x-1 !text-gray_r-12/80'
+ >
+ <Image src='/images/socials/Whatsapp-2.png' alt='Whatsapp' width={48} height={48} />
+ <div>
+ <div className='font-semibold'>Whatsapp</div>
+ 0812 8080 622 (Chat)
+ </div>
+ </a>
+ </div>
+ </div>
+
+ <div className="container mt-6 flex">
+ <button type="button" className="w-3/12 p-4 font-semibold border border-gray_r-6 rounded-t-xl flex items-center relative">
+ Kategori
+ </button>
+
+ <nav className="w-6/12 flex px-1 divide-x divide-gray-200">
+ {SECONDARY_MENU_ITEMS.map((item, index) => (
+ <Link key={index} href={item.href} target="_blank" rel="noreferrer" className="font-medium text-center p-4 flex-1 !text-gray-800 hover:bg-gray-100 transition-all">
+ {item.label}
+ </Link>
+ ))}
+ </nav>
+
+ </div>
+ </nav>
+ </header>
+ )
+}
+
+export default HeaderDesktop \ No newline at end of file
diff --git a/src-migrate/modules/header/components/HeaderMobile.tsx b/src-migrate/modules/header/components/HeaderMobile.tsx
new file mode 100644
index 00000000..626f30d7
--- /dev/null
+++ b/src-migrate/modules/header/components/HeaderMobile.tsx
@@ -0,0 +1,7 @@
+const HeaderMobile = () => {
+ return (
+ <div>HeaderMobile</div>
+ )
+}
+
+export default HeaderMobile \ No newline at end of file
diff --git a/src-migrate/modules/header/components/SearchBar.tsx b/src-migrate/modules/header/components/SearchBar.tsx
new file mode 100644
index 00000000..ec17abe8
--- /dev/null
+++ b/src-migrate/modules/header/components/SearchBar.tsx
@@ -0,0 +1,24 @@
+
+import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'
+
+const SearchBar = () => {
+ return (
+ <form className="flex-1 flex items-center">
+ <input
+ type="text"
+ className="form-input p-3 rounded-r-none border-r-0 border-gray-300 focus:border-gray-300"
+ placeholder="Ketik nama / part number / merk"
+ />
+
+ <button
+ type="submit"
+ className="rounded-r border border-l-0 border-gray-300 px-2 py-2.5"
+ >
+ <MagnifyingGlassIcon className='w-6' />
+ </button>
+
+ </form>
+ )
+}
+
+export default SearchBar \ No newline at end of file
diff --git a/src-migrate/modules/header/index.tsx b/src-migrate/modules/header/index.tsx
new file mode 100644
index 00000000..5c0e2933
--- /dev/null
+++ b/src-migrate/modules/header/index.tsx
@@ -0,0 +1,13 @@
+import React from 'react'
+import { useWindowSize } from "usehooks-ts"
+
+import HeaderDesktop from './components/HeaderDesktop'
+import HeaderMobile from './components/HeaderMobile'
+
+const Header = () => {
+ const { width } = useWindowSize()
+
+ return width > 768 ? <HeaderDesktop /> : <HeaderMobile />
+}
+
+export default Header \ No newline at end of file