1- import React from "react" ;
1+ import React , { useEffect , useState } from "react" ;
22import { Button , Input , Message , Popconfirm , Select , Space } from "@arco-design/web-react" ;
33import type { FileSystemType } from "@Packages/filesystem/factory" ;
44import FileSystemFactory from "@Packages/filesystem/factory" ;
55import { useTranslation } from "react-i18next" ;
6- import { ClearNetDiskToken , netDiskTypeMap } from "@Packages/filesystem/auth" ;
6+ import { ClearNetDiskToken , HasNetDiskToken , netDiskTypeMap } from "@Packages/filesystem/auth" ;
77
88const FileSystemParams : React . FC < {
99 headerContent : React . ReactNode | string ;
@@ -22,6 +22,17 @@ const FileSystemParams: React.FC<{
2222} ) => {
2323 const fsParams = FileSystemFactory . params ( ) ;
2424 const { t } = useTranslation ( ) ;
25+ const [ hasBoundToken , setHasBoundToken ] = useState ( false ) ;
26+
27+ const netDiskType = netDiskTypeMap [ fileSystemType ] ;
28+
29+ useEffect ( ( ) => {
30+ if ( ! netDiskType ) {
31+ setHasBoundToken ( false ) ;
32+ return ;
33+ }
34+ HasNetDiskToken ( netDiskType ) . then ( setHasBoundToken ) ;
35+ } , [ netDiskType ] ) ;
2536
2637 const fileSystemList : {
2738 key : FileSystemType ;
@@ -53,7 +64,6 @@ const FileSystemParams: React.FC<{
5364 } ,
5465 ] ;
5566
56- const netDiskType = netDiskTypeMap [ fileSystemType ] ;
5767 const netDiskName = netDiskType ? fileSystemList . find ( ( item ) => item . key === fileSystemType ) ?. name : null ;
5868
5969 return (
@@ -74,13 +84,14 @@ const FileSystemParams: React.FC<{
7484 ) ) }
7585 </ Select >
7686 { children }
77- { netDiskType && netDiskName && (
87+ { netDiskType && netDiskName && hasBoundToken && (
7888 < Popconfirm
7989 key = "netdisk-unbind"
8090 title = { t ( "netdisk_unbind_confirm" , { provider : netDiskName } ) }
8191 onOk = { async ( ) => {
8292 try {
8393 await ClearNetDiskToken ( netDiskType ) ;
94+ setHasBoundToken ( false ) ;
8495 Message . success ( t ( "netdisk_unbind_success" , { provider : netDiskName } ) ! ) ;
8596 } catch ( error ) {
8697 Message . error ( `${ t ( "netdisk_unbind_error" , { provider : netDiskName } ) } : ${ String ( error ) } ` ) ;
0 commit comments