mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 08:11:13 -05:00
Refactor: Enhance OpenGraph descriptions
This commit is contained in:
27
api/ssrOG.ts
27
api/ssrOG.ts
@@ -30,6 +30,10 @@ interface ParkData {
|
|||||||
description?: string;
|
description?: string;
|
||||||
banner_image_id?: string;
|
banner_image_id?: string;
|
||||||
banner_image_url?: string;
|
banner_image_url?: string;
|
||||||
|
location?: {
|
||||||
|
city: string;
|
||||||
|
country: string;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
interface RideData {
|
interface RideData {
|
||||||
@@ -37,6 +41,9 @@ interface RideData {
|
|||||||
description?: string;
|
description?: string;
|
||||||
banner_image_id?: string;
|
banner_image_id?: string;
|
||||||
banner_image_url?: string;
|
banner_image_url?: string;
|
||||||
|
park?: {
|
||||||
|
name: string;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getPageData(pathname: string, fullUrl: string): Promise<PageData> {
|
async function getPageData(pathname: string, fullUrl: string): Promise<PageData> {
|
||||||
@@ -49,7 +56,7 @@ async function getPageData(pathname: string, fullUrl: string): Promise<PageData>
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
`${process.env.SUPABASE_URL}/rest/v1/parks?slug=eq.${slug}&select=name,description,banner_image_id,banner_image_url`,
|
`${process.env.SUPABASE_URL}/rest/v1/parks?slug=eq.${slug}&select=name,description,banner_image_id,banner_image_url,location(city,country)`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
'apikey': process.env.SUPABASE_ANON_KEY!,
|
'apikey': process.env.SUPABASE_ANON_KEY!,
|
||||||
@@ -67,9 +74,15 @@ async function getPageData(pathname: string, fullUrl: string): Promise<PageData>
|
|||||||
? `https://cdn.thrillwiki.com/images/${park.banner_image_id}/original`
|
? `https://cdn.thrillwiki.com/images/${park.banner_image_id}/original`
|
||||||
: (process.env.DEFAULT_OG_IMAGE || DEFAULT_FALLBACK_IMAGE));
|
: (process.env.DEFAULT_OG_IMAGE || DEFAULT_FALLBACK_IMAGE));
|
||||||
|
|
||||||
|
// Match client-side fallback logic
|
||||||
|
const description = park.description ??
|
||||||
|
(park.location
|
||||||
|
? `${park.name} - A theme park in ${park.location.city}, ${park.location.country}`
|
||||||
|
: `${park.name} - A theme park`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title: `${park.name} - ThrillWiki`,
|
title: `${park.name} - ThrillWiki`,
|
||||||
description: park.description || `Discover ${park.name} on ThrillWiki`,
|
description,
|
||||||
image: imageUrl,
|
image: imageUrl,
|
||||||
url: fullUrl,
|
url: fullUrl,
|
||||||
type: 'website'
|
type: 'website'
|
||||||
@@ -91,7 +104,7 @@ async function getPageData(pathname: string, fullUrl: string): Promise<PageData>
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
`${process.env.SUPABASE_URL}/rest/v1/rides?slug=eq.${rideSlug}&select=name,description,banner_image_id,banner_image_url`,
|
`${process.env.SUPABASE_URL}/rest/v1/rides?slug=eq.${rideSlug}&select=name,description,banner_image_id,banner_image_url,park(name)`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
'apikey': process.env.SUPABASE_ANON_KEY!,
|
'apikey': process.env.SUPABASE_ANON_KEY!,
|
||||||
@@ -109,9 +122,15 @@ async function getPageData(pathname: string, fullUrl: string): Promise<PageData>
|
|||||||
? `https://cdn.thrillwiki.com/images/${ride.banner_image_id}/original`
|
? `https://cdn.thrillwiki.com/images/${ride.banner_image_id}/original`
|
||||||
: (process.env.DEFAULT_OG_IMAGE || DEFAULT_FALLBACK_IMAGE));
|
: (process.env.DEFAULT_OG_IMAGE || DEFAULT_FALLBACK_IMAGE));
|
||||||
|
|
||||||
|
// Match client-side fallback logic
|
||||||
|
const description = ride.description ||
|
||||||
|
(ride.park?.name
|
||||||
|
? `${ride.name} - A thrilling ride at ${ride.park.name}`
|
||||||
|
: `${ride.name} - A thrilling ride`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title: `${ride.name} - ThrillWiki`,
|
title: `${ride.name} - ThrillWiki`,
|
||||||
description: ride.description || `Discover ${ride.name} on ThrillWiki`,
|
description,
|
||||||
image: imageUrl,
|
image: imageUrl,
|
||||||
url: fullUrl,
|
url: fullUrl,
|
||||||
type: 'website'
|
type: 'website'
|
||||||
|
|||||||
Reference in New Issue
Block a user