import type { ImageMetadata } from 'astro';

import alcove from '../content/reviews/alcove/hero.png';
import altTab from '../content/reviews/alt-tab/hero.jpg';
import esproP7 from '../content/reviews/espro-p7-french-press/hero.jpg';
import folderPeek from '../content/reviews/folder-peek/screenshot.png';
import hyperkey from '../content/reviews/hyperkey/hero.png';
import ice from '../content/reviews/ice/ice-bar.png';
import macMouseFix from '../content/reviews/mac-mouse-fix/studio-display.png';
import tot from '../content/reviews/tot/seven-dots.png';

import antinote from '../content/reviews/antinote/swipe.mp4';
import cotypist from '../content/reviews/cotypist/hero.mp4';
import dockdoor from '../content/reviews/dockdoor/alttab.mp4';
import fluxMarkdown from '../content/reviews/flux-markdown/demo.mp4';
import homerow from '../content/reviews/homerow/overlay.mp4';
import monocle from '../content/reviews/monocle/spotlight.mp4';
import shottr from '../content/reviews/shottr/text-erase.mp4';
import typewhisper from '../content/reviews/typewhisper/demo.mp4';

export type Hero =
  | { kind: 'image'; src: ImageMetadata }
  | { kind: 'video'; src: string };

export const heroes: Record<string, Hero | undefined> = {
  alcove: { kind: 'image', src: alcove },
  'alt-tab': { kind: 'image', src: altTab },
  'espro-p7-french-press': { kind: 'image', src: esproP7 },
  'folder-peek': { kind: 'image', src: folderPeek },
  hyperkey: { kind: 'image', src: hyperkey },
  ice: { kind: 'image', src: ice },
  'mac-mouse-fix': { kind: 'image', src: macMouseFix },
  tot: { kind: 'image', src: tot },
  antinote: { kind: 'video', src: antinote },
  cotypist: { kind: 'video', src: cotypist },
  dockdoor: { kind: 'video', src: dockdoor },
  'flux-markdown': { kind: 'video', src: fluxMarkdown },
  homerow: { kind: 'video', src: homerow },
  monocle: { kind: 'video', src: monocle },
  shottr: { kind: 'video', src: shottr },
  typewhisper: { kind: 'video', src: typewhisper },
};
