Skip to content

Commit fe00d65

Browse files
committed
🗑️(frontend) clean member feature
Clean a bit member feature, remove unused files and refactor some code.
1 parent 5ef0f82 commit fe00d65

File tree

8 files changed

+52
-66
lines changed

8 files changed

+52
-66
lines changed

src/frontend/apps/impress/src/components/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ export * from './DropButton';
55
export * from './Icon';
66
export * from './InfiniteScroll';
77
export * from './Link';
8+
export * from './SideModal';
89
export * from './Text';
910
export * from './TextErrors';
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export * from './useCreateDocInvitation';
12
export * from './useDeleteDocInvitation';
23
export * from './useDocInvitations';
34
export * from './useUpdateDocInvitation';
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ import { useMutation, useQueryClient } from '@tanstack/react-query';
33
import { APIError, errorCauses, fetchAPI } from '@/api';
44
import { User } from '@/core/auth';
55
import { Doc, Role } from '@/features/docs/doc-management';
6+
import { OptionType } from '@/features/docs/members/members-add/types';
67
import { ContentLanguage } from '@/i18n/types';
78

8-
import { KEY_LIST_DOC_INVITATIONS } from '../../invitation-list';
9-
import { DocInvitation, OptionType } from '../types';
9+
import { Invitation } from '../types';
10+
11+
import { KEY_LIST_DOC_INVITATIONS } from './useDocInvitations';
1012

1113
interface CreateDocInvitationParams {
1214
email: User['email'];
@@ -20,7 +22,7 @@ export const createDocInvitation = async ({
2022
role,
2123
docId,
2224
contentLanguage,
23-
}: CreateDocInvitationParams): Promise<DocInvitation> => {
25+
}: CreateDocInvitationParams): Promise<Invitation> => {
2426
const response = await fetchAPI(`documents/${docId}/invitations/`, {
2527
method: 'POST',
2628
headers: {
@@ -42,12 +44,12 @@ export const createDocInvitation = async ({
4244
);
4345
}
4446

45-
return response.json() as Promise<DocInvitation>;
47+
return response.json() as Promise<Invitation>;
4648
};
4749

48-
export function useCreateInvitation() {
50+
export function useCreateDocInvitation() {
4951
const queryClient = useQueryClient();
50-
return useMutation<DocInvitation, APIError, CreateDocInvitationParams>({
52+
return useMutation<Invitation, APIError, CreateDocInvitationParams>({
5153
mutationFn: createDocInvitation,
5254
onSuccess: () => {
5355
void queryClient.invalidateQueries({
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
export * from './useCreateDocInvitation';
21
export * from './useCreateDocAccess';
32
export * from './useUsers';

src/frontend/apps/impress/src/features/docs/members/members-add/components/AddMembers.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ import { useTranslation } from 'react-i18next';
99
import { APIError } from '@/api';
1010
import { Box, Card, IconBG } from '@/components';
1111
import { Doc, Role } from '@/features/docs/doc-management';
12+
import { useCreateDocInvitation } from '@/features/docs/members/invitation-list/';
1213
import { useLanguage } from '@/i18n/hooks/useLanguage';
1314

14-
import { useCreateDocAccess, useCreateInvitation } from '../api';
15+
import { useCreateDocAccess } from '../api';
1516
import {
1617
OptionInvitation,
1718
OptionNewMember,
@@ -39,7 +40,7 @@ export const AddMembers = ({ currentRole, doc }: ModalAddMembersProps) => {
3940
const [selectedUsers, setSelectedUsers] = useState<OptionsSelect>([]);
4041
const [selectedRole, setSelectedRole] = useState<Role>();
4142
const { toast } = useToastProvider();
42-
const { mutateAsync: createInvitation } = useCreateInvitation();
43+
const { mutateAsync: createInvitation } = useCreateDocInvitation();
4344
const { mutateAsync: createDocAccess } = useCreateDocAccess();
4445
const [resetKey, setResetKey] = useState(1);
4546

src/frontend/apps/impress/src/features/docs/members/members-add/types.tsx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { User } from '@/core/auth';
2-
import { Doc, Role } from '@/features/docs/doc-management';
32

43
export enum OptionType {
54
INVITATION = 'invitation',
@@ -25,12 +24,3 @@ export interface OptionNewMember {
2524
}
2625

2726
export type OptionSelect = OptionNewMember | OptionInvitation;
28-
29-
export interface DocInvitation {
30-
id: string;
31-
created_at: string;
32-
email: string;
33-
team: Doc['id'];
34-
role: Role;
35-
issuer: User['id'];
36-
}

src/frontend/apps/impress/src/features/docs/members/members-list/assets/icon-remove-member.svg

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/frontend/apps/impress/src/features/docs/members/members-list/components/MemberItem.tsx

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -70,49 +70,49 @@ export const MemberItem = ({
7070

7171
return (
7272
<Box $width="100%">
73-
<Box
74-
$align="center"
75-
$direction="row"
76-
$gap="1rem"
77-
$justify="space-between"
78-
$width="100%"
79-
$wrap="wrap"
80-
>
81-
<Box $direction="row" $gap="1rem">
82-
<IconBG iconName="account_circle" $size="2rem" />
73+
<Box $direction="row" $gap="1rem">
74+
<IconBG iconName="account_circle" $size="2rem" />
75+
<Box
76+
$align="center"
77+
$direction="row"
78+
$gap="1rem"
79+
$justify="space-between"
80+
$width="100%"
81+
$wrap="wrap"
82+
>
8383
<Text $justify="center">{access.user.email}</Text>
84-
</Box>
85-
<Box $direction="row" $gap="1rem" $align="center">
86-
<Box $minWidth="13rem">
87-
<ChooseRole
88-
label={t('Role')}
89-
defaultRole={localRole}
90-
currentRole={currentRole}
84+
<Box $direction="row" $gap="1rem" $align="center">
85+
<Box $minWidth="13rem">
86+
<ChooseRole
87+
label={t('Role')}
88+
defaultRole={localRole}
89+
currentRole={currentRole}
90+
disabled={isNotAllowed}
91+
setRole={(role) => {
92+
setLocalRole(role);
93+
updateDocAccess({
94+
docId,
95+
accessId: access.id,
96+
role,
97+
});
98+
}}
99+
/>
100+
</Box>
101+
<Button
102+
color="tertiary-text"
103+
icon={
104+
<Text
105+
$isMaterialIcon
106+
$theme={isNotAllowed ? 'greyscale' : 'primary'}
107+
$variation={isNotAllowed ? '500' : 'text'}
108+
>
109+
delete
110+
</Text>
111+
}
91112
disabled={isNotAllowed}
92-
setRole={(role) => {
93-
setLocalRole(role);
94-
updateDocAccess({
95-
docId,
96-
accessId: access.id,
97-
role,
98-
});
99-
}}
113+
onClick={() => removeDocAccess({ docId, accessId: access.id })}
100114
/>
101115
</Box>
102-
<Button
103-
color="tertiary-text"
104-
icon={
105-
<Text
106-
$isMaterialIcon
107-
$theme={isNotAllowed ? 'greyscale' : 'primary'}
108-
$variation={isNotAllowed ? '500' : 'text'}
109-
>
110-
delete
111-
</Text>
112-
}
113-
disabled={isNotAllowed}
114-
onClick={() => removeDocAccess({ docId, accessId: access.id })}
115-
/>
116116
</Box>
117117
</Box>
118118
{(errorUpdate || errorDelete) && (

0 commit comments

Comments
 (0)