feat: update creatives

This commit is contained in:
ivannoskov
2026-01-07 15:54:31 +03:00
parent 073be940b5
commit 7e0c9e368e

View File

@@ -63,6 +63,14 @@ import {
} from "@/components/ui/tooltip";
import { Checkbox } from "@/components/ui/checkbox";
import { Label } from "@/components/ui/label";
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
import { BOT_USERNAME } from "@/lib/utils/constants";
import type { Creative, CreativeAnalyticsItem } from "@/lib/types/api";
// ============================================================================
@@ -125,6 +133,7 @@ export default function CreativesPage() {
const [analyticsData, setAnalyticsData] = useState<CreativeAnalyticsItem[]>([]);
const [loading, setLoading] = useState(true);
const [loadingAnalytics, setLoadingAnalytics] = useState(false);
const [showCreateDialog, setShowCreateDialog] = useState(false);
const [search, setSearch] = useState("");
const [includeArchived, setIncludeArchived] = useState(false);
const [viewMode, setViewMode] = useState<"table" | "grid">("table");
@@ -260,11 +269,9 @@ export default function CreativesPage() {
</Button>
</div>
{canWrite && (
<Button asChild>
<Link href={`/dashboard/${workspaceId}/creatives/new`}>
<Plus className="h-4 w-4 mr-2" />
Создать креатив
</Link>
<Button onClick={() => setShowCreateDialog(true)}>
<Plus className="h-4 w-4 mr-2" />
Создать креатив
</Button>
)}
</div>
@@ -307,11 +314,9 @@ export default function CreativesPage() {
: "Создайте первый креатив для начала работы"}
</p>
{canWrite && !search && (
<Button asChild>
<Link href={`/dashboard/${workspaceId}/creatives/new`}>
<Plus className="h-4 w-4 mr-2" />
Создать креатив
</Link>
<Button onClick={() => setShowCreateDialog(true)}>
<Plus className="h-4 w-4 mr-2" />
Создать креатив
</Button>
)}
</CardContent>
@@ -583,6 +588,48 @@ export default function CreativesPage() {
</div>
)}
</div>
{/* Dialog для создания креатива */}
<Dialog open={showCreateDialog} onOpenChange={setShowCreateDialog}>
<DialogContent className="sm:max-w-md">
<DialogHeader>
<DialogTitle>Создание креатива</DialogTitle>
<DialogDescription>
Создание креатива работает через Telegram бота
</DialogDescription>
</DialogHeader>
<div className="space-y-4 py-4">
<div className="space-y-2">
<p className="text-sm text-muted-foreground">
Чтобы создать креатив:
</p>
<ol className="list-decimal list-inside space-y-2 text-sm">
<li>Перейдите в Telegram бота <strong>@{BOT_USERNAME}</strong></li>
<li>Откройте раздел <strong>Креативы</strong></li>
<li>Нажмите <strong>Создание</strong></li>
<li>Перешлите созданный креатив боту</li>
<li>Креатив автоматически отобразится на платформе</li>
</ol>
</div>
<div className="flex justify-end gap-2 pt-2">
<Button
variant="outline"
onClick={() => setShowCreateDialog(false)}
>
Понятно
</Button>
<Button
onClick={() => {
window.open(`https://t.me/${BOT_USERNAME}`, "_blank");
setShowCreateDialog(false);
}}
>
Открыть бота
</Button>
</div>
</div>
</DialogContent>
</Dialog>
</TooltipProvider>
);
}