Compare commits

..
1 Commits
Author SHA1 Message Date
Amirmahdi 90e00bc08c feat: add is_premium 2026-06-16 17:19:46 +03:30
+18
View File
@@ -33,6 +33,7 @@ interface Scene {
name: string;
order?: number;
is_active?: boolean;
is_premium?: boolean;
theme_id?: number | null;
theme?: Theme | null;
}
@@ -75,6 +76,7 @@ export default function ScenesPage() {
const [order, setOrder] = useState("");
const [themeId, setThemeId] = useState("");
const [isActive, setIsActive] = useState(true);
const [isPremium, setIsPremium] = useState(false);
const [image, setImage] = useState<File | null>(null);
const [video, setVideo] = useState<File | null>(null);
const [sound, setSound] = useState<File | null>(null);
@@ -89,6 +91,7 @@ export default function ScenesPage() {
setOrder("");
setThemeId("");
setIsActive(true);
setIsPremium(false);
setImage(null);
setVideo(null);
setSound(null);
@@ -100,6 +103,7 @@ export default function ScenesPage() {
setOrder(row.order != null ? String(row.order) : "");
setThemeId(row.theme_id != null ? String(row.theme_id) : "");
setIsActive(!!row.is_active);
setIsPremium(!!row.is_premium);
setImage(null);
setVideo(null);
setSound(null);
@@ -116,6 +120,7 @@ export default function ScenesPage() {
order,
theme_id: themeId,
is_active: isActive,
is_premium: isPremium,
image,
video,
sound,
@@ -200,6 +205,17 @@ export default function ScenesPage() {
),
className: "w-28",
},
{
key: "is_premium",
header: "نوع",
render: (r) =>
r.is_premium ? (
<Badge tone="primary">ویژه</Badge>
) : (
<Badge tone="neutral">رایگان</Badge>
),
className: "w-24",
},
];
return (
@@ -303,6 +319,8 @@ export default function ScenesPage() {
<Switch checked={isActive} onChange={setIsActive} label="فعال" />
<Switch checked={isPremium} onChange={setIsPremium} label="ویژه (پولی)" />
<Field
label="تصویر"
hint={editing ? "در صورت عدم انتخاب، تصویر قبلی حفظ می‌شود." : undefined}