"use client"; import { useState } from "react"; import { HelpCircle } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { AssetGallery } from "@/components/asset-gallery"; import { PostizPushModal } from "@/components/postiz-push-modal"; export default function GlobalAssetsPage() { const [pushModalIds, setPushModalIds] = useState(null); const [helpOpen, setHelpOpen] = useState(false); return (

Asset Library

setPushModalIds(ids)} /> {pushModalIds && ( setPushModalIds(null)} /> )} Asset Library Guide Everything you can do with your generated assets.

Review & Approve

Every asset starts as a draft. Use Approve or Reject to triage. Select multiple assets with checkboxes for bulk actions.

Repurpose

Take any image and instantly resize it for other platforms — Instagram Feed, Stories, TikTok, Nextdoor. Sharp handles the crop locally (no AI cost). If the platform changes, the caption is automatically re-toned to match the new platform's voice.

Spawn Variations

Pick a winning image and generate N new ads that keep the same visual style and CTA but explore different hook angles. The AI uses the original as a reference image for visual consistency. Great for A/B testing — find what resonates, then make more of it.

Push to Postiz

Select approved assets and schedule them for publishing via Postiz. Pick a date/time and they'll be queued to the right platform channel automatically.

Filter & Sort

Use the dropdowns to filter by platform, type (image/video/copy), or status. Sort by newest, oldest, name, platform, or type. Use the search box to find assets by filename or metadata.

Asset Lineage

Repurposed and variation assets show "Derived from: original_file.png" so you can always trace back to the source. This builds a family tree of your best-performing content.

); }