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