| import { useSetModalState, useShowDeleteConfirm } from '@/hooks/common-hooks'; | |
| import { | |
| useAddTenantUser, | |
| useAgreeTenant, | |
| useDeleteTenantUser, | |
| useFetchUserInfo, | |
| } from '@/hooks/user-setting-hooks'; | |
| import { useCallback } from 'react'; | |
| import { useTranslation } from 'react-i18next'; | |
| export const useAddUser = () => { | |
| const { addTenantUser } = useAddTenantUser(); | |
| const { | |
| visible: addingTenantModalVisible, | |
| hideModal: hideAddingTenantModal, | |
| showModal: showAddingTenantModal, | |
| } = useSetModalState(); | |
| const handleAddUserOk = useCallback( | |
| async (email: string) => { | |
| const code = await addTenantUser(email); | |
| if (code === 0) { | |
| hideAddingTenantModal(); | |
| } | |
| }, | |
| [addTenantUser, hideAddingTenantModal], | |
| ); | |
| return { | |
| addingTenantModalVisible, | |
| hideAddingTenantModal, | |
| showAddingTenantModal, | |
| handleAddUserOk, | |
| }; | |
| }; | |
| export const useHandleDeleteUser = () => { | |
| const { deleteTenantUser, loading } = useDeleteTenantUser(); | |
| const showDeleteConfirm = useShowDeleteConfirm(); | |
| const { t } = useTranslation(); | |
| const handleDeleteTenantUser = (userId: string) => () => { | |
| showDeleteConfirm({ | |
| title: t('setting.sureDelete'), | |
| onOk: async () => { | |
| const code = await deleteTenantUser({ userId }); | |
| if (code === 0) { | |
| } | |
| return; | |
| }, | |
| }); | |
| }; | |
| return { handleDeleteTenantUser, loading }; | |
| }; | |
| export const useHandleAgreeTenant = () => { | |
| const { agreeTenant } = useAgreeTenant(); | |
| const { deleteTenantUser } = useDeleteTenantUser(); | |
| const { data: user } = useFetchUserInfo(); | |
| const handleAgree = (tenantId: string, isAgree: boolean) => () => { | |
| if (isAgree) { | |
| agreeTenant(tenantId); | |
| } else { | |
| deleteTenantUser({ tenantId, userId: user.id }); | |
| } | |
| }; | |
| return { handleAgree }; | |
| }; | |
| export const useHandleQuitUser = () => { | |
| const { deleteTenantUser, loading } = useDeleteTenantUser(); | |
| const showDeleteConfirm = useShowDeleteConfirm(); | |
| const { t } = useTranslation(); | |
| const handleQuitTenantUser = (userId: string, tenantId: string) => () => { | |
| showDeleteConfirm({ | |
| title: t('setting.sureQuit'), | |
| onOk: async () => { | |
| deleteTenantUser({ userId, tenantId }); | |
| }, | |
| }); | |
| }; | |
| return { handleQuitTenantUser, loading }; | |
| }; | |