@@ -12,6 +12,7 @@ export const Header: React.FC = () => {
1212 const formPermission = UserHelper . checkAccess ( Permissions . membershipApi . forms . admin ) || UserHelper . checkAccess ( Permissions . membershipApi . forms . edit ) ;
1313 const [ donationError , setDonationError ] = React . useState < boolean > ( false ) ;
1414 const [ isFormMember , setIsFormMember ] = React . useState < boolean > ( false ) ;
15+ const [ isMinistryMember , setIsMinistryMember ] = React . useState < boolean > ( false ) ;
1516
1617 useEffect ( ( ) => {
1718 if ( UserHelper . checkAccess ( Permissions . givingApi . donations . viewSummary ) ) {
@@ -23,6 +24,10 @@ export const Header: React.FC = () => {
2324 if ( ! formPermission && context ?. person ?. id ) {
2425 ApiHelper . get ( "/memberpermissions/member/" + context . person ?. id , "MembershipApi" ) . then ( ( data ) => setIsFormMember ( data ?. length > 0 ) ) ;
2526 }
27+
28+ if ( ! UserHelper . checkAccess ( Permissions . membershipApi . plans . edit ) ) {
29+ ApiHelper . get ( "/groups/my/ministry" , "MembershipApi" ) . then ( ( data ) => setIsMinistryMember ( data ?. length > 0 ) ) ;
30+ }
2631 } , [ formPermission , context ?. person ?. id ] ) ;
2732
2833 const primaryMenu = useMemo ( ( ) => {
@@ -32,7 +37,8 @@ export const Header: React.FC = () => {
3237 if ( UserHelper . checkAccess ( Permissions . membershipApi . people . view ) ) menuItems . push ( { url : "/people" , icon : "person" , label : Locale . label ( "components.wrapper.ppl" ) } ) ;
3338 if ( UserHelper . checkAccess ( Permissions . givingApi . donations . viewSummary ) ) menuItems . push ( { url : "/donations" , label : Locale . label ( "components.wrapper.don" ) , icon : donationIcon } ) ;
3439
35- if ( UserHelper . checkAccess ( Permissions . membershipApi . plans . edit ) ) menuItems . push ( { url : "/serving" , label : Locale . label ( "components.wrapper.serving" ) , icon : "assignment" } ) ;
40+ const canViewPlans = UserHelper . checkAccess ( Permissions . membershipApi . plans . edit ) || isMinistryMember ;
41+ if ( canViewPlans ) menuItems . push ( { url : "/serving" , label : Locale . label ( "components.wrapper.serving" ) , icon : "assignment" } ) ;
3642 else menuItems . push ( { url : "/serving/tasks" , label : Locale . label ( "components.wrapper.serving" ) , icon : "assignment" } ) ;
3743
3844 // Temporarily hidden
@@ -44,7 +50,7 @@ export const Header: React.FC = () => {
4450 else if ( formPermission || isFormMember ) menuItems . push ( { url : "/forms" , label : Locale . label ( "components.wrapper.set" ) , icon : "settings" } ) ;
4551 // if (UserHelper.checkAccess(Permissions.membershipApi.server.admin)) tabs.push(<NavItem key="/admin" url="/admin" label={Locale.label("components.wrapper.servAdmin")} icon="admin_panel_settings" selected={selectedTab === "admin"} />);
4652 return menuItems ;
47- } , [ donationError , formPermission , isFormMember ] ) ;
53+ } , [ donationError , formPermission , isFormMember , isMinistryMember ] ) ;
4854 /*
4955 const getSecondaryMenu = () => {
5056 const menuItems:{ url: string, label: string }[] = []
@@ -70,7 +76,7 @@ export const Header: React.FC = () => {
7076 return result ;
7177 } ;
7278
73- const secondaryMenu = SecondaryMenuHelper . getSecondaryMenu ( window . location . pathname , { formPermission, search : window . location . search } ) ;
79+ const secondaryMenu = SecondaryMenuHelper . getSecondaryMenu ( window . location . pathname , { formPermission, search : window . location . search , isMinistryMember } ) ;
7480
7581 const handleNavigate = ( url : string ) => {
7682 navigate ( url ) ;
0 commit comments