balibabu
commited on
Commit
ยท
e5dbc25
1
Parent(s):
3343a14
Feat: Quit from jointed team #3759 (#3797)
Browse files### What problem does this PR solve?
Feat: Quit from jointed team #3759
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
web/src/locales/en.ts
CHANGED
@@ -602,6 +602,8 @@ The above is the content you need to summarize.`,
|
|
602 |
teamMembers: 'Team Members',
|
603 |
joinedTeams: 'Joined Teams',
|
604 |
sureDelete: 'Are you sure to remove this member?',
|
|
|
|
|
605 |
},
|
606 |
message: {
|
607 |
registered: 'Registered!',
|
|
|
602 |
teamMembers: 'Team Members',
|
603 |
joinedTeams: 'Joined Teams',
|
604 |
sureDelete: 'Are you sure to remove this member?',
|
605 |
+
quit: 'Quit',
|
606 |
+
sureQuit: 'Are you sure you want to quit the team you joined?',
|
607 |
},
|
608 |
message: {
|
609 |
registered: 'Registered!',
|
web/src/locales/zh-traditional.ts
CHANGED
@@ -569,6 +569,8 @@ export default {
|
|
569 |
teamMembers: 'ๅ้ๆๅก',
|
570 |
joinedTeams: 'ๅ ๅ
ฅ็ๅ้',
|
571 |
sureDelete: 'ๆจ็ขบๅฎๅช้ค่ฉฒๆๅกๅ๏ผ',
|
|
|
|
|
572 |
},
|
573 |
message: {
|
574 |
registered: '่จปๅๆๅ',
|
|
|
569 |
teamMembers: 'ๅ้ๆๅก',
|
570 |
joinedTeams: 'ๅ ๅ
ฅ็ๅ้',
|
571 |
sureDelete: 'ๆจ็ขบๅฎๅช้ค่ฉฒๆๅกๅ๏ผ',
|
572 |
+
quit: '้ๅบ',
|
573 |
+
sureQuit: '็ขบๅฎ้ๅบๅ ๅ
ฅ็ๅ้ๅ๏ผ',
|
574 |
},
|
575 |
message: {
|
576 |
registered: '่จปๅๆๅ',
|
web/src/locales/zh.ts
CHANGED
@@ -589,6 +589,8 @@ export default {
|
|
589 |
teamMembers: 'ๅข้ๆๅ',
|
590 |
joinedTeams: 'ๅ ๅ
ฅ็ๅข้',
|
591 |
sureDelete: 'ๆจ็กฎๅฎ่ฆๅ ้ค่ฏฅๆๅๅ๏ผ',
|
|
|
|
|
592 |
},
|
593 |
message: {
|
594 |
registered: 'ๆณจๅๆๅ',
|
|
|
589 |
teamMembers: 'ๅข้ๆๅ',
|
590 |
joinedTeams: 'ๅ ๅ
ฅ็ๅข้',
|
591 |
sureDelete: 'ๆจ็กฎๅฎ่ฆๅ ้ค่ฏฅๆๅๅ๏ผ',
|
592 |
+
quit: '้ๅบ',
|
593 |
+
sureQuit: '็กฎๅฎ้ๅบๅ ๅ
ฅ็ๅข้ๅ๏ผ',
|
594 |
},
|
595 |
message: {
|
596 |
registered: 'ๆณจๅๆๅ',
|
web/src/pages/user-setting/setting-team/hooks.ts
CHANGED
@@ -69,3 +69,20 @@ export const useHandleAgreeTenant = () => {
|
|
69 |
|
70 |
return { handleAgree };
|
71 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
return { handleAgree };
|
71 |
};
|
72 |
+
|
73 |
+
export const useHandleQuitUser = () => {
|
74 |
+
const { deleteTenantUser, loading } = useDeleteTenantUser();
|
75 |
+
const showDeleteConfirm = useShowDeleteConfirm();
|
76 |
+
const { t } = useTranslation();
|
77 |
+
|
78 |
+
const handleQuitTenantUser = (userId: string, tenantId: string) => () => {
|
79 |
+
showDeleteConfirm({
|
80 |
+
title: t('setting.sureQuit'),
|
81 |
+
onOk: async () => {
|
82 |
+
deleteTenantUser({ userId, tenantId });
|
83 |
+
},
|
84 |
+
});
|
85 |
+
};
|
86 |
+
|
87 |
+
return { handleQuitTenantUser, loading };
|
88 |
+
};
|
web/src/pages/user-setting/setting-team/tenant-table.tsx
CHANGED
@@ -1,16 +1,18 @@
|
|
1 |
-
import { useListTenant } from '@/hooks/user-setting-hooks';
|
2 |
import { ITenant } from '@/interfaces/database/user-setting';
|
3 |
import { formatDate } from '@/utils/date';
|
4 |
import type { TableProps } from 'antd';
|
5 |
import { Button, Space, Table } from 'antd';
|
6 |
import { useTranslation } from 'react-i18next';
|
7 |
import { TenantRole } from '../constants';
|
8 |
-
import { useHandleAgreeTenant } from './hooks';
|
9 |
|
10 |
const TenantTable = () => {
|
11 |
const { t } = useTranslation();
|
12 |
const { data, loading } = useListTenant();
|
13 |
const { handleAgree } = useHandleAgreeTenant();
|
|
|
|
|
14 |
|
15 |
const columns: TableProps<ITenant>['columns'] = [
|
16 |
{
|
@@ -46,6 +48,15 @@ const TenantTable = () => {
|
|
46 |
</Button>
|
47 |
</Space>
|
48 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
},
|
51 |
},
|
|
|
1 |
+
import { useFetchUserInfo, useListTenant } from '@/hooks/user-setting-hooks';
|
2 |
import { ITenant } from '@/interfaces/database/user-setting';
|
3 |
import { formatDate } from '@/utils/date';
|
4 |
import type { TableProps } from 'antd';
|
5 |
import { Button, Space, Table } from 'antd';
|
6 |
import { useTranslation } from 'react-i18next';
|
7 |
import { TenantRole } from '../constants';
|
8 |
+
import { useHandleAgreeTenant, useHandleQuitUser } from './hooks';
|
9 |
|
10 |
const TenantTable = () => {
|
11 |
const { t } = useTranslation();
|
12 |
const { data, loading } = useListTenant();
|
13 |
const { handleAgree } = useHandleAgreeTenant();
|
14 |
+
const { data: user } = useFetchUserInfo();
|
15 |
+
const { handleQuitTenantUser } = useHandleQuitUser();
|
16 |
|
17 |
const columns: TableProps<ITenant>['columns'] = [
|
18 |
{
|
|
|
48 |
</Button>
|
49 |
</Space>
|
50 |
);
|
51 |
+
} else if (role === TenantRole.Normal && user.id !== tenant_id) {
|
52 |
+
return (
|
53 |
+
<Button
|
54 |
+
type="link"
|
55 |
+
onClick={handleQuitTenantUser(user.id, tenant_id)}
|
56 |
+
>
|
57 |
+
{t('setting.quit')}
|
58 |
+
</Button>
|
59 |
+
);
|
60 |
}
|
61 |
},
|
62 |
},
|