mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-18 06:44:46 -07:00
Add game template
This commit is contained in:
parent
7bac725d64
commit
95f4e2f7cd
1 changed files with 76 additions and 0 deletions
76
src/pages/game/[...gamePath].astro
Normal file
76
src/pages/game/[...gamePath].astro
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
---
|
||||||
|
// Full Astro Component Syntax:
|
||||||
|
// https://docs.astro.build/core-concepts/astro-components/
|
||||||
|
|
||||||
|
import { DoesItAPI } from '~/helpers/api/client.js'
|
||||||
|
import { catchRedirectResponse } from '~/helpers/astro/request.js'
|
||||||
|
import {
|
||||||
|
getVideoImages,
|
||||||
|
ListingDetails
|
||||||
|
} from '~/helpers/listing-page.js'
|
||||||
|
import { getPathPartsFromAstroRequest } from '~/helpers/url.js'
|
||||||
|
|
||||||
|
import Layout from '~/src/layouts/default.astro'
|
||||||
|
import Listing from '~/src/components/default-listing.astro'
|
||||||
|
import VideoListing from '~/src/components/video-listing.astro'
|
||||||
|
|
||||||
|
|
||||||
|
const redirectResponse = await catchRedirectResponse( Astro )
|
||||||
|
|
||||||
|
if ( redirectResponse !== null ) {
|
||||||
|
return redirectResponse
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Get type and slug from the request path
|
||||||
|
// so that we don't have extra parts for
|
||||||
|
// urls like /:type/:slug/benchmarks
|
||||||
|
const {
|
||||||
|
pathSlug,
|
||||||
|
subSlug = null
|
||||||
|
} = getPathPartsFromAstroRequest( Astro.request )
|
||||||
|
|
||||||
|
const isBenchmarkPage = subSlug === 'benchmarks'
|
||||||
|
|
||||||
|
|
||||||
|
// Astro Request reference
|
||||||
|
// https://docs.astro.build/en/reference/api-reference/#astrorequests
|
||||||
|
|
||||||
|
// Request App data from API
|
||||||
|
const appListing = await DoesItAPI.game( pathSlug ).get()
|
||||||
|
|
||||||
|
const listingDetails = new ListingDetails( appListing )
|
||||||
|
|
||||||
|
const headOptions = listingDetails.headOptions
|
||||||
|
|
||||||
|
|
||||||
|
if ( isBenchmarkPage ) {
|
||||||
|
|
||||||
|
// Set the page title
|
||||||
|
headOptions.title = `${ listingDetails.api.name } Benchmarks for Apple Silicon - Does It ARM`
|
||||||
|
|
||||||
|
const { preloads } = getVideoImages( listingDetails.initialVideo )
|
||||||
|
|
||||||
|
// Add image preloads for video thumbnail
|
||||||
|
headOptions.link = [
|
||||||
|
...headOptions.link,
|
||||||
|
...preloads
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
---
|
||||||
|
<Layout
|
||||||
|
headOptions={ headOptions }
|
||||||
|
>
|
||||||
|
{ isBenchmarkPage ? (
|
||||||
|
<VideoListing
|
||||||
|
listing={ appListing }
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Listing
|
||||||
|
listing={ appListing }
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
</Layout>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue