mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
ready to test
Testing Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
// data/advertisements.data.js
|
||||
import { Megaphone, Image, BellRing, PanelRight } from "lucide-react";
|
||||
|
||||
// ─── Types ──────────────────────────────────────────────────────────────────
|
||||
// Drives: filter dropdown options, type badge label/icon on each card,
|
||||
// and which fields the Add/Edit form shows (hero needs headline/description/ctas,
|
||||
// banner/popup/sidebar are closer to image-only).
|
||||
|
||||
export const ADVERTISEMENT_TYPES = [
|
||||
{ value: "hero", label: "Hero", icon: Megaphone, description: "Large featured banner with headline, description, and CTAs" },
|
||||
{ value: "banner", label: "Banner", icon: Image, description: "Simple image banner" },
|
||||
{ value: "popup", label: "Popup", icon: BellRing, description: "Modal-style popup shown on page load" },
|
||||
{ value: "sidebar", label: "Sidebar", icon: PanelRight, description: "Compact image placed in a sidebar slot" },
|
||||
];
|
||||
|
||||
export const ADVERTISEMENT_TYPE_MAP = Object.fromEntries(
|
||||
ADVERTISEMENT_TYPES.map((t) => [t.value, t])
|
||||
);
|
||||
|
||||
// Types that show the rich content fields (headline, description, CTAs) in the form
|
||||
export const RICH_CONTENT_TYPES = ["hero"];
|
||||
|
||||
// ─── Statuses ───────────────────────────────────────────────────────────────
|
||||
// Drives: filter dropdown options, status badge color/label on each card.
|
||||
|
||||
export const ADVERTISEMENT_STATUSES = [
|
||||
{ value: "draft", label: "Draft", badgeClass: "bg-muted text-muted-foreground" },
|
||||
{ value: "active", label: "Active", badgeClass: "bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-400" },
|
||||
{ value: "scheduled", label: "Scheduled", badgeClass: "bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-400" },
|
||||
{ value: "expired", label: "Expired", badgeClass: "bg-muted text-muted-foreground" },
|
||||
{ value: "archived", label: "Archived", badgeClass: "bg-muted text-muted-foreground" },
|
||||
];
|
||||
|
||||
export const ADVERTISEMENT_STATUS_MAP = Object.fromEntries(
|
||||
ADVERTISEMENT_STATUSES.map((s) => [s.value, s])
|
||||
);
|
||||
|
||||
// Max number of CTAs allowed per advertisement (matches backend normalizeCtas slice(0,2))
|
||||
export const MAX_CTAS = 2;
|
||||
Reference in New Issue
Block a user