import { PageProps, RouteContext } from "$fresh/server.ts"; import { MainLayout } from "@components/layouts/main.tsx"; import { ReviewResource } from "@lib/marka/schema.ts"; import { removeImage, renderMarkdown } from "@lib/markdown.ts"; import { KMenu } from "@islands/KMenu.tsx"; import { RedirectSearchHandler } from "@islands/Search.tsx"; import { Recommendations } from "@islands/Recommendations.tsx"; import PageHero from "@components/PageHero.tsx"; import { Star } from "@components/Stars.tsx"; import { MetaTags } from "@components/MetaTags.tsx"; import { parseRating } from "@lib/helpers.ts"; import { fetchResource } from "@lib/marka/index.ts"; export default async function Greet( props: PageProps<{ movie: ReviewResource; session: Record }>, ctx: RouteContext, ) { const movie = await fetchResource( `movies/${ctx.params.name}.md`, ); const session = ctx.state.session; if (!movie) { return ctx.renderNotFound(); } const { author, datePublished, reviewBody = "", reviewRating } = movie.content; const content = renderMarkdown( removeImage(reviewBody, movie.content.image), ); const rating = reviewRating?.ratingValue && parseRating(reviewRating.ratingValue); return ( ${movie.name}`} context={movie}> {session && ( )} {movie?.content?.itemReviewed?.name || movie?.name} {rating && } {movie.name && ( )}
{reviewBody?.length > 80 && (

Review

)}
      
); }