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

@ -4,7 +4,6 @@ import { apiConfig } from '@/config/api.config';
import axios, { AxiosResponse } from 'axios';
import html2canvas from 'html2canvas';
import { Helmet } from 'react-helmet';
import { Input } from '@/components/ui/input';
import {
DialogContent,
MenuItem,
@ -21,14 +20,9 @@ import {
Link
} from '@mui/material';
import { useState, useEffect, useRef } from 'react';
import CloseIcon from '@mui/icons-material/Close';
import Divider from '@mui/material/Divider';
import ConfirmDialog from '@/components/confirm';
import { toast } from 'sonner';
import { Container, DataGridLoader, DataGridProvider, LoaderTransparant } from '@/components';
import { ListToolBar } from './ListToolbar';
import { RefreshCw } from 'lucide-react';
import { setgroups } from 'process';
import { toAbsoluteUrl } from '@/utils';
const BASE_URL = apiConfig.service_customer;

View File

@ -149,7 +149,7 @@ export const getColumns = (handleUpdate: (data: any) => void): ColumnDef<AgentBa
const dataMembers = row.original;
return (
<button className="btn btn-sm btn-icon btn-clear btn-light" onClick={() => handleUpdate(dataMembers)}>
<KeenIcon icon="notepad-edit" />
<KeenIcon icon="eye" />
</button>
);
}

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"