Files
SMATEC-FRONTEND/src/pages/Manager/User/Permission/Assign.tsx

68 lines
1.9 KiB
TypeScript

import { ROUTE_MANAGER_USERS } from '@/constants/routes';
import { apiQueryUserById } from '@/services/master/UserController';
import { PageContainer } from '@ant-design/pro-components';
import { history, useParams } from '@umijs/max';
import { useEffect, useState } from 'react';
import AssignGroup from './components/AssignGroup';
import ShareThing from './components/ShareThing';
enum AssignTabsKey {
group = 'group',
device = 'device',
}
const AssignUserPage = () => {
const { userId } = useParams<{ userId: string }>();
const [userProfile, setUserProfile] =
useState<MasterModel.ProfileResponse | null>(null);
const [loading, setLoading] = useState<boolean>(false);
const [tabSelected, setTabSelected] = useState<AssignTabsKey>(
AssignTabsKey.group,
);
useEffect(() => {
const fetchUserProfile = async () => {
try {
setLoading(true);
const profile = await apiQueryUserById(userId || '');
setUserProfile(profile);
} catch (error) {
console.error('Failed to fetch user profile:', error);
} finally {
setLoading(false);
}
};
fetchUserProfile();
}, [userId]);
return (
<PageContainer
title={userProfile?.email}
header={{
onBack: () => history.push(ROUTE_MANAGER_USERS),
}}
loading={loading}
tabList={[
{
tab: 'Phân quyền đơn vị',
key: AssignTabsKey.group,
},
{
tab: 'Chia sẻ thiết bị',
key: AssignTabsKey.device,
},
]}
onTabChange={(key) => {
setTabSelected(key as AssignTabsKey);
}}
>
{tabSelected === AssignTabsKey.group && (
<AssignGroup user={userProfile} />
)}
{tabSelected === AssignTabsKey.device && (
<ShareThing user={userProfile} />
)}
</PageContainer>
);
};
export default AssignUserPage;