Skip to content

Kody is live

Watch the launch video — what Kody is, and why it exists.

← Public packages

@kentcdodds/package-app-kit

Design tokens, PWA install/update, About/version, cache helpers, and optional realtime notes sync for Kody package apps.

starter-remix/app/controllers/about.tsx

41 lines · 1.1 KB · TypeScript
/** @jsxRuntime automatic */
/** @jsxImportSource remix/ui */
import type { BuildAction } from 'remix/router'
import { readRecordedVersion } from '../../src/record-version.ts'
import { formatAboutPageData } from 'kody:@kentcdodds/package-app-kit/about'
import { render } from '../ui/render.tsx'
import { AppShell } from '../ui/layout.tsx'
import { AboutPanel } from '../ui/about-panel.tsx'
import { routes } from '../routes.ts'

export default {
	async handler(context) {
		const version = await readRecordedVersion()
		const about = formatAboutPageData({
			version,
			runningSha: version.sha,
			codeUrl: null,
		})

		return render(
			context,
			<AppShell page="about" heading="About">
				<AboutPanel
					sha={about.sha}
					shortSha={about.shortSha}
					message={about.message}
					publishedAt={about.publishedAt}
					committedAt={about.committedAt}
					codeUrl={about.codeUrl}
					runningSha={about.runningSha || about.sha}
					appId="__PACKAGE_ID__"
				/>
			</AppShell>,
			{
				page: 'about',
				title: 'About · __APP_TITLE__',
				runningSha: version.sha,
			},
		)
	},
} satisfies BuildAction<'ANY', typeof routes.about>