@@ -23,12 +23,14 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
23
23
24
24
const { currentPageProp, pageSizeProp} = props ;
25
25
const user = useSelector ( getUser ) ;
26
- const [ elements , setElements ] = useState < any > ( { elements : [ ] , total : 1 , role : "" } ) ;
26
+ const [ elements , setElements ] = useState < any > ( { elements : [ ] , total : 0 , role : "" } ) ;
27
27
const [ group , setGrouop ] = useState < OrgGroup > ( ) ;
28
- const [ orgMemberElements , setOrgMemberElements ] = useState < any > ( { elements : [ ] , total : 1 } )
28
+ const [ orgMemberElements , setOrgMemberElements ] = useState < any > ( { elements : [ ] , total : 0 } )
29
29
const [ currentPage , setCurrentPage ] = useState ( 1 ) ;
30
30
const [ pageSize , setPageSize ] = useState ( 10 ) ;
31
31
const [ modify , setModify ] = useState ( false ) ;
32
+ const [ loading , setLoading ] = useState ( false ) ;
33
+ const [ error , setError ] = useState < string | null > ( null ) ;
32
34
33
35
const orgId = user . currentOrgId ;
34
36
const currentUser = useSelector ( getUser ) ;
@@ -51,57 +53,81 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
51
53
)
52
54
53
55
useEffect ( ( ) => {
54
- if ( selectKey !== "users" && selectKey )
56
+ if ( selectKey !== "users" && selectKey ) {
57
+ setLoading ( true ) ;
58
+ setError ( null ) ;
59
+
55
60
fetchGroupUsrPagination (
56
61
{
57
- groupId :selectKey ,
62
+ groupId : selectKey ,
58
63
pageNum : currentPage ,
59
64
pageSize : pageSize ,
60
65
}
61
- ) . then ( result => {
62
- if ( result . success ) {
63
- setElements ( { elements : result . data || [ ] , total : result . total || 1 , role : result . visitorRole || "" } )
64
- }
65
- else
66
- console . error ( "ERROR: fetchFolderElements" , result . error )
66
+ ) . then ( result => {
67
+ setLoading ( false ) ;
68
+
69
+ if ( result . success ) {
70
+ setElements ( {
71
+ elements : result . data || [ ] ,
72
+ total : result . total || 0 ,
73
+ role : result . visitorRole || ""
74
+ } ) ;
75
+ } else {
76
+ setError ( "Failed to load group users. Please try again." ) ;
67
77
}
68
- )
69
- else
70
- {
78
+ } ) . catch ( err => {
79
+ setLoading ( false ) ;
80
+ setError ( "Failed to load group users. Please try again." ) ;
81
+ } ) ;
82
+ } else {
83
+ setLoading ( true ) ;
84
+ setError ( null ) ;
85
+
71
86
fetchOrgUsrPagination (
72
87
{
73
88
orgId : orgId ,
74
89
pageNum : currentPage ,
75
90
pageSize : pageSize ,
76
91
}
77
92
) . then ( result => {
78
- if ( result . success ) {
79
- setOrgMemberElements ( { elements : result . data || [ ] , total : result . total || 1 } )
80
- }
81
- else
82
- console . error ( "ERROR: fetchFolderElements" , result . error )
93
+ setLoading ( false ) ;
94
+ if ( result . success ) {
95
+ setOrgMemberElements ( {
96
+ elements : result . data || [ ] ,
97
+ total : result . total || 0
98
+ } ) ;
99
+ }
100
+ else {
101
+ setError ( "Failed to load organization users. Please try again." ) ;
83
102
}
84
- )
103
+ } ) . catch ( err => {
104
+ setLoading ( false ) ;
105
+ setError ( "Failed to load organization users. Please try again." ) ;
106
+ } ) ;
85
107
}
86
- } ,
87
- [ currentPage , pageSize , modify , selectKey ]
88
- )
108
+ } , [ currentPage , pageSize , modify , selectKey , orgId ] ) ;
89
109
90
110
if ( ! orgId ) {
91
111
return null ;
92
112
}
93
113
94
114
return (
95
115
< PermissionContent key = { selectKey } >
116
+ { error && (
117
+ < div style = { { color : 'red' , margin : '20px 0' , textAlign : 'center' } } >
118
+ { error }
119
+ </ div >
120
+ ) }
121
+
96
122
{ selectKey === "users" ? (
97
123
< >
98
124
< UsersPermission
99
125
orgId = { orgId }
100
- // orgUsers={!orgMemberElements.elements.members ? [] : orgMemberElements.elements.members}
101
126
orgUsers = { orgMemberElements . elements }
102
127
currentUser = { currentUser }
103
128
setModify = { setModify }
104
129
modify = { modify }
130
+ loading = { loading }
105
131
/>
106
132
< PaginationComp setCurrentPage = { setCurrentPage } setPageSize = { setPageSize } currentPage = { currentPage } pageSize = { pageSize } total = { orgMemberElements . total } />
107
133
</ >
@@ -116,10 +142,10 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
116
142
currentUser = { currentUser }
117
143
setModify = { setModify }
118
144
modify = { modify }
145
+ loading = { loading }
119
146
/>
120
147
< PaginationComp setCurrentPage = { setCurrentPage } setPageSize = { setPageSize } currentPage = { currentPage } pageSize = { pageSize } total = { elements . total } />
121
148
</ >
122
-
123
149
)
124
150
) }
125
151
</ PermissionContent >
0 commit comments