Add e-payment UI, checkout payment result, and legacy migrate domain lookup.

Wire Mellat settings in business dashboard, customer bank return page with payment details, and super-admin migrate modal domain confirmation.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-13 09:51:22 +03:30
co-authored by Cursor
parent a11f9643bb
commit cc94b929e0
54 changed files with 6415 additions and 96 deletions
+79
View File
@@ -0,0 +1,79 @@
import { Play, PlusCircle, FolderTree, Settings } from 'lucide-react'
import { SectionCard } from '../components/SectionCard'
import { Breadcrumbs } from '../components/Breadcrumbs'
import { PageTitle } from '../components/PageTitle'
import { useT } from '../i18n/useT'
import type { BusinessMessageKey } from '../i18n/messages'
import styles from '../components/PageContent.module.css'
const videoSections: {
icon: typeof Play
titleKey: BusinessMessageKey
descKey: BusinessMessageKey
linkKey: BusinessMessageKey
href: string
}[] = [
{
icon: Play,
titleKey: 'nav.videos.list',
descKey: 'video.card.list.desc',
linkKey: 'video.card.list.link',
href: '/videos/list',
},
{
icon: PlusCircle,
titleKey: 'nav.videos.new',
descKey: 'video.card.new.desc',
linkKey: 'video.card.new.link',
href: '/videos/new',
},
{
icon: FolderTree,
titleKey: 'video.card.categories.title',
descKey: 'video.card.categories.desc',
linkKey: 'video.card.categories.link',
href: '/videos/categories',
},
{
icon: Settings,
titleKey: 'nav.videos.settings',
descKey: 'video.card.settings.desc',
linkKey: 'video.card.settings.link',
href: '/videos/settings',
},
]
export function VideoPage() {
const t = useT()
return (
<main className={styles.content}>
<Breadcrumbs
items={[
{ label: 'Dashboard', href: '/' },
{ label: 'Content', href: '/content' },
{ label: 'Videos' },
]}
/>
<div className={styles.pageHeader}>
<div>
<PageTitle en="VIDEOS">{t('title.videos')}</PageTitle>
<p className={styles.pageSubtitle}>{t('video.page.subtitle')}</p>
</div>
</div>
<div className={styles.gridHome}>
{videoSections.map((section) => (
<SectionCard
key={section.href}
icon={section.icon}
title={t(section.titleKey)}
description={t(section.descKey)}
linkText={t(section.linkKey)}
href={section.href}
/>
))}
</div>
</main>
)
}