@@ -23,12 +23,14 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
2323
2424 const { currentPageProp, pageSizeProp} = props ;
2525 const user = useSelector ( getUser ) ;
26- const [ elements , setElements ] = useState < any > ( { elements : [ ] , total : 1 , role : "" } ) ;
26+ const [ elements , setElements ] = useState < any > ( { elements : [ ] , total : 0 , role : "" } ) ;
2727 const [ group , setGrouop ] = useState < OrgGroup > ( ) ;
28- const [ orgMemberElements , setOrgMemberElements ] = useState < any > ( { elements : [ ] , total : 1 } )
28+ const [ orgMemberElements , setOrgMemberElements ] = useState < any > ( { elements : [ ] , total : 0 } )
2929 const [ currentPage , setCurrentPage ] = useState ( 1 ) ;
3030 const [ pageSize , setPageSize ] = useState ( 10 ) ;
3131 const [ modify , setModify ] = useState ( false ) ;
32+ const [ loading , setLoading ] = useState ( false ) ;
33+ const [ error , setError ] = useState < string | null > ( null ) ;
3234
3335 const orgId = user . currentOrgId ;
3436 const currentUser = useSelector ( getUser ) ;
@@ -51,57 +53,81 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
5153 )
5254
5355 useEffect ( ( ) => {
54- if ( selectKey !== "users" && selectKey )
56+ if ( selectKey !== "users" && selectKey ) {
57+ setLoading ( true ) ;
58+ setError ( null ) ;
59+
5560 fetchGroupUsrPagination (
5661 {
57- groupId :selectKey ,
62+ groupId : selectKey ,
5863 pageNum : currentPage ,
5964 pageSize : pageSize ,
6065 }
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." ) ;
6777 }
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+
7186 fetchOrgUsrPagination (
7287 {
7388 orgId : orgId ,
7489 pageNum : currentPage ,
7590 pageSize : pageSize ,
7691 }
7792 ) . 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." ) ;
83102 }
84- )
103+ } ) . catch ( err => {
104+ setLoading ( false ) ;
105+ setError ( "Failed to load organization users. Please try again." ) ;
106+ } ) ;
85107 }
86- } ,
87- [ currentPage , pageSize , modify , selectKey ]
88- )
108+ } , [ currentPage , pageSize , modify , selectKey , orgId ] ) ;
89109
90110 if ( ! orgId ) {
91111 return null ;
92112 }
93113
94114 return (
95115 < PermissionContent key = { selectKey } >
116+ { error && (
117+ < div style = { { color : 'red' , margin : '20px 0' , textAlign : 'center' } } >
118+ { error }
119+ </ div >
120+ ) }
121+
96122 { selectKey === "users" ? (
97123 < >
98124 < UsersPermission
99125 orgId = { orgId }
100- // orgUsers={!orgMemberElements.elements.members ? [] : orgMemberElements.elements.members}
101126 orgUsers = { orgMemberElements . elements }
102127 currentUser = { currentUser }
103128 setModify = { setModify }
104129 modify = { modify }
130+ loading = { loading }
105131 />
106132 < PaginationComp setCurrentPage = { setCurrentPage } setPageSize = { setPageSize } currentPage = { currentPage } pageSize = { pageSize } total = { orgMemberElements . total } />
107133 </ >
@@ -116,10 +142,10 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
116142 currentUser = { currentUser }
117143 setModify = { setModify }
118144 modify = { modify }
145+ loading = { loading }
119146 />
120147 < PaginationComp setCurrentPage = { setCurrentPage } setPageSize = { setPageSize } currentPage = { currentPage } pageSize = { pageSize } total = { elements . total } />
121148 </ >
122-
123149 )
124150 ) }
125151 </ PermissionContent >
0 commit comments