Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
140 lines
2.7 KiB
TypeScript
140 lines
2.7 KiB
TypeScript
import becomeHostPageData from '@/content/becomeHostPage.json'
|
|
|
|
export type BecomeHostBenefitIcon = 'dollar' | 'payment' | 'users' | 'bell'
|
|
|
|
export interface BecomeHostStat {
|
|
value: string
|
|
label: string
|
|
}
|
|
|
|
export interface BecomeHostBenefit {
|
|
icon: BecomeHostBenefitIcon
|
|
title: string
|
|
subtitle: string
|
|
}
|
|
|
|
export interface BecomeHostTimelineItem {
|
|
label: string
|
|
title: string
|
|
description: string
|
|
mockTitle: string
|
|
mockBadge: string
|
|
mockType: 'lines' | 'avatars'
|
|
}
|
|
|
|
export interface BecomeHostFeatureItem {
|
|
title: string
|
|
description: string
|
|
visualType: 'location' | 'coupon' | 'change'
|
|
}
|
|
|
|
export interface BecomeHostFaqItem {
|
|
question: string
|
|
answer: string
|
|
}
|
|
|
|
export interface BecomeHostPricingPoint {
|
|
title: string
|
|
subtitle: string
|
|
}
|
|
|
|
export interface BecomeHostPage {
|
|
eyebrow: string
|
|
metaTitle: string
|
|
metaDescription: string
|
|
hero: {
|
|
title: string
|
|
lead: string[]
|
|
ctaLabel: string
|
|
ctaHref: string
|
|
ctaNote: string
|
|
stats: BecomeHostStat[]
|
|
benefits: BecomeHostBenefit[]
|
|
}
|
|
pain: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
bubbles: string[]
|
|
closing: string
|
|
}
|
|
attendance: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
lead: string
|
|
emphasis: string
|
|
notification: { title: string; body: string; meta: string }
|
|
punches: [string, string]
|
|
}
|
|
timeline: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
lead: string
|
|
items: BecomeHostTimelineItem[]
|
|
}
|
|
features: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
items: BecomeHostFeatureItem[]
|
|
}
|
|
dashboard: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
lead: string
|
|
summaryTitle: string
|
|
summaryBadge: string
|
|
stats: BecomeHostStat[]
|
|
nav: string[]
|
|
footnote: string
|
|
ctaLabel: string
|
|
ctaHref: string
|
|
}
|
|
pricing: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
percent: string
|
|
subtitle: string
|
|
points: BecomeHostPricingPoint[]
|
|
}
|
|
steps: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
items: { title: string; description: string }[]
|
|
}
|
|
guide: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
lead: string
|
|
items: BecomeHostFaqItem[]
|
|
}
|
|
faq: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
items: BecomeHostFaqItem[]
|
|
}
|
|
final: {
|
|
eyebrow: string
|
|
title: string
|
|
titleHighlight: string
|
|
lead: string
|
|
ctaLabel: string
|
|
ctaHref: string
|
|
ctaNote: string
|
|
}
|
|
stickyCta: {
|
|
priceLabel: string
|
|
priceNote: string
|
|
buttonLabel: string
|
|
}
|
|
}
|
|
|
|
export const becomeHostPage = becomeHostPageData as BecomeHostPage
|