diff options
| -rw-r--r-- | src/core/components/elements/Sidebar/Sidebar.jsx | 2 | ||||
| -rw-r--r-- | src/lib/auth/components/Menu.jsx | 99 | ||||
| -rw-r--r-- | src/pages/my/menu.jsx | 97 |
3 files changed, 143 insertions, 55 deletions
diff --git a/src/core/components/elements/Sidebar/Sidebar.jsx b/src/core/components/elements/Sidebar/Sidebar.jsx index ddae3e20..08498759 100644 --- a/src/core/components/elements/Sidebar/Sidebar.jsx +++ b/src/core/components/elements/Sidebar/Sidebar.jsx @@ -140,7 +140,7 @@ const Sidebar = ({ active, close }) => { <SidebarLink className={itemClassName} href='/tentang-kami'> Tentang Indoteknik </SidebarLink> - <SidebarLink className={itemClassName} href='/contact-us'> + <SidebarLink className={itemClassName} href='/hubungi-kami'> Hubungi Kami </SidebarLink> <button diff --git a/src/lib/auth/components/Menu.jsx b/src/lib/auth/components/Menu.jsx index f475db1f..9cd10ab4 100644 --- a/src/lib/auth/components/Menu.jsx +++ b/src/lib/auth/components/Menu.jsx @@ -1,76 +1,129 @@ -import Link from '@/core/components/elements/Link/Link' -import { useRouter } from 'next/router' -import ImageNext from 'next/image' -import whatsappUrl from '@/core/utils/whatsappUrl' - +import Link from '@/core/components/elements/Link/Link'; +import { useRouter } from 'next/router'; +import ImageNext from 'next/image'; +import whatsappUrl from '@/core/utils/whatsappUrl'; +import { deleteAuth } from '@/core/utils/auth'; const Menu = () => { - const router = useRouter() + const router = useRouter(); + + const routeStartWith = (route) => router.pathname.startsWith(route); - const routeStartWith = (route) => router.pathname.startsWith(route) + const logout = async () => { + deleteAuth().then(() => { + router.push('/login'); + }); + }; return ( <div className='grid grid-cols-1 bg-white border border-gray_r-6 rounded py-2 px-4 sticky top-48'> <div className='mt-4 mb-1 font-medium'>Menu</div> <LinkItem href='/my/quotations' active={routeStartWith('/my/quotations')}> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_daftar_quotation.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_daftar_quotation.svg' + width={18} + height={20} + /> <p>Daftar Quotation</p> </div> </LinkItem> - <LinkItem href='/my/transactions' active={routeStartWith('/my/transactions')}> + <LinkItem + href='/my/transactions' + active={routeStartWith('/my/transactions')} + > <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_daftar_transaksi.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_daftar_transaksi.svg' + width={18} + height={20} + /> <p>Daftar Transaksi</p> </div> </LinkItem> <LinkItem href='/my/shipments' active={routeStartWith('/my/shipments')}> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_pengiriman.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_pengiriman.svg' + width={18} + height={20} + /> <p>Daftar Pengiriman</p> </div> </LinkItem> <LinkItem href='/my/invoices' active={routeStartWith('/my/invoices')}> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_invoice.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_invoice.svg' + width={18} + height={20} + /> <p>Invoice & Faktur Pajak</p> </div> </LinkItem> <LinkItem href='/my/wishlist' active={routeStartWith('/my/wishlist')}> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_wishlist.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_wishlist.svg' + width={18} + height={20} + /> <p>Wishlist</p> </div> </LinkItem> <div className='mt-4 mb-1 font-medium'>Pusat Bantuan</div> - <LinkItem href={whatsappUrl('', '', '')} rel='noopener noreferrer' target='_blank'> + <LinkItem + href={whatsappUrl('', '', '')} + rel='noopener noreferrer' + target='_blank' + > <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_layanan_pelanggan.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_layanan_pelanggan.svg' + width={18} + height={20} + /> <p>Layanan Pelanggan</p> </div> </LinkItem> <div className='mt-4 mb-1 font-medium'>Pengaturan Akun</div> <LinkItem href='/my/address' active={routeStartWith('/my/address')}> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_daftar_alamat.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_daftar_alamat.svg' + width={18} + height={20} + /> <p>Daftar Alamat</p> </div> </LinkItem> <LinkItem href='/my/profile' active={routeStartWith('/my/profile')}> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_profile.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_profile.svg' + width={18} + height={20} + /> <p>Profil Saya</p> </div> </LinkItem> - <button type='button' className='text-gray_r-12/80 p-2 text-left'> + <button + type='button' + onClick={logout} + className='text-gray_r-12/80 p-2 text-left' + > <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_logout.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_logout.svg' + width={18} + height={20} + /> <p>Keluar Akun</p> </div> </button> </div> - ) -} + ); +}; const LinkItem = ({ children, ...props }) => ( <Link @@ -81,6 +134,6 @@ const LinkItem = ({ children, ...props }) => ( > {children} </Link> -) +); -export default Menu +export default Menu; diff --git a/src/pages/my/menu.jsx b/src/pages/my/menu.jsx index a0ce223e..1b35d6ba 100644 --- a/src/pages/my/menu.jsx +++ b/src/pages/my/menu.jsx @@ -1,24 +1,24 @@ -import Divider from '@/core/components/elements/Divider/Divider' -import Link from '@/core/components/elements/Link/Link' -import AppLayout from '@/core/components/layouts/AppLayout' -import useAuth from '@/core/hooks/useAuth' -import { deleteAuth } from '@/core/utils/auth' -import IsAuth from '@/lib/auth/components/IsAuth' -import { ChevronRightIcon, UserIcon } from '@heroicons/react/24/solid' -import { signOut, useSession } from 'next-auth/react' -import { useRouter } from 'next/router' -import ImageNext from 'next/image' - +import Divider from '@/core/components/elements/Divider/Divider'; +import Link from '@/core/components/elements/Link/Link'; +import AppLayout from '@/core/components/layouts/AppLayout'; +import useAuth from '@/core/hooks/useAuth'; +import { deleteAuth } from '@/core/utils/auth'; +import IsAuth from '@/lib/auth/components/IsAuth'; +import { ChevronRightIcon, UserIcon } from '@heroicons/react/24/solid'; +import { signOut, useSession } from 'next-auth/react'; +import { useRouter } from 'next/router'; +import ImageNext from 'next/image'; +import whatsappUrl from '@/core/utils/whatsappUrl'; export default function Menu() { - const auth = useAuth() - const router = useRouter() - const { data: session } = useSession() + const auth = useAuth(); + const router = useRouter(); + const { data: session } = useSession(); const logout = () => { deleteAuth().then(() => { - router.push('/login') - }) - } + router.push('/login'); + }); + }; return ( <IsAuth> @@ -29,8 +29,12 @@ export default function Menu() { </div> <div className='ml-4'> <div className='font-semibold text-gray_r-12'>{auth?.name}</div> - {auth?.company && <div className='badge-solid-red mt-1'>Akun Bisnis</div>} - {!auth?.company && <div className='badge-gray mt-1'>Akun Individu</div>} + {auth?.company && ( + <div className='badge-solid-red mt-1'>Akun Bisnis</div> + )} + {!auth?.company && ( + <div className='badge-gray mt-1'>Akun Individu</div> + )} </div> <div className='ml-auto !text-gray_r-12'> <ChevronRightIcon className='w-6' /> @@ -47,32 +51,52 @@ export default function Menu() { <LinkItem href='/my/quotations'> {' '} <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_daftar_quotation.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_daftar_quotation.svg' + width={18} + height={20} + /> <p>Daftar Quotation</p> </div> </LinkItem> <LinkItem href='/my/transactions'> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_daftar_transaksi.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_daftar_transaksi.svg' + width={18} + height={20} + /> <p>Daftar Transaksi</p> </div> </LinkItem> <LinkItem href='/my/shipments'> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_pengiriman.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_pengiriman.svg' + width={18} + height={20} + /> <p>Daftar Pengiriman</p> </div> </LinkItem> <LinkItem href='/my/invoices'> {' '} <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_invoice.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_invoice.svg' + width={18} + height={20} + /> <p>Invoice & Faktur Pajak</p> </div> </LinkItem> <LinkItem href='/my/wishlist'> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_wishlist.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_wishlist.svg' + width={18} + height={20} + /> <p>Wishlist</p> </div> </LinkItem> @@ -83,10 +107,14 @@ export default function Menu() { <MenuHeader>Pusat Bantuan</MenuHeader> <div className='divide-y divide-gray_r-6 border-y border-gray_r-6 mt-4'> - <LinkItem href='/'> + <LinkItem href={whatsappUrl('', '', '')}> {' '} <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_layanan_pelanggan.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_layanan_pelanggan.svg' + width={18} + height={20} + /> <p>Layanan Pelanggan</p> </div> </LinkItem> @@ -99,7 +127,11 @@ export default function Menu() { <div className='divide-y divide-gray_r-6 border-y border-gray_r-6 mt-4'> <LinkItem href='/my/address'> <div className='flex gap-x-3 items-center'> - <ImageNext src='/images/icon/icon_daftar_alamat.svg' width={18} height={20} /> + <ImageNext + src='/images/icon/icon_daftar_alamat.svg' + width={18} + height={20} + /> <p>Daftar Alamat</p> </div> </LinkItem> @@ -112,20 +144,23 @@ export default function Menu() { </div> </AppLayout> </IsAuth> - ) + ); } const MenuHeader = ({ children, ...props }) => ( <div {...props} className='font-medium px-4 flex'> {children} </div> -) +); const LinkItem = ({ children, ...props }) => ( - <Link {...props} className='!text-gray_r-12/70 !font-normal p-4 flex items-center'> + <Link + {...props} + className='!text-gray_r-12/70 !font-normal p-4 flex items-center' + > {children} <div className='ml-auto !text-gray_r-11'> <ChevronRightIcon className='w-5' /> </div> </Link> -) +); |
