11import React from "react" ;
22import { Icon , IconButton , Table , TableBody , TableCell , TableRow } from "@mui/material" ;
3- import { ApiHelper , ArrayHelper , DateHelper , DisplayBox , GroupInterface , GroupMemberInterface , Locale , PlanInterface , PositionInterface , SmallButton , TimeInterface } from "@churchapps/apphelper" ;
3+ import { ApiHelper , ArrayHelper , DateHelper , DisplayBox , GroupInterface , GroupMemberInterface , Locale , PlanInterface , PositionInterface , SmallButton , TimeInterface , UserHelper , Permissions } from "@churchapps/apphelper" ;
44import { Link , Navigate } from "react-router-dom" ;
55import { GroupAdd } from "../../groups/components" ;
66import UserContext from "../../UserContext" ;
77
88interface Props {
99}
1010
11- export const MinistryList = ( props :Props ) => {
11+ export const MinistryList = ( props : Props ) => {
1212 //const [redirect, setRedirect] = React.useState("");
1313 const [ groups , setGroups ] = React . useState < GroupInterface [ ] > ( null ) ;
1414 const [ showAdd , setShowAdd ] = React . useState < boolean > ( false ) ;
@@ -18,9 +18,9 @@ export const MinistryList = (props:Props) => {
1818 const context = React . useContext ( UserContext ) ;
1919
2020 const loadData = async ( ) => {
21- const groups :GroupInterface [ ] = await ApiHelper . get ( "/groups/tag/ministry" , "MembershipApi" ) ;
21+ const groups : GroupInterface [ ] = await ApiHelper . get ( "/groups/tag/ministry" , "MembershipApi" ) ;
2222 setGroups ( groups )
23- if ( groups . length > 0 ) ApiHelper . get ( "/groupMembers?groupIds=" + ArrayHelper . getIds ( groups , "id" ) , "MembershipApi" ) . then ( ( data ) => { setGroupMembers ( data ) ; } )
23+ if ( groups . length > 0 ) ApiHelper . get ( "/groupMembers?groupIds=" + ArrayHelper . getIds ( groups , "id" ) , "MembershipApi" ) . then ( ( data ) => { setGroupMembers ( data ) ; } )
2424 } ;
2525
2626 const getAddLink = ( ) => (
@@ -40,7 +40,7 @@ export const MinistryList = (props:Props) => {
4040 for ( let i = 0 ; i < groups . length ; i ++ ) {
4141 let g = groups [ i ] ;
4242 const members = ArrayHelper . getAll ( groupMembers , "groupId" , g . id ) ;
43- const hasAccess = members . length === 0 || ArrayHelper . getOne ( members , "personId" , context . person ?. id ) !== null ;
43+ const hasAccess = members . length === 0 || ArrayHelper . getOne ( members , "personId" , context . person ?. id ) !== null || UserHelper . checkAccess ( Permissions . membershipApi . roles . edit ) ;
4444 //if (hasAccess && window.location.pathname==="/plans") setRedirect("/plans/ministries/" + g.id.toString());
4545
4646 rows . push ( < TableRow key = { g . id } >
@@ -55,7 +55,7 @@ export const MinistryList = (props:Props) => {
5555 return rows ;
5656 } ;
5757
58- React . useEffect ( ( ) => { loadData ( ) } , [ ] ) ;
58+ React . useEffect ( ( ) => { loadData ( ) } , [ ] ) ;
5959
6060 //if (redirect !== "") return <Navigate to={redirect} />;
6161 if ( showAdd ) return ( < GroupAdd updatedFunction = { handleAddUpdated } tags = "ministry" categoryName = "Ministry" /> )
0 commit comments