@@ -10,7 +10,7 @@ import {Badge} from './ui/badge';
1010import { DatePicker } from './ui/date-picker' ;
1111import { useDialog } from '../contexts/DialogContext' ;
1212import { useAuth } from '../contexts/AuthContext' ;
13- import { projectsApi } from '../services/api' ;
13+ import { projectsApi , authApi } from '../services/api' ;
1414import type { Project , CreatePostData , User as UserType , Post } from '../types' ;
1515
1616interface CreateIssueProps {
@@ -40,8 +40,9 @@ export const CreateIssue = ({projects, selectedProject, parentIssue, onSubmit, o
4040 const [ isSubmitting , setIsSubmitting ] = useState ( false ) ;
4141 const [ isDragOver , setIsDragOver ] = useState ( false ) ;
4242 const [ projectMembers , setProjectMembers ] = useState < UserType [ ] > ( [ ] ) ;
43+ const [ userProjectMemberships , setUserProjectMemberships ] = useState < number [ ] > ( [ ] ) ;
4344
44- const canEditManagerFields = user ?. is_admin || false ;
45+ const canEditManagerFields = user ?. is_admin || ( projectId && userProjectMemberships . includes ( parseInt ( projectId ) ) ) ;
4546
4647 useEffect ( ( ) => {
4748 if ( parentIssue ) {
@@ -57,6 +58,21 @@ export const CreateIssue = ({projects, selectedProject, parentIssue, onSubmit, o
5758 }
5859 } , [ projectId ] ) ;
5960
61+ useEffect ( ( ) => {
62+ const loadUserProjectMemberships = async ( ) => {
63+ if ( user && ! user . is_admin ) {
64+ try {
65+ const result = await authApi . getUserProjectMemberships ( ) ;
66+ setUserProjectMemberships ( result . projectIds ) ;
67+ } catch ( error ) {
68+ console . error ( 'Failed to load user project memberships:' , error ) ;
69+ }
70+ }
71+ } ;
72+
73+ loadUserProjectMemberships ( ) ;
74+ } , [ user ] ) ;
75+
6076 const loadProjectMembers = async ( ) => {
6177 try {
6278 const members = await projectsApi . getMembers ( parseInt ( projectId ) ) ;
0 commit comments