| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- 'use client'
 
- import type { FC } from 'react'
 
- import React, { useEffect, useState } from 'react'
 
- import { useRouter } from 'next/navigation'
 
- import { useTranslation } from 'react-i18next'
 
- 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'
 
- export type IExploreProps = {
 
-   children: React.ReactNode
 
- }
 
- const Explore: FC<IExploreProps> = ({
 
-   children,
 
- }) => {
 
-   const { t } = useTranslation()
 
-   const router = useRouter()
 
-   const [controlUpdateInstalledApps, setControlUpdateInstalledApps] = useState(0)
 
-   const { userProfile, isCurrentWorkspaceDatasetOperator } = useAppContext()
 
-   const [hasEditPermission, setHasEditPermission] = useState(false)
 
-   const [installedApps, setInstalledApps] = useState<InstalledApp[]>([])
 
-   useEffect(() => {
 
-     document.title = `${t('explore.title')} - Dify`;
 
-     (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,
 
-           }
 
-         }
 
-       >
 
-         <Sidebar controlUpdateInstalledApps={controlUpdateInstalledApps} />
 
-         <div className='w-0 grow'>
 
-           {children}
 
-         </div>
 
-       </ExploreContext.Provider>
 
-     </div>
 
-   )
 
- }
 
- export default React.memo(Explore)
 
 
  |