mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-15 06:35:20 -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