balibabu
Feat: Quit from jointed team #3759 (#3797)
e5dbc25
raw
history blame
2.3 kB
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 };
};