| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | import { PermissionType } from '../types'import { useAppContext } from '@/context/app-context'import Toast from '../../base/toast'import { useTranslation } from 'react-i18next'import { useInvalidatePermissions, useMutationPermissions, usePermissions } from '@/service/use-plugins'const hasPermission = (permission: PermissionType | undefined, isAdmin: boolean) => {  if (!permission)    return false  if (permission === PermissionType.noOne)    return false  if (permission === PermissionType.everyone)    return true  return isAdmin}const usePermission = () => {  const { t } = useTranslation()  const { isCurrentWorkspaceManager, isCurrentWorkspaceOwner } = useAppContext()  const { data: permissions } = usePermissions()  const invalidatePermissions = useInvalidatePermissions()  const { mutate: updatePermission, isPending: isUpdatePending } = useMutationPermissions({    onSuccess: () => {      invalidatePermissions()      Toast.notify({        type: 'success',        message: t('common.api.actionSuccess'),      })    },  })  const isAdmin = isCurrentWorkspaceManager || isCurrentWorkspaceOwner  return {    canManagement: hasPermission(permissions?.install_permission, isAdmin),    canDebugger: hasPermission(permissions?.debug_permission, isAdmin),    canSetPermissions: isAdmin,    permissions,    setPermissions: updatePermission,    isUpdatePending,  }}export default usePermission
 |