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