changes shopping

This commit is contained in:
Evandro Fonseca Junior committed 2025-11-09 15:37:53 -03:00
1 parent 62ab5b2608
commit f4bc93bc8a
17 files changed
+2290 -1025

No files matched your search

+12 -12
View File
@@ -1,6 +1,7 @@
"use client";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { useRouter } from "next/navigation";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
@@ -46,9 +47,11 @@ export interface AdminItemsResponse {
interface AdminItemManagerProps {
initialData: AdminItemsResponse;
locale: string;
}
export function AdminItemManager({ initialData }: AdminItemManagerProps) {
export function AdminItemManager({ initialData, locale }: AdminItemManagerProps) {
const router = useRouter();
const [data, setData] = useState<AdminItemsResponse>(initialData);
const [loading, setLoading] = useState(false);
const [error, setError] = useState<string | null>(null);
@@ -61,7 +64,6 @@ export function AdminItemManager({ initialData }: AdminItemManagerProps) {
const pageSize = initialData.pageSize ?? 50;
const [modalOpen, setModalOpen] = useState(false);
const [modalMode, setModalMode] = useState<"create" | "edit">("create");
const [selectedItem, setSelectedItem] = useState<AdminItemRecord | null>(null);
const [isSubmitting, setIsSubmitting] = useState(false);
@@ -120,14 +122,7 @@ export function AdminItemManager({ initialData }: AdminItemManagerProps) {
return Array.from(set).sort((a, b) => a.localeCompare(b, "pt-BR", { sensitivity: "base" }));
}, [data.items]);
const openCreateModal = () => {
setModalMode("create");
setSelectedItem(null);
setModalOpen(true);
};
const openEditModal = (item: AdminItemRecord) => {
setModalMode("edit");
setSelectedItem(item);
setModalOpen(true);
};
@@ -135,7 +130,7 @@ export function AdminItemManager({ initialData }: AdminItemManagerProps) {
const handleSubmit = async (payload: ItemFormPayload) => {
setIsSubmitting(true);
try {
const method = modalMode === "edit" ? "PUT" : "POST";
const method = "PUT";
const body: Record<string, unknown> = {
id: payload.id,
name: payload.name,
@@ -194,7 +189,12 @@ export function AdminItemManager({ initialData }: AdminItemManagerProps) {
<Button variant="outline" size="sm" onClick={fetchItems} disabled={loading}>
<RefreshCw className="mr-2 h-4 w-4" /> Atualizar
</Button>
<Button size="sm" onClick={openCreateModal}>
<Button
size="sm"
onClick={() => {
router.push(`/${locale}/admin/items/new`);
}}
>
<Plus className="mr-2 h-4 w-4" /> Novo item
</Button>
</div>
@@ -394,7 +394,7 @@ export function AdminItemManager({ initialData }: AdminItemManagerProps) {
<ItemCreationModal
open={modalOpen}
onOpenChange={setModalOpen}
mode={modalMode}
mode="edit"
item={selectedItem ?? undefined}
categories={data.categories}
serverOptions={data.servers}