admin role

This commit is contained in:
unknown
2025-05-29 00:13:03 +07:00
parent 4f5810c666
commit 02313d1056
3 changed files with 44 additions and 33 deletions

View File

@ -2,7 +2,7 @@ import { Button } from '@/components/ui/button';
import { UserPlus } from 'lucide-react';
import { KeenIcon, useDataGrid } from '@/components';
import { DefaultTooltip } from '@/components';
import { useState } from 'react';
import { useState,useEffect } from 'react';
import { toast } from 'sonner';
import {
Select,
@ -13,7 +13,8 @@ import {
} from '@/components/ui/select';
import { getAuth } from '@/auth';
import { apiConfig } from '@/config/api.config';
const API_URL = apiConfig.service_customer;
import { useAuthContext } from '@/auth';
const API_URL = apiConfig.service_customer;
interface ListToolbarProps {
createMember: () => void;
@ -27,7 +28,20 @@ const ListToolbar = ({ createMember, onReload, isReloading, groups }: ListToolba
const { table, reload } = useDataGrid();
const [searchValue, setSearchValue] = useState<string>();
const [typeSearchValue, setSearchTypeValue] = useState<string>();
const [isAdmin, setisAdmin] = useState(false);
const { getUser } = useAuthContext();
useEffect(() => {
getUserData();
}, []);
async function getUserData() {
let userlogin:any = await getUser();
let userloginrole = userlogin?.data?.role?.name;
if (userloginrole === 'Admin') setisAdmin(true);
}
const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {
e.preventDefault()
// setSearchValue(e.target.value)
@ -127,30 +141,33 @@ const ListToolbar = ({ createMember, onReload, isReloading, groups }: ListToolba
</form>
<div className="flex gap-3 items-center">
<Button
variant="outline"
className="h-7.5"
onClick={async () => {
const filters = generateExportFilters(groupFilter, typeSearchValue, searchValue);
const result = await exporDataToExcel(filters);
if (result) {
const url = window.URL.createObjectURL(result.blob);
const a = document.createElement('a');
a.href = url;
a.download = result.filename;
a.click();
window.URL.revokeObjectURL(url);
} else {
toast.error('Failed to export data');
}
}}
>
Export Data
</Button>
<Button variant="outline" className="h-7.5 text-[0.8rem]" onClick={createMember}>
Add Data
</Button>
{ (!isAdmin) ? (
<>
<Button
variant="outline"
className="h-7.5"
onClick={async () => {
const filters = generateExportFilters(groupFilter, typeSearchValue, searchValue);
const result = await exporDataToExcel(filters);
if (result) {
const url = window.URL.createObjectURL(result.blob);
const a = document.createElement('a');
a.href = url;
a.download = result.filename;
a.click();
window.URL.revokeObjectURL(url);
} else {
toast.error('Failed to export data');
}
}}
>
Export Data
</Button>
<Button variant="outline" className="h-7.5 text-[0.8rem]" onClick={createMember}>Add Data</Button>
</>
) : ('') }
<DefaultTooltip title={isReloading ? 'Refreshing...' : 'Refresh'} placement={'top'}>
<Button
variant="outline"