|
1 | | -import React, { useMemo } from 'react'; |
2 | | -import { useTranslation } from 'react-i18next'; |
3 | | -import { Outlet, useNavigate, useParams } from 'react-router-dom'; |
| 1 | +import React from 'react'; |
| 2 | +import { Outlet, useParams } from 'react-router-dom'; |
4 | 3 |
|
5 | | -import { Button, ContentLayout, DetailsHeader } from 'components'; |
6 | | - |
7 | | -import { useAppSelector, useNotifications } from 'hooks'; |
8 | | -import { ROUTES } from 'routes'; |
9 | | -import { useAddProjectMemberMutation, useGetProjectQuery, useRemoveProjectMemberMutation } from 'services/project'; |
10 | | - |
11 | | -import { selectUserData } from 'App/slice'; |
12 | | - |
13 | | -import { useProjectMemberActions } from '../hooks/useProjectMemberActions'; |
14 | | -import { getProjectRoleByUserName } from '../utils'; |
| 4 | +import { ContentLayout, DetailsHeader } from 'components'; |
15 | 5 |
|
16 | 6 | export const ProjectDetails: React.FC = () => { |
17 | | - const { t } = useTranslation(); |
18 | 7 | const params = useParams(); |
19 | | - const navigate = useNavigate(); |
20 | 8 | const paramProjectName = params.projectName ?? ''; |
21 | | - const userData = useAppSelector(selectUserData); |
22 | | - const { handleJoinProject, handleLeaveProject, isMemberActionLoading } = useProjectMemberActions(); |
23 | | - |
24 | | - const { data: project } = useGetProjectQuery({ name: paramProjectName }); |
25 | | - |
26 | | - const currentUserRole = useMemo(() => { |
27 | | - if (!userData?.username || !project) return null; |
28 | | - return getProjectRoleByUserName(project, userData.username); |
29 | | - }, [project, userData?.username]); |
30 | | - |
31 | | - const isProjectOwner = userData?.username === project?.owner.username; |
32 | | - |
33 | | - const isMember = currentUserRole !== null; |
34 | 9 |
|
35 | 10 | return ( |
36 | 11 | <ContentLayout header={<DetailsHeader title={paramProjectName} />}> |
|
0 commit comments