diff --git a/app/(main)/login/page.tsx b/app/(main)/login/page.tsx index 9322440..b801294 100644 --- a/app/(main)/login/page.tsx +++ b/app/(main)/login/page.tsx @@ -1,9 +1,5 @@ "use client"; -<<<<<<< HEAD -======= -import LoginForm from "@/components/organisms/forms/LoginForm"; ->>>>>>> main import { SHOP_INFO } from "@/lib/constants"; import LoginForm from "@/components/organisms/forms/LoginForm"; import Image from "next/image"; @@ -32,11 +28,7 @@ export default function LoginPage() { Đăng nhập vào hệ thống

-<<<<<<< HEAD -======= - ->>>>>>> main {/* Login Form */} diff --git a/app/(main)/page.tsx b/app/(main)/page.tsx index 7f75db5..705cfbc 100644 --- a/app/(main)/page.tsx +++ b/app/(main)/page.tsx @@ -1,15 +1,8 @@ "use client"; -<<<<<<< HEAD import { CategorySidebar } from "@/components/organisms/navigation"; import { ProductGrid } from "@/components/organisms/product-grid"; import { SearchBar } from "@/components/molecules/search-bar"; -======= -import { SearchBar } from "@/components/molecules/search-bar"; -import { CategorySidebar } from "@/components/organisms/navigation"; -import { ProductGrid } from "@/components/organisms/product-grid"; -import { MENU_CATEGORIES } from "@/lib/constants"; ->>>>>>> main import { useMenu } from "@/lib/menu-context"; import { MENU_CATEGORIES } from "@/lib/constants"; import { useEffect, useState } from "react"; @@ -79,14 +72,10 @@ export default function Home() { {/* ── Product grid (organism handles mobile category menu + grid) ── */} -<<<<<<< HEAD -======= - ->>>>>>> main ); diff --git a/app/(main)/payment/page.tsx b/app/(main)/payment/page.tsx index 193e66a..f9377f4 100644 --- a/app/(main)/payment/page.tsx +++ b/app/(main)/payment/page.tsx @@ -75,11 +75,7 @@ export default function PaymentPage() {
@@ -237,30 +232,22 @@ export default function RegisterPage() { {/* Buttons */}
{/* Submit Button */} -<<<<<<< HEAD - {/* Back Button */} -<<<<<<< HEAD -
diff --git a/app/(manager)/manager/analytics/page.tsx b/app/(manager)/manager/analytics/page.tsx index 09b32d4..c0d738e 100644 --- a/app/(manager)/manager/analytics/page.tsx +++ b/app/(manager)/manager/analytics/page.tsx @@ -8,15 +8,11 @@ import { SummaryCard, } from "@/components/organisms/analytics"; import type { PieSlice } from "@/components/organisms/analytics"; -<<<<<<< HEAD -import { calcChange, formatCurrency, formatCurrencyFull } from "@/lib/analytics-utils"; -======= import { calcChange, formatCurrency, formatCurrencyFull, } from "@/lib/analytics-utils"; ->>>>>>> main import { MENU_CATEGORIES, MOCK_PRODUCT_SALES, @@ -39,10 +35,6 @@ const PERIOD_LABELS: Record = { }; const CATEGORY_COLORS = [ -<<<<<<< HEAD - "#6F4E37", "#C8973A", "#A0785A", "#8B6914", "#D4A96A", - "#4A3728", "#F0D9A8", "#A08060", "#3D2B1F", -======= "#6F4E37", "#C8973A", "#A0785A", @@ -52,7 +44,6 @@ const CATEGORY_COLORS = [ "#F0D9A8", "#A08060", "#3D2B1F", ->>>>>>> main ]; const REVENUE_MAP: Record = { @@ -67,13 +58,8 @@ type ChartType = (typeof CHART_TYPES)[number]; const CHART_META: Record = { line: { icon: "fa-chart-line", label: "Line" }, -<<<<<<< HEAD - bar: { icon: "fa-chart-bar", label: "Bar" }, - pie: { icon: "fa-chart-pie", label: "Pie" }, -======= bar: { icon: "fa-chart-bar", label: "Bar" }, pie: { icon: "fa-chart-pie", label: "Pie" }, ->>>>>>> main }; // ─── Category filter select ─────────────────────────────────────────────────── @@ -99,13 +85,9 @@ function CategorySelect({ > {categories.map((c) => ( -<<<<<<< HEAD - -======= ->>>>>>> main ))}
@@ -124,47 +106,28 @@ export default function AnalyticsPage() { // Split into halves for bar comparison const half = Math.floor(revenueData.length / 2); -<<<<<<< HEAD - const barCurrent = revenueData.slice(half); -======= const barCurrent = revenueData.slice(half); ->>>>>>> main const barPrevious = revenueData.slice(0, half).slice(0, barCurrent.length); // Filtered product sales const filteredSales = useMemo( -<<<<<<< HEAD - () => categoryFilter === "all" - ? MOCK_PRODUCT_SALES - : MOCK_PRODUCT_SALES.filter((p) => p.category === categoryFilter), -======= () => categoryFilter === "all" ? MOCK_PRODUCT_SALES : MOCK_PRODUCT_SALES.filter((p) => p.category === categoryFilter), ->>>>>>> main [categoryFilter], ); // Summary stats const totalRevenue = revenueData.reduce((s, d) => s + d.revenue, 0); -<<<<<<< HEAD - const totalOrders = revenueData.reduce((s, d) => s + d.orders, 0); - const totalProfit = filteredSales.reduce((s, d) => s + d.profit, 0); -======= const totalOrders = revenueData.reduce((s, d) => s + d.orders, 0); const totalProfit = filteredSales.reduce((s, d) => s + d.profit, 0); ->>>>>>> main const avgOrderValue = totalOrders > 0 ? totalRevenue / totalOrders : 0; // Period-over-period comparisons const curRevenue = barCurrent.reduce((s, d) => s + d.revenue, 0); const prevRevenue = barPrevious.reduce((s, d) => s + d.revenue, 0); -<<<<<<< HEAD - const curOrders = barCurrent.reduce((s, d) => s + d.orders, 0); -======= const curOrders = barCurrent.reduce((s, d) => s + d.orders, 0); ->>>>>>> main const prevOrders = barPrevious.reduce((s, d) => s + d.orders, 0); const revComp = calcChange(curRevenue, prevRevenue); const ordComp = calcChange(curOrders, prevOrders); @@ -193,13 +156,6 @@ export default function AnalyticsPage() { // Totals for summary row const filteredRevenue = filteredSales.reduce((s, d) => s + d.revenue, 0); -<<<<<<< HEAD - const filteredProfit = filteredSales.reduce((s, d) => s + d.profit, 0); - const filteredUnits = filteredSales.reduce((s, d) => s + d.unitsSold, 0); - const avgMargin = filteredSales.length > 0 - ? filteredSales.reduce((s, d) => s + d.profitMargin, 0) / filteredSales.length - : 0; -======= const filteredProfit = filteredSales.reduce((s, d) => s + d.profit, 0); const filteredUnits = filteredSales.reduce((s, d) => s + d.unitsSold, 0); const avgMargin = @@ -207,7 +163,6 @@ export default function AnalyticsPage() { ? filteredSales.reduce((s, d) => s + d.profitMargin, 0) / filteredSales.length : 0; ->>>>>>> main return (
@@ -228,13 +183,9 @@ export default function AnalyticsPage() {

Thống kê & Phân tích tài chính

-<<<<<<< HEAD -

Financial Analytics Dashboard

-=======

Financial Analytics Dashboard

->>>>>>> main
@@ -259,17 +210,12 @@ export default function AnalyticsPage() { onChange={(e) => setPeriod(e.target.value as AnalyticsPeriod)} className="text-foreground block rounded-lg border border-(--color-border) bg-(--color-bg-card) px-2 py-1.5 text-xs sm:hidden" > -<<<<<<< HEAD - {(Object.entries(PERIOD_LABELS) as [AnalyticsPeriod, string][]).map(([k, v]) => ( - -======= {( Object.entries(PERIOD_LABELS) as [AnalyticsPeriod, string][] ).map(([k, v]) => ( ->>>>>>> main ))} @@ -283,20 +229,6 @@ export default function AnalyticsPage() { Tổng quan
-<<<<<<< HEAD - - - - -======= ->>>>>>> main
@@ -356,13 +287,9 @@ export default function AnalyticsPage() { }`} > -<<<<<<< HEAD - {CHART_META[t].label} -======= {CHART_META[t].label} ->>>>>>> main ))} @@ -370,22 +297,14 @@ export default function AnalyticsPage() { {activeChart === "line" && ( <> -<<<<<<< HEAD -

Doanh thu theo thời gian — {PERIOD_LABELS[period]}

-=======

Doanh thu theo thời gian — {PERIOD_LABELS[period]}

->>>>>>> main )} {activeChart === "bar" && ( <> -<<<<<<< HEAD -

So sánh doanh thu nửa đầu và nửa sau kỳ hiện tại

- -=======

So sánh doanh thu nửa đầu và nửa sau kỳ hiện tại

@@ -394,18 +313,13 @@ export default function AnalyticsPage() { previous={barPrevious} height={220} /> ->>>>>>> main )} {activeChart === "pie" && ( <> -<<<<<<< HEAD -

Tỷ trọng doanh thu theo danh mục sản phẩm

-=======

Tỷ trọng doanh thu theo danh mục sản phẩm

->>>>>>> main )} @@ -418,14 +332,10 @@ export default function AnalyticsPage() { Top sản phẩm bán chạy -<<<<<<< HEAD - -======= ->>>>>>> main
{top5.map((p, i) => { @@ -437,17 +347,6 @@ export default function AnalyticsPage() { {i + 1} -<<<<<<< HEAD - {p.name} -
-
- {p.unitsSold} ly - {formatCurrency(p.revenue)} -
- -
-
-======= {p.name} @@ -466,7 +365,6 @@ export default function AnalyticsPage() { className="h-full rounded-full bg-(--color-primary) transition-all duration-500" style={{ width: `${pct}%` }} /> ->>>>>>> main
); @@ -481,12 +379,6 @@ export default function AnalyticsPage() { Phân tích chi tiết sản phẩm -<<<<<<< HEAD - - -

- Click vào tiêu đề cột để sắp xếp. Hiển thị {filteredSales.length} sản phẩm. -======= Click vào tiêu đề cột để sắp xếp. Hiển thị {filteredSales.length}{" "} sản phẩm. ->>>>>>> main

{/* Summary row */}
-<<<<<<< HEAD - Tổng doanh thu: - {formatCurrencyFull(filteredRevenue)} -
-
- Tổng lợi nhuận: - {formatCurrencyFull(filteredProfit)} -
-
- Tổng sản lượng: - {filteredUnits.toLocaleString()} ly -
-
- Biên LN trung bình: - {avgMargin.toFixed(1)}% -======= Tổng doanh thu:{" "} @@ -549,7 +424,6 @@ export default function AnalyticsPage() { {avgMargin.toFixed(1)}% ->>>>>>> main
diff --git a/app/(manager)/manager/page.tsx b/app/(manager)/manager/page.tsx index 90afeb2..1f6b7f5 100644 --- a/app/(manager)/manager/page.tsx +++ b/app/(manager)/manager/page.tsx @@ -8,19 +8,11 @@ import { import { useAuth } from "@/lib/auth-context"; import { useManager } from "@/lib/manager-context"; import Link from "next/link"; -<<<<<<< HEAD -import { useState } from "react"; -======= ->>>>>>> main export default function ManagerPage() { const { user, logout } = useAuth(); const { activeTab, setActiveTab, products, combos, categories } = useManager(); -<<<<<<< HEAD - const [mobileNavOpen, setMobileNavOpen] = useState(false); -======= ->>>>>>> main const tabs = [ { @@ -98,7 +90,6 @@ export default function ManagerPage() { Mới -<<<<<<< HEAD -======= ->>>>>>> main @@ -163,71 +152,6 @@ export default function ManagerPage() {

-<<<<<<< HEAD - {/* Mobile dropdown navigation */} -
- - - {mobileNavOpen && ( -
- {tabs.map((tab) => ( - - ))} - - setMobileNavOpen(false)} - className="mb-1 flex items-center gap-2 rounded-lg px-3 py-2 text-xs font-medium text-(--color-primary) no-underline transition hover:bg-(--color-accent-light)/70" - > - - Tài chính - - - setMobileNavOpen(false)} - className="flex items-center gap-2 rounded-lg px-3 py-2 text-xs font-medium text-(--color-primary) no-underline transition hover:bg-(--color-accent-light)/70" - > - - Ca làm - -
- )} -======= {/* Mobile tabs */}
{tabs.map((tab) => ( @@ -251,7 +175,6 @@ export default function ManagerPage() { Tài chính ->>>>>>> main
{/* Desktop actions */}