Add a reusable website link generator and polish static image cards.
Editors can pick product, store, blog, portfolio, or video category links, and image cards expose compact info/link actions without dumping URLs in the footer. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
b9024ad77a
commit
e0e68de30f
@@ -0,0 +1,37 @@
|
||||
import { getBusinessDomain } from '../lib/config'
|
||||
|
||||
export type WebsiteLinkKind = 'product' | 'storeItem' | 'blog' | 'portfolio' | 'video'
|
||||
|
||||
export const WEBSITE_LINK_KINDS: WebsiteLinkKind[] = [
|
||||
'product',
|
||||
'storeItem',
|
||||
'blog',
|
||||
'portfolio',
|
||||
'video',
|
||||
]
|
||||
|
||||
export const WEBSITE_LINK_KIND_PATH: Record<WebsiteLinkKind, string> = {
|
||||
product: '/products',
|
||||
storeItem: '/store-items',
|
||||
blog: '/blogs',
|
||||
portfolio: '/portfolios',
|
||||
video: '/videos',
|
||||
}
|
||||
|
||||
export function getWebsiteOrigin(domain = getBusinessDomain()): string {
|
||||
const host = domain.trim().replace(/^https?:\/\//i, '').replace(/\/$/, '')
|
||||
const protocol = window.location.protocol === 'http:' ? 'http:' : 'https:'
|
||||
return `${protocol}//${host}`
|
||||
}
|
||||
|
||||
export function buildWebsiteCategoryUrl(
|
||||
kind: WebsiteLinkKind,
|
||||
category: { id: string; slug?: string | null },
|
||||
domain = getBusinessDomain(),
|
||||
): string {
|
||||
const path = WEBSITE_LINK_KIND_PATH[kind]
|
||||
const query = category.slug
|
||||
? `category=${encodeURIComponent(category.slug)}`
|
||||
: `categoryId=${encodeURIComponent(category.id)}`
|
||||
return `${getWebsiteOrigin(domain)}${path}?${query}`
|
||||
}
|
||||
Reference in New Issue
Block a user