@@ -23,12 +23,14 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
2323
2424const { currentPageProp, pageSizeProp} = props ;
2525const user = useSelector ( getUser ) ;
26- const [ elements , setElements ] = useState < any > ( { elements :[ ] , total :1 , role :"" } ) ;
26+ const [ elements , setElements ] = useState < any > ( { elements :[ ] , total :0 , role :"" } ) ;
2727const [ group , setGrouop ] = useState < OrgGroup > ( ) ;
28- const [ orgMemberElements , setOrgMemberElements ] = useState < any > ( { elements :[ ] , total :1 } )
28+ const [ orgMemberElements , setOrgMemberElements ] = useState < any > ( { elements :[ ] , total :0 } )
2929const [ currentPage , setCurrentPage ] = useState ( 1 ) ;
3030const [ pageSize , setPageSize ] = useState ( 10 ) ;
3131const [ modify , setModify ] = useState ( false ) ;
32+ const [ loading , setLoading ] = useState ( false ) ;
33+ const [ error , setError ] = useState < string | null > ( null ) ;
3234
3335const orgId = user . currentOrgId ;
3436const currentUser = useSelector ( getUser ) ;
@@ -51,57 +53,81 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
5153)
5254
5355useEffect ( ( ) => {
54- if ( selectKey !== "users" && selectKey )
56+ if ( selectKey !== "users" && selectKey ) {
57+ setLoading ( true ) ;
58+ setError ( null ) ;
59+
5560fetchGroupUsrPagination (
5661{
57- groupId :selectKey ,
62+ groupId :selectKey ,
5863pageNum :currentPage ,
5964pageSize :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+
7186fetchOrgUsrPagination (
7287{
7388orgId :orgId ,
7489pageNum :currentPage ,
7590pageSize :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
90110if ( ! orgId ) {
91111return null ;
92112}
93113
94114return (
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
99125orgId = { orgId }
100- // orgUsers={!orgMemberElements.elements.members ? [] : orgMemberElements.elements.members}
101126orgUsers = { orgMemberElements . elements }
102127currentUser = { currentUser }
103128setModify = { setModify }
104129modify = { 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
116142currentUser = { currentUser }
117143setModify = { setModify }
118144modify = { modify }
145+ loading = { loading }
119146/>
120147< PaginationComp setCurrentPage = { setCurrentPage } setPageSize = { setPageSize } currentPage = { currentPage } pageSize = { pageSize } total = { elements . total } />
121148</ >
122-
123149)
124150) }
125151</ PermissionContent >