refactor: remove unnecessary return statement in deleteTenantAccount method

refactor: optimize useRequireStorageProvider to prevent multiple navigations
fix: ensure listObjects is called before filtering keys in S3StorageProvider

Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
Innei
2025-11-27 21:18:10 +08:00
parent 78d65286e5
commit 41fabbf70f
4 changed files with 8 additions and 9 deletions

View File

@@ -66,8 +66,6 @@ export class DataManagementService {
await this.deleteManagedStorageSpace(tenantId)
return
if (!tenantSlug) {
throw new BizException(ErrorCode.COMMON_BAD_REQUEST, {
message: '当前租户缺少 slug无法删除账户。',

View File

@@ -94,12 +94,6 @@ export function usePageRedirect() {
setAuthUser(sessionQuery.data?.user ?? null)
}, [sessionQuery.data, setAuthUser])
useEffect(() => {
return () => {
queryClient.cancelQueries({ queryKey: AUTH_SESSION_QUERY_KEY })
}
}, [queryClient])
useEffect(() => {
const matchedTenantNotFound = [sessionQuery.error].some((error) => {
const code = extractBizErrorCode(error)

View File

@@ -1,4 +1,4 @@
import { useEffect } from 'react'
import { useEffect, useRef } from 'react'
import { useLocation, useNavigate } from 'react-router'
import { PUBLIC_ROUTES } from '~/constants/routes'
@@ -34,7 +34,11 @@ export function useRequireStorageProvider({ session, isLoading }: UseRequireStor
(storageProvidersQuery.data?.providers.length ?? 0) === 0 &&
!storageProvidersQuery.isFetching
const navigateOnceRef = useRef(false)
useEffect(() => {
if (navigateOnceRef.current) {
return
}
if (!needsSetup) {
return
}
@@ -42,6 +46,8 @@ export function useRequireStorageProvider({ session, isLoading }: UseRequireStor
return
}
navigateOnceRef.current = true
navigate(STORAGE_SETUP_PATH, { replace: true })
}, [navigate, needsSetup, pathname])
}

View File

@@ -344,6 +344,7 @@ export class S3StorageProvider implements StorageProvider {
const targetPrefix = basePrefix && !basePrefix.endsWith('/') ? `${basePrefix}/` : basePrefix
const objects = await this.listObjects(listPrefix)
const keysToDelete = objects
.map((obj) => obj.key)
.filter((key): key is string => {