Files
2025-11-11 03:08:36 -03:00

87 lines
2.5 KiB
TypeScript

"use client";
import { useState } from "react";
import { AdminSubscriptionTab } from "@/components/admin/AdminSubscriptionTab";
import {
AdminItemManager,
type AdminItemsResponse,
} from "@/components/admin/items/AdminItemManager";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
interface AdminPanelTabsProps {
adminUser: {
subscription_tier?: {
name: string;
slug: string;
} | null;
username?: string;
email?: string;
} | null;
initialTiers: any[];
itemsData: AdminItemsResponse;
locale: string;
initialTab?: "overview" | "subscriptions" | "items";
}
export function AdminPanelTabs({
adminUser,
initialTiers,
itemsData,
locale,
initialTab = "overview",
}: AdminPanelTabsProps) {
const [activeTab, setActiveTab] = useState<
"overview" | "subscriptions" | "items"
>(initialTab);
return (
<Tabs
value={activeTab}
onValueChange={(value) => setActiveTab(value as typeof activeTab)}
className="space-y-6"
>
<TabsList>
<TabsTrigger value="overview">Visão Geral</TabsTrigger>
<TabsTrigger value="subscriptions">
Assinaturas & Permissões
</TabsTrigger>
<TabsTrigger value="items">Gerenciamento de Itens</TabsTrigger>
</TabsList>
<TabsContent value="overview" className="space-y-4">
<Card>
<CardHeader>
<CardTitle>
Bem-vindo, {adminUser?.username ?? "Administrador"}
</CardTitle>
</CardHeader>
<CardContent className="space-y-3 text-sm text-muted-foreground">
<p>
Utilize as abas acima para administrar planos de assinatura,
permissões e a curadoria de itens do marketplace. Esta área é
exclusiva para operadores autorizados.
</p>
<p>
Para solicitações críticas, lembre-se de registrar mudanças e
validar com a equipe responsável antes de disponibilizar aos
usuários finais.
</p>
</CardContent>
</Card>
</TabsContent>
<TabsContent value="subscriptions">
<AdminSubscriptionTab
initialTiers={initialTiers}
adminUser={adminUser}
/>
</TabsContent>
<TabsContent value="items">
<AdminItemManager initialData={itemsData} locale={locale} />
</TabsContent>
</Tabs>
);
}