diff --git a/src/APIs/ManageUsersAPIs/getUsersList.tsx b/src/APIs/ManageUsersAPIs/getUsersList.tsx
new file mode 100644
index 0000000..c9f9294
--- /dev/null
+++ b/src/APIs/ManageUsersAPIs/getUsersList.tsx
@@ -0,0 +1,19 @@
+import {useQuery} from '@tanstack/react-query'
+
+export const getUsersList = async()=>{
+ const response = await fetch(`http://localhost:8080/SonyMusicRights/users-list`);
+ if (!response.ok) {
+ throw new Error('Failed to get User list data');
+ }
+ const UserListData = await response.json()
+ return UserListData;
+}
+
+export const useGetUsersData = () => {
+ return useQuery(
+ {
+ queryKey: ['Users-list'],
+ queryFn: () => getUsersList(),
+ }
+ );
+}
\ No newline at end of file
diff --git a/src/App.tsx b/src/App.tsx
index bcc35e0..10cb92a 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -7,6 +7,8 @@ import { BrowserRouter as Router, Routes, Route, BrowserRouter} from 'react-rout
import Dashboard from './components/Dashboard';
import Projects from './components/projects/Projects';
import { ReactQueryDevtools} from 'react-query/devtools'
+import ManageUsers from './components/manage_users/ManageUsers';
+import EditableTable from './components/manage_users/demo';
function App() {
const queryClient = new QueryClient();
@@ -18,6 +20,8 @@ function App() {
} />
} />
+ } />
+ {/* } /> */}
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index 99948b5..0f63c8a 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -102,6 +102,10 @@ function Header() {
PROJECTS
+
@@ -152,6 +156,15 @@ function Header() {
>
PROJECTS
+
diff --git a/src/components/manage_users/ManageUsers.tsx b/src/components/manage_users/ManageUsers.tsx
new file mode 100644
index 0000000..30ba0d5
--- /dev/null
+++ b/src/components/manage_users/ManageUsers.tsx
@@ -0,0 +1,163 @@
+import React, { ChangeEvent, useEffect, useState } from "react";
+import { getUsersList, useGetUsersData } from "../../APIs/ManageUsersAPIs/getUsersList";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableContainer,
+ TableHead,
+ TableRow,
+ Paper,
+ Button,
+ IconButton,
+ TextField,
+ Dialog,
+ DialogTitle,
+ DialogContent,
+ DialogActions,
+} from '@mui/material';
+import DeleteIcon from '@mui/icons-material/Delete';
+import EditIcon from '@mui/icons-material/Edit';
+import AddIcon from '@mui/icons-material/Add';
+
+interface Row {
+ id: number;
+ name: string;
+ age: number;
+ }
+
+ const initialData: Row[] = [
+ { id: 1, name: 'Row 1', age: 25 },
+ { id: 2, name: 'Row 2', age: 30 },
+ ];
+
+export default function ManageUsers(){
+ const [manageUsersData,setManageUsersData] = useState()
+ const { data: manageUsersResponse, isLoading, isError } = useGetUsersData();
+ const [data, setData] = useState(initialData);
+ const [open, setOpen] = useState(false);
+ const [selectedRow, setSelectedRow] = useState({ id: 0, name: '', age: 0 });
+ const [newRow, setNewRow] = useState({ id: 0, name: '', age: 0 });
+
+ const handleEdit = (row: Row) => {
+ setSelectedRow(row);
+ setOpen(true);
+ };
+
+ const handleDelete = (id: number) => {
+ const updatedData = data.filter((row) => row.id !== id);
+ setData(updatedData);
+ };
+
+ const handleSave = () => {
+ if (selectedRow.id) {
+ const updatedData = data.map((row) => (row.id === selectedRow.id ? selectedRow : row));
+ setData(updatedData);
+ } else {
+ const id = data.length + 1;
+ setNewRow({ ...newRow, id });
+ setData([...data, { ...newRow, id }]);
+ }
+
+ setOpen(false);
+ setSelectedRow({ id: 0, name: '', age: 0 });
+ };
+
+ const handleOpen = () => {
+ setOpen(true);
+ };
+
+ const handleClose = () => {
+ setOpen(false);
+ setSelectedRow({ id: 0, name: '', age: 0 });
+ };
+
+ const handleChange = (e: ChangeEvent) => {
+ const { name, value } = e.target;
+ setSelectedRow({ ...selectedRow, [name]: value });
+ setNewRow({ ...newRow, [name]: value });
+ };
+
+
+
+ console.log(manageUsersResponse,"dsjhgfsdugf")
+ return(
+
+
+
+
+
+
+
+
+
+
+ } onClick={handleOpen}>
+ Add New Row
+
+
+ Name
+ Email Id
+ Last Login
+ Active
+
+
+
+ {manageUsersResponse && manageUsersResponse.map((row:any) => (
+
+
+ handleEdit(row)} aria-label="edit">
+
+
+ handleDelete(row.id)} aria-label="delete">
+
+
+
+ {row.username}
+ {row.email_id}
+ {row.last_login}
+ {row.active}
+
+
+ ))}
+
+
+
+
+
+
+
+
+ )
+}
\ No newline at end of file