Skip to content

Commit

Permalink
main
Browse files Browse the repository at this point in the history
  • Loading branch information
abdiaxatov committed Jul 30, 2024
1 parent a6168eb commit b5d134a
Show file tree
Hide file tree
Showing 13 changed files with 331 additions and 354 deletions.
10 changes: 0 additions & 10 deletions src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import { onAuthStateChanged } from "firebase/auth";
import Home from "./pages/home";
import Login from "./pages/Login";
import Register from "./pages/Register";
import About from "./pages/About";
import Contact from "./pages/contact";
import TodoDetail from "./pages/TodoDetail";
import SelectedTodos from "./pages/SelectedTodos"; // Import the new page

Expand Down Expand Up @@ -50,14 +48,6 @@ function App() {
element: <Home />,
action: HomeAction,
},
{
path: "about",
element: <About />,
},
{
path: "contact",
element: <Contact />,
},
{
path: "todo-detail",
element: <TodoDetail />,
Expand Down
82 changes: 0 additions & 82 deletions src/components/EditModal.jsx

This file was deleted.

84 changes: 84 additions & 0 deletions src/components/EditTodoModal.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import { useState } from 'react';

const EditTodoModal = ({ todo, isEditing, onSave, onCancel }) => {
const [title, setTitle] = useState(todo?.title || '');
const [age, setAge] = useState(todo?.age || '');
const [familyName, setFamilyName] = useState(todo?.familyName || '');
const [email, setEmail] = useState(todo?.email || '');
const [passport, setPassport] = useState(todo?.passport || '');

const handleSubmit = (e) => {
e.preventDefault();
onSave({ ...todo, title, age, familyName, email, passport });
};

return (
isEditing && (
<div className="modal modal-open">
<div className="modal-box">
<form onSubmit={handleSubmit} className="flex flex-col gap-4">
<label className="text-lg">
<span className="font-bold">Sarlavha:</span>
<input
type="text"
value={title}
onChange={(e) => setTitle(e.target.value)}
className="input input-bordered w-full"
/>
</label>
<label className="text-lg">
<span className="font-bold">Yosh:</span>
<input
type="text"
value={age}
onChange={(e) => setAge(e.target.value)}
className="input input-bordered w-full"
/>
</label>
<label className="text-lg">
<span className="font-bold">Oila nomi:</span>
<input
type="text"
value={familyName}
onChange={(e) => setFamilyName(e.target.value)}
className="input input-bordered w-full"
/>
</label>
<label className="text-lg">
<span className="font-bold">Email:</span>
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
className="input input-bordered w-full"
/>
</label>
<label className="text-lg">
<span className="font-bold">Passport:</span>
<input
type="text"
value={passport}
onChange={(e) => setPassport(e.target.value)}
className="input input-bordered w-full"
/>
</label>
<div className="modal-action">
<button type="submit" className="btn btn-primary">
O'zgarishlarni saqlash
</button>
<button
type="button"
className="btn btn-secondary"
onClick={onCancel}
>
Bekor qilish
</button>
</div>
</form>
</div>
</div>
)
);
};

export default EditTodoModal;
145 changes: 43 additions & 102 deletions src/components/Navbar.jsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { useEffect, useState } from "react";
import { IoIosMoon, IoIosSunny } from "react-icons/io";
import { AiOutlineFileDone } from "react-icons/ai"; // Import an icon for Selected Todos
import { NavLink, useNavigate } from "react-router-dom";
import { CiLogout } from "react-icons/ci"; // Import an icon for Selected Todos
import { NavLink } from "react-router-dom";
import { signOut } from "firebase/auth";
import { FaHome } from "react-icons/fa";
import { useSelector, useDispatch } from "react-redux";
import { auth } from "../firebase/firebaseConfig";
import toast from "react-hot-toast";
Expand All @@ -16,8 +17,6 @@ function Navbar() {
const dispatch = useDispatch();
const { user } = useSelector((state) => state.user);
const [theme, setTheme] = useState(themeFromLocalStorage);
const navigate = useNavigate();
const selectedTodos = useSelector((state) => state.todos.selectedTodos); // Assume you have a todos slice managing selected todos

const handleOut = async () => {
try {
Expand All @@ -39,111 +38,53 @@ function Navbar() {
localStorage.setItem("theme", theme);
}, [theme]);

const goToSelectedTodosPage = () => {
navigate('/selected-todos', { state: { selectedTodos } });
};

return (
<div className="navbar bg-base-100 w-[1100px] m-auto w-full">
<div className="navbar-start">
<div className="dropdown">
<div tabIndex="0" role="button" className="btn btn-ghost lg:hidden">
<svg
xmlns="http://www.w3.org/2000/svg"
className="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="M4 6h16M4 12h8m-8 6h16"
/>
</svg>
</div>
<ul
tabIndex="0"
className="menu menu-sm dropdown-content bg-base-100 rounded-box z-[1] mt-3 w-52 p-2 shadow"
>
<ul className="p-2">
<li>
<NavLink to="/">Home</NavLink>
</li>
<li>
<NavLink to="/about">About</NavLink>
</li>
<li>
<NavLink to="/contact">Contact</NavLink>
</li>
</ul>
</ul>
</div>
<a className="btn btn-ghost text-xl">daisyUI</a>
</div>
<div className="navbar-center hidden lg:flex">
<ul className="menu menu-horizontal px-1">
<li>
<NavLink to="/">Home</NavLink>
</li>
<li>
<NavLink to="/about">About</NavLink>
</li>
<li>
<NavLink to="/contact">Contact</NavLink>
</li>
</ul>
</div>
<div className="navbar-end">
<button onClick={handleTheme} className="btn btn-ghost btn-circle">
{theme === "wireframe" ? <IoIosSunny /> : <IoIosMoon />}
</button>
<button onClick={goToSelectedTodosPage} className="btn btn-ghost btn-circle">
<AiOutlineFileDone size={24} />
</button>
{user ? (
<div className="dropdown dropdown-end">
<div className="flex items-center gap-5">
<h1>{user.displayName}</h1>
<div className="navbar bg-base-100 w-10 ">
<ul className="menu bg-base-200 rounded-box p-3">
<li className="mb-3">
<NavLink to="/">
<FaHome className="h-6 w-6"/>
</NavLink>
</li>
<li className="mb-3">
<button onClick={handleTheme} className="btn btn-ghost btn-circle">
{theme === "wireframe" ? <IoIosSunny className="w-6 h-6 " /> : <IoIosMoon className="w-6 h-6 "/>}
</button>
</li>

<div className="mt-2 mb-3">
{user ? (
<div className="">
{/* <h1></h1> */}
<div
tabIndex="0"
role="button"
className="btn btn-ghost btn-circle avatar"
className="tooltip tooltip-right"
data-tip={user.displayName}
>
<div className="w-10 rounded-full">
<img
alt="User Avatar"
src={
user.photoURL ||
"https://img.daisyui.com/images/stock/photo-1534528741775-53994a69daeb.jpg"
}
/>
<div tabIndex="0" role="button" className=" avatar">
<div className="w-10 rounded-full">
<img
alt="User Avatar"
src={
user.photoURL ||
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS-gukc7EnLg2lXrV35IoDl3SrhFbupHeJhuw&s "
}
/>
</div>
</div>
</div>
</div>
<ul
tabIndex="0"
className="menu menu-sm dropdown-content bg-base-100 rounded-box z-[1] mt-3 w-52 p-2 shadow"
>
<li>
<NavLink to="/profile">Profile</NavLink>
</li>
<li>
<NavLink to="/settings">Settings</NavLink>
</li>
<li>
<button onClick={handleOut}>Logout</button>
</li>
</ul>
</div>
) : (
<NavLink to="/login" className="btn btn-ghost">
Login
</NavLink>
)}
</div>
) : (
<NavLink to="/login" className="btn btn-ghost">
Login
</NavLink>
)}
</div>
<li>
<a className="btn btn-ghost btn-circle">
<CiLogout className="h-6 w-6" onClick={handleOut} />
</a>
</li>
</ul>
</div>
);
}
Expand Down
4 changes: 2 additions & 2 deletions src/layout/MainLayout.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import { Outlet } from "react-router-dom";
function MainLayout() {
return (
<>
<Navbar />
<main>
<main className="flex justify-between">
<Navbar />
<Outlet />
</main>
</>
Expand Down
9 changes: 0 additions & 9 deletions src/pages/About.jsx

This file was deleted.

Loading

0 comments on commit b5d134a

Please sign in to comment.