Changed code according to requirements

This commit is contained in:
bansh_dml 2025-01-02 09:52:40 +05:30
parent e477179500
commit 6337befab6
2 changed files with 19 additions and 22 deletions

View file

@ -3,39 +3,40 @@ import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import UserList from "./components/UserList"; import UserList from "./components/UserList";
import UserDetails from "./components/UserDetails"; import UserDetails from "./components/UserDetails";
import EditUser from "./components/EditUser"; import EditUser from "./components/EditUser";
import './styles.css'; // Importing the CSS file import './styles.css';
const RouteWithProps = ({ Component, props }) => {
return <Component {...props} />;
};
const App = () => { const App = () => {
const [users, setUsers] = useState([]); const [users, setUsers] = useState([]);
// Load users from localStorage on component mount
useEffect(() => { useEffect(() => {
const storedUsers = JSON.parse(localStorage.getItem("users")) || []; const storedUsers = JSON.parse(localStorage.getItem("users")) || [];
setUsers(storedUsers); setUsers(storedUsers);
}, []); }, []);
// Save users to localStorage whenever they change
useEffect(() => { useEffect(() => {
localStorage.setItem("users", JSON.stringify(users)); localStorage.setItem("users", JSON.stringify(users));
}, [users]); }, [users]);
const sharedProps = { users, setUsers };
return ( return (
<Router> <Router>
<Routes> <Routes>
{/* User List Route */}
<Route <Route
path="/" path="/"
element={<UserList users={users} setUsers={setUsers} />} element={<RouteWithProps Component={UserList} props={sharedProps} />}
/> />
{/* User Details Route */}
<Route <Route
path="/user/:id" path="/user/:id"
element={<UserDetails users={users} setUsers={setUsers} />} element={<RouteWithProps Component={UserDetails} props={sharedProps} />}
/> />
{/* Edit User Route */}
<Route <Route
path="/edit/:id" path="/edit/:id"
element={<EditUser users={users} setUsers={setUsers} />} element={<RouteWithProps Component={EditUser} props={sharedProps} />}
/> />
</Routes> </Routes>
</Router> </Router>

View file

@ -5,19 +5,15 @@ const UserDetails = ({ users, setUsers }) => {
const { id } = useParams(); const { id } = useParams();
const navigate = useNavigate(); const navigate = useNavigate();
const userId = parseInt(id, 10); // Ensure id is a number const userId = parseInt(id, 10);
const user = users.find((user) => user.id === userId); const user = users.find((user) => user.id === userId);
const handleDelete = () => { const handleDelete = () => {
console.log("Users before deletion:", users);
console.log("ID to delete:", userId);
const updatedUsers = users.filter((user) => user.id !== userId); const updatedUsers = users.filter((user) => user.id !== userId);
console.log("Users after deletion:", updatedUsers); setUsers([...updatedUsers]);
setUsers([...updatedUsers]); // Create a new reference
alert(`User with ID ${id} deleted.`); alert(`User with ID ${id} deleted.`);
navigate("/"); // Redirect to home navigate("/");
}; };
if (!user) { if (!user) {