Добавлены кнопки навигации "Главная" и "Экономика" в боковую панель. Реализованы обработчики кликов для перехода на соответствующие страницы. Обновлены стили кнопок для улучшения пользовательского интерфейса в зависимости от состояния навигации.
This commit is contained in:
40
src/components/economics/economics-page-wrapper.tsx
Normal file
40
src/components/economics/economics-page-wrapper.tsx
Normal file
@ -0,0 +1,40 @@
|
||||
"use client";
|
||||
|
||||
import { useAuth } from "@/hooks/useAuth";
|
||||
import { SellerEconomicsPage } from "./seller-economics-page";
|
||||
import { FulfillmentEconomicsPage } from "./fulfillment-economics-page";
|
||||
import { WholesaleEconomicsPage } from "./wholesale-economics-page";
|
||||
import { LogistEconomicsPage } from "./logist-economics-page";
|
||||
|
||||
export function EconomicsPageWrapper() {
|
||||
const { user } = useAuth();
|
||||
|
||||
// Проверка доступа - только авторизованные пользователи с организацией
|
||||
if (!user?.organization?.type) {
|
||||
return (
|
||||
<div className="min-h-screen bg-gradient-smooth flex items-center justify-center">
|
||||
<div className="text-white">Ошибка: тип организации не определен</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
// Роутинг по типу организации
|
||||
switch (user.organization.type) {
|
||||
case "SELLER":
|
||||
return <SellerEconomicsPage />;
|
||||
case "FULFILLMENT":
|
||||
return <FulfillmentEconomicsPage />;
|
||||
case "WHOLESALE":
|
||||
return <WholesaleEconomicsPage />;
|
||||
case "LOGIST":
|
||||
return <LogistEconomicsPage />;
|
||||
default:
|
||||
return (
|
||||
<div className="min-h-screen bg-gradient-smooth flex items-center justify-center">
|
||||
<div className="text-white">
|
||||
Неподдерживаемый тип кабинета: {user.organization.type}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
59
src/components/economics/fulfillment-economics-page.tsx
Normal file
59
src/components/economics/fulfillment-economics-page.tsx
Normal file
@ -0,0 +1,59 @@
|
||||
"use client";
|
||||
|
||||
import { useAuth } from "@/hooks/useAuth";
|
||||
import { Sidebar } from "@/components/dashboard/sidebar";
|
||||
import { useSidebar } from "@/hooks/useSidebar";
|
||||
import { Card } from "@/components/ui/card";
|
||||
import { TrendingUp } from "lucide-react";
|
||||
|
||||
export function FulfillmentEconomicsPage() {
|
||||
const { user } = useAuth();
|
||||
const { getSidebarMargin } = useSidebar();
|
||||
|
||||
const getOrganizationName = () => {
|
||||
if (user?.organization?.name) {
|
||||
return user.organization.name;
|
||||
}
|
||||
if (user?.organization?.fullName) {
|
||||
return user.organization.fullName;
|
||||
}
|
||||
return "Вашей организации";
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="h-screen flex overflow-hidden">
|
||||
<Sidebar />
|
||||
<main
|
||||
className={`flex-1 ${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300`}
|
||||
>
|
||||
<div className="p-8">
|
||||
{/* Заголовок страницы */}
|
||||
<div className="mb-8">
|
||||
<h1 className="text-3xl font-bold text-white mb-2">
|
||||
Экономика фулфилмента
|
||||
</h1>
|
||||
<p className="text-white/60">
|
||||
Финансовые показатели {getOrganizationName()}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* Карточка-заглушка */}
|
||||
<Card className="bg-white/10 backdrop-blur border-white/20 p-6">
|
||||
<div className="flex items-center space-x-3 mb-4">
|
||||
<TrendingUp className="h-8 w-8 text-purple-400" />
|
||||
<h3 className="text-xl font-semibold text-white">
|
||||
Экономические показатели
|
||||
</h3>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<p className="text-white font-medium">
|
||||
Раздел находится в разработке
|
||||
</p>
|
||||
<p className="text-white/60 text-sm">Будет добавлен позже</p>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
}
|
59
src/components/economics/logist-economics-page.tsx
Normal file
59
src/components/economics/logist-economics-page.tsx
Normal file
@ -0,0 +1,59 @@
|
||||
"use client";
|
||||
|
||||
import { useAuth } from "@/hooks/useAuth";
|
||||
import { Sidebar } from "@/components/dashboard/sidebar";
|
||||
import { useSidebar } from "@/hooks/useSidebar";
|
||||
import { Card } from "@/components/ui/card";
|
||||
import { Calculator } from "lucide-react";
|
||||
|
||||
export function LogistEconomicsPage() {
|
||||
const { user } = useAuth();
|
||||
const { getSidebarMargin } = useSidebar();
|
||||
|
||||
const getOrganizationName = () => {
|
||||
if (user?.organization?.name) {
|
||||
return user.organization.name;
|
||||
}
|
||||
if (user?.organization?.fullName) {
|
||||
return user.organization.fullName;
|
||||
}
|
||||
return "Вашей организации";
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="h-screen flex overflow-hidden">
|
||||
<Sidebar />
|
||||
<main
|
||||
className={`flex-1 ${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300`}
|
||||
>
|
||||
<div className="p-8">
|
||||
{/* Заголовок страницы */}
|
||||
<div className="mb-8">
|
||||
<h1 className="text-3xl font-bold text-white mb-2">
|
||||
Экономика логистики
|
||||
</h1>
|
||||
<p className="text-white/60">
|
||||
Финансовые показатели {getOrganizationName()}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* Карточка-заглушка */}
|
||||
<Card className="bg-white/10 backdrop-blur border-white/20 p-6">
|
||||
<div className="flex items-center space-x-3 mb-4">
|
||||
<Calculator className="h-8 w-8 text-orange-400" />
|
||||
<h3 className="text-xl font-semibold text-white">
|
||||
Экономические показатели
|
||||
</h3>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<p className="text-white font-medium">
|
||||
Раздел находится в разработке
|
||||
</p>
|
||||
<p className="text-white/60 text-sm">Будет добавлен позже</p>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
}
|
59
src/components/economics/seller-economics-page.tsx
Normal file
59
src/components/economics/seller-economics-page.tsx
Normal file
@ -0,0 +1,59 @@
|
||||
"use client";
|
||||
|
||||
import { useAuth } from "@/hooks/useAuth";
|
||||
import { Sidebar } from "@/components/dashboard/sidebar";
|
||||
import { useSidebar } from "@/hooks/useSidebar";
|
||||
import { Card } from "@/components/ui/card";
|
||||
import { DollarSign } from "lucide-react";
|
||||
|
||||
export function SellerEconomicsPage() {
|
||||
const { user } = useAuth();
|
||||
const { getSidebarMargin } = useSidebar();
|
||||
|
||||
const getOrganizationName = () => {
|
||||
if (user?.organization?.name) {
|
||||
return user.organization.name;
|
||||
}
|
||||
if (user?.organization?.fullName) {
|
||||
return user.organization.fullName;
|
||||
}
|
||||
return "Вашей организации";
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="h-screen flex overflow-hidden">
|
||||
<Sidebar />
|
||||
<main
|
||||
className={`flex-1 ${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300`}
|
||||
>
|
||||
<div className="p-8">
|
||||
{/* Заголовок страницы */}
|
||||
<div className="mb-8">
|
||||
<h1 className="text-3xl font-bold text-white mb-2">
|
||||
Экономика селлера
|
||||
</h1>
|
||||
<p className="text-white/60">
|
||||
Финансовые показатели {getOrganizationName()}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* Карточка-заглушка */}
|
||||
<Card className="bg-white/10 backdrop-blur border-white/20 p-6">
|
||||
<div className="flex items-center space-x-3 mb-4">
|
||||
<DollarSign className="h-8 w-8 text-green-400" />
|
||||
<h3 className="text-xl font-semibold text-white">
|
||||
Экономические показатели
|
||||
</h3>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<p className="text-white font-medium">
|
||||
Раздел находится в разработке
|
||||
</p>
|
||||
<p className="text-white/60 text-sm">Будет добавлен позже</p>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
}
|
59
src/components/economics/wholesale-economics-page.tsx
Normal file
59
src/components/economics/wholesale-economics-page.tsx
Normal file
@ -0,0 +1,59 @@
|
||||
"use client";
|
||||
|
||||
import { useAuth } from "@/hooks/useAuth";
|
||||
import { Sidebar } from "@/components/dashboard/sidebar";
|
||||
import { useSidebar } from "@/hooks/useSidebar";
|
||||
import { Card } from "@/components/ui/card";
|
||||
import { BarChart3 } from "lucide-react";
|
||||
|
||||
export function WholesaleEconomicsPage() {
|
||||
const { user } = useAuth();
|
||||
const { getSidebarMargin } = useSidebar();
|
||||
|
||||
const getOrganizationName = () => {
|
||||
if (user?.organization?.name) {
|
||||
return user.organization.name;
|
||||
}
|
||||
if (user?.organization?.fullName) {
|
||||
return user.organization.fullName;
|
||||
}
|
||||
return "Вашей организации";
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="h-screen flex overflow-hidden">
|
||||
<Sidebar />
|
||||
<main
|
||||
className={`flex-1 ${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300`}
|
||||
>
|
||||
<div className="p-8">
|
||||
{/* Заголовок страницы */}
|
||||
<div className="mb-8">
|
||||
<h1 className="text-3xl font-bold text-white mb-2">
|
||||
Экономика поставщика
|
||||
</h1>
|
||||
<p className="text-white/60">
|
||||
Финансовые показатели {getOrganizationName()}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* Карточка-заглушка */}
|
||||
<Card className="bg-white/10 backdrop-blur border-white/20 p-6">
|
||||
<div className="flex items-center space-x-3 mb-4">
|
||||
<BarChart3 className="h-8 w-8 text-blue-400" />
|
||||
<h3 className="text-xl font-semibold text-white">
|
||||
Экономические показатели
|
||||
</h3>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<p className="text-white font-medium">
|
||||
Раздел находится в разработке
|
||||
</p>
|
||||
<p className="text-white/60 text-sm">Будет добавлен позже</p>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user