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