history order status

This commit is contained in:
Samandar Turgunboyev
2025-11-03 17:56:48 +05:00
parent 9803edc478
commit c6c01a4607
19 changed files with 1122 additions and 46 deletions

View File

@@ -15,6 +15,7 @@ import {
import AddNews from "@/pages/news/ui/AddNews";
import News from "@/pages/news/ui/News";
import NewsCategory from "@/pages/news/ui/NewsCategory";
import WithdrawRequestsList from "@/pages/payout-request/ui/PayoutRequest";
import Page from "@/pages/profile/ui/Profile";
import Seo from "@/pages/seo/ui/Seo";
import SiteBannerAdmin from "@/pages/site-banner/ui/Banner";
@@ -39,14 +40,9 @@ import { Sidebar } from "@/widgets/sidebar/ui/Sidebar";
import { useWelcomeStore } from "@/widgets/welcome/lib/hook";
import Welcome from "@/widgets/welcome/ui/welcome";
import { useQuery } from "@tanstack/react-query";
import { Loader2 } from "lucide-react";
import { useEffect } from "react";
import {
Navigate,
Route,
Routes,
useLocation,
useNavigate,
} from "react-router-dom";
import { Route, Routes, useLocation, useNavigate } from "react-router-dom";
const App = () => {
const token = getAuthToken();
@@ -54,9 +50,9 @@ const App = () => {
const location = useLocation();
const { setOpenModal } = useWelcomeStore();
const { data: user } = useQuery({
const { data: user, isLoading } = useQuery({
queryKey: ["get_me"],
queryFn: () => getMe(),
queryFn: getMe,
select: (data) => data.data.data,
enabled: !!token,
});
@@ -64,19 +60,7 @@ const App = () => {
const hideSidebarPaths = ["/login"];
const shouldShowSidebar = !hideSidebarPaths.includes(location.pathname);
useEffect(() => {
if (token && user) {
if (location.pathname === "/") {
if (user.role === "moderator") navigate("/user");
else if (user.role === "tour_admin") navigate("/profile");
else if (user.role === "buxgalter") navigate("/finance");
}
} else if (!token) {
navigate("/login");
}
}, [token, user]);
// 🔹 Faqat userda ism yoki familiya yoq bolsa Welcome modalni ochamiz
// ✅ Modalni boshqarish
useEffect(() => {
if (
user &&
@@ -88,7 +72,39 @@ const App = () => {
} else {
setOpenModal(false);
}
}, [user, location.pathname]);
}, [user, location.pathname, setOpenModal]);
useEffect(() => {
if (!token) {
navigate("/login", { replace: true });
return;
}
if (!user) return;
if (location.pathname === "/") {
if (user.role === "tour_admin") {
navigate("/profile", { replace: true });
} else if (user.role === "moderator") {
navigate("/user", { replace: true });
} else if (user.role === "buxgalter") {
navigate("/finance", { replace: true });
} else {
navigate("/login", { replace: true });
}
}
}, [token, user, location.pathname, navigate]);
if (!token) {
return <Login />;
}
if (isLoading) {
return (
<div className="flex items-center justify-center min-h-screen bg-gray-900 text-white">
<Loader2 className="animate-spin w-10 h-10 text-cyan-400" />
</div>
);
}
return (
<div className="flex max-lg:flex-col bg-gray-900">
@@ -100,11 +116,9 @@ const App = () => {
shouldShowSidebar ? "lg:ml-64" : "ml-0",
)}
>
{/* ✅ Welcome faqat login sahifasida korinmaydi */}
{location.pathname !== "/login" && <Welcome />}
<Routes>
<Route path="/" element={<Navigate to={"/user"} />} />
<Route path="/user" element={<UserList />} />
<Route path="/login" element={<Login />} />
<Route path="/profile" element={<Page />} />
@@ -115,6 +129,12 @@ const App = () => {
<Route path="/agencies/:id" element={<AgencyDetail />} />
<Route path="/agency/:id/edit" element={<EditAgecy />} />
<Route path="/tours/:id" element={<TourDetail />} />
<Route
path="/withdraw/list"
element={
<WithdrawRequestsList user={user ? user.role : "moderator"} />
}
/>
<Route path="/employees" element={<Employees />} />
<Route
path="/finance"