| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- 'use client'
 
- import React, { useEffect, useState } from 'react'
 
- import Link from 'next/link'
 
- import { usePathname, useSearchParams, useSelectedLayoutSegment } from 'next/navigation'
 
- import type { INavSelectorProps } from './nav-selector'
 
- import NavSelector from './nav-selector'
 
- import classNames from '@/utils/classnames'
 
- import { ArrowNarrowLeft } from '@/app/components/base/icons/src/vender/line/arrows'
 
- import { useStore as useAppStore } from '@/app/components/app/store'
 
- type INavProps = {
 
-   icon: React.ReactNode
 
-   activeIcon?: React.ReactNode
 
-   text: string
 
-   activeSegment: string | string[]
 
-   link: string
 
-   isApp: boolean
 
- } & INavSelectorProps
 
- const Nav = ({
 
-   icon,
 
-   activeIcon,
 
-   text,
 
-   activeSegment,
 
-   link,
 
-   curNav,
 
-   navs,
 
-   createText,
 
-   onCreate,
 
-   onLoadmore,
 
-   isApp,
 
- }: INavProps) => {
 
-   const setAppDetail = useAppStore(state => state.setAppDetail)
 
-   const [hovered, setHovered] = useState(false)
 
-   const segment = useSelectedLayoutSegment()
 
-   const isActivated = Array.isArray(activeSegment) ? activeSegment.includes(segment!) : segment === activeSegment
 
-   const pathname = usePathname()
 
-   const searchParams = useSearchParams()
 
-   const [linkLastSearchParams, setLinkLastSearchParams] = useState('')
 
-   useEffect(() => {
 
-     if (pathname === link)
 
-       setLinkLastSearchParams(searchParams.toString())
 
-   }, [pathname, searchParams])
 
-   return (
 
-     <div className={`
 
-       mr-0 flex h-8 shrink-0 items-center rounded-xl px-0.5 text-sm font-medium sm:mr-3
 
-       ${isActivated && 'bg-components-main-nav-nav-button-bg-active font-semibold shadow-md'}
 
-       ${!curNav && !isActivated && 'hover:bg-components-main-nav-nav-button-bg-hover'}
 
-     `}>
 
-       <Link href={link + (linkLastSearchParams && `?${linkLastSearchParams}`)}>
 
-         <div
 
-           onClick={() => setAppDetail()}
 
-           className={classNames(`
 
-             flex items-center h-7 px-2.5 cursor-pointer rounded-[10px]
 
-             ${isActivated ? 'text-components-main-nav-nav-button-text-active' : 'text-components-main-nav-nav-button-text'}
 
-             ${curNav && isActivated && 'hover:bg-components-main-nav-nav-button-bg-active-hover'}
 
-           `)}
 
-           onMouseEnter={() => setHovered(true)}
 
-           onMouseLeave={() => setHovered(false)}
 
-         >
 
-           <div className='mr-2'>
 
-             {
 
-               (hovered && curNav)
 
-                 ? <ArrowNarrowLeft className='h-4 w-4' />
 
-                 : isActivated
 
-                   ? activeIcon
 
-                   : icon
 
-             }
 
-           </div>
 
-           {text}
 
-         </div>
 
-       </Link>
 
-       {
 
-         curNav && isActivated && (
 
-           <>
 
-             <div className='font-light text-divider-deep'>/</div>
 
-             <NavSelector
 
-               isApp={isApp}
 
-               curNav={curNav}
 
-               navs={navs}
 
-               createText={createText}
 
-               onCreate={onCreate}
 
-               onLoadmore={onLoadmore}
 
-             />
 
-           </>
 
-         )
 
-       }
 
-     </div>
 
-   )
 
- }
 
- export default Nav
 
 
  |