feat: minute adn logo

This commit is contained in:
2026-06-03 08:54:20 +03:30
parent 821b85d4fe
commit 7b8b8949b9
16 changed files with 58 additions and 24 deletions
+4 -4
View File
@@ -17,7 +17,7 @@ import {
Badge,
} from "@/components/ui";
import { EditIcon, PlusIcon, TrashIcon } from "@/components/icons";
import { formatDuration } from "@/lib/utils";
import { formatMinutes } from "@/lib/utils";
import { MediaPreview } from "@/components/MediaPreview";
import { ImagePicker } from "@/components/ImagePicker";
import { pickUrl, SOUND_KEYS, VIDEO_KEYS, IMAGE_KEYS } from "@/lib/media";
@@ -238,7 +238,7 @@ export default function MediaPage() {
{
key: "duration",
header: "مدت",
render: (r) => formatDuration(r.duration),
render: (r) => formatMinutes(r.duration),
},
{
key: "is_premium",
@@ -388,13 +388,13 @@ export default function MediaPage() {
/>
</Field>
<Field label="مدت (ثانیه)">
<Field label="مدت (دقیقه)">
<Input
type="number"
dir="ltr"
value={duration}
onChange={(e) => setDuration(e.target.value)}
placeholder="مثلاً ۳۰۰"
placeholder="مثلاً ۱۰"
/>
</Field>
+3 -3
View File
@@ -15,7 +15,7 @@ import {
PageHeader,
} from "@/components/ui";
import { EditIcon, PlusIcon, TrashIcon } from "@/components/icons";
import { formatDuration } from "@/lib/utils";
import { formatMinutes } from "@/lib/utils";
import { MediaPreview } from "@/components/MediaPreview";
import { ImagePicker } from "@/components/ImagePicker";
import { pickUrl, SOUND_KEYS, IMAGE_KEYS } from "@/lib/media";
@@ -166,7 +166,7 @@ export default function MusicTracksPage() {
{
key: "duration",
header: "مدت زمان",
render: (r) => formatDuration(r.duration),
render: (r) => formatMinutes(r.duration),
},
{
key: "type",
@@ -268,7 +268,7 @@ export default function MusicTracksPage() {
</Select>
</Field>
<Field label="مدت زمان (ثانیه)">
<Field label="مدت زمان (دقیقه)">
<Input
type="number"
value={duration}
+1 -1
View File
@@ -11,7 +11,7 @@ export default function DashboardHome() {
<div>
<PageHeader
title="خوش آمدید 👋"
subtitle="از طریق بخش‌های زیر، محتوای اپلیکیشن مدیتیشن را مدیریت کنید."
subtitle="از طریق بخش‌های زیر، محتوای اپلیکیشن آرام جان را مدیریت کنید."
/>
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
{sections.map((section) => {
+3
View File
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.2 KiB

+2 -2
View File
@@ -10,8 +10,8 @@ const vazir = Vazirmatn({
});
export const metadata: Metadata = {
title: "پنل مدیریت مدیتیشن",
description: "پنل مدیریت محتوای اپلیکیشن مدیتیشن",
title: "پنل مدیریت آرام جان",
description: "پنل مدیریت محتوای اپلیکیشن آرام جان",
};
export default function RootLayout({
+6 -4
View File
@@ -6,6 +6,7 @@ import { useAuth } from "@/lib/auth";
import { useToast } from "@/components/toast";
import { ApiError } from "@/lib/api";
import { Button, Field, Input } from "@/components/ui";
import { Logo } from "@/components/Logo";
export default function LoginPage() {
const { login, token, ready } = useAuth();
@@ -41,11 +42,12 @@ export default function LoginPage() {
<div className="flex min-h-screen items-center justify-center bg-gradient-to-bl from-[#eef1fb] to-[#f6f3fb] p-4">
<div className="w-full max-w-md rounded-3xl border border-border bg-surface p-8 shadow-lg">
<div className="mb-8 text-center">
<div className="mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-2xl bg-primary-soft text-3xl">
🧘
<div className="mx-auto mb-4 flex h-20 w-20 items-center justify-center rounded-2xl bg-primary-soft">
<Logo className="h-14 w-14 text-primary" />
</div>
<h1 className="text-2xl font-bold text-foreground">پنل مدیریت مدیتیشن</h1>
<p className="mt-2 text-sm text-muted">
<h1 className="text-2xl font-bold text-foreground">آرام جان</h1>
<p className="mt-1 text-sm font-medium text-primary">پنل مدیریت</p>
<p className="mt-3 text-sm text-muted">
برای ورود، نام کاربری و رمز عبور خود را وارد کنید.
</p>
</div>