From ec79ea277139b9f2e8706356c689147f60425b95 Mon Sep 17 00:00:00 2001 From: AmirmahdiNourkazemi Date: Wed, 1 Jul 2026 13:01:19 +0330 Subject: [PATCH] feat: add ispremium --- app/dashboard/music/playlists/page.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/dashboard/music/playlists/page.tsx b/app/dashboard/music/playlists/page.tsx index e87020b..b4e89e8 100644 --- a/app/dashboard/music/playlists/page.tsx +++ b/app/dashboard/music/playlists/page.tsx @@ -6,6 +6,7 @@ import { useList } from "@/lib/useResource"; import { useToast } from "@/components/toast"; import { DataTable, type Column } from "@/components/DataTable"; import { + Badge, Button, ConfirmDialog, Field, @@ -13,6 +14,7 @@ import { Textarea, Modal, PageHeader, + Switch, } from "@/components/ui"; import { EditIcon, PlusIcon, TrashIcon } from "@/components/icons"; import { ImagePicker } from "@/components/ImagePicker"; @@ -28,6 +30,7 @@ interface Playlist { image?: unknown; detail_image_id?: number | null; detail_image?: unknown; + is_premium?: boolean; } interface MusicCategory { @@ -53,6 +56,7 @@ export default function MusicPlaylistsPage() { const [imageFile, setImageFile] = useState(null); const [detailImageId, setDetailImageId] = useState(null); const [detailImageFile, setDetailImageFile] = useState(null); + const [isPremium, setIsPremium] = useState(false); const [deleting, setDeleting] = useState(null); const [removing, setRemoving] = useState(false); @@ -71,6 +75,7 @@ export default function MusicPlaylistsPage() { setImageFile(null); setDetailImageId(null); setDetailImageFile(null); + setIsPremium(false); setOpen(true); } function openEdit(row: Playlist) { @@ -83,6 +88,7 @@ export default function MusicPlaylistsPage() { setImageFile(null); setDetailImageId(row.detail_image_id ?? null); setDetailImageFile(null); + setIsPremium(row.is_premium ?? false); setOpen(true); } @@ -101,6 +107,7 @@ export default function MusicPlaylistsPage() { image: imageFile, detail_image_id: detailImageId, detail_image: detailImageFile, + is_premium: isPremium, }), }); toast.success("پلی‌لیست ویرایش شد."); @@ -117,6 +124,7 @@ export default function MusicPlaylistsPage() { image: imageFile, detail_image_id: detailImageId, detail_image: detailImageFile, + is_premium: isPremium, }), }); toast.success("پلی‌لیست افزوده شد."); @@ -161,6 +169,13 @@ export default function MusicPlaylistsPage() { header: "توضیحات", render: (r) => r.description ?? "—", }, + { + key: "is_premium", + header: "ویژه", + className: "w-20", + render: (r) => + r.is_premium ? ویژه : , + }, ]; return ( @@ -257,6 +272,8 @@ export default function MusicPlaylistsPage() { /> + + {!editing && ( <>