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 |
},
|