| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- 'use client'
 - import type { FC } from 'react'
 - import React, { useEffect, useState } from 'react'
 - import { useRouter } from 'next/navigation'
 - import ExploreContext from '@/context/explore-context'
 - import Sidebar from '@/app/components/explore/sidebar'
 - import { useAppContext } from '@/context/app-context'
 - import { fetchMembers } from '@/service/common'
 - import type { InstalledApp } from '@/models/explore'
 - import { useTranslation } from 'react-i18next'
 - import useDocumentTitle from '@/hooks/use-document-title'
 - 
 - export type IExploreProps = {
 -   children: React.ReactNode
 - }
 - 
 - const Explore: FC<IExploreProps> = ({
 -   children,
 - }) => {
 -   const router = useRouter()
 -   const [controlUpdateInstalledApps, setControlUpdateInstalledApps] = useState(0)
 -   const { userProfile, isCurrentWorkspaceDatasetOperator } = useAppContext()
 -   const [hasEditPermission, setHasEditPermission] = useState(false)
 -   const [installedApps, setInstalledApps] = useState<InstalledApp[]>([])
 -   const [isFetchingInstalledApps, setIsFetchingInstalledApps] = useState(false)
 -   const { t } = useTranslation()
 - 
 -   useDocumentTitle(t('common.menus.explore'))
 - 
 -   useEffect(() => {
 -     (async () => {
 -       const { accounts } = await fetchMembers({ url: '/workspaces/current/members', params: {} })
 -       if (!accounts)
 -         return
 -       const currUser = accounts.find(account => account.id === userProfile.id)
 -       setHasEditPermission(currUser?.role !== 'normal')
 -     })()
 -   }, [])
 - 
 -   useEffect(() => {
 -     if (isCurrentWorkspaceDatasetOperator)
 -       return router.replace('/datasets')
 -   }, [isCurrentWorkspaceDatasetOperator])
 - 
 -   return (
 -     <div className='flex h-full overflow-hidden border-t border-divider-regular bg-background-body'>
 -       <ExploreContext.Provider
 -         value={
 -           {
 -             controlUpdateInstalledApps,
 -             setControlUpdateInstalledApps,
 -             hasEditPermission,
 -             installedApps,
 -             setInstalledApps,
 -             isFetchingInstalledApps,
 -             setIsFetchingInstalledApps,
 -           }
 -         }
 -       >
 -         <Sidebar controlUpdateInstalledApps={controlUpdateInstalledApps} />
 -         <div className='w-0 grow'>
 -           {children}
 -         </div>
 -       </ExploreContext.Provider>
 -     </div>
 -   )
 - }
 - export default React.memo(Explore)
 
 
  |