2024-09-25 22:20:47 +02:00
|
|
|
<script lang="ts">
|
|
|
|
import Select from "./Select.svelte"
|
2024-10-06 14:43:06 +02:00
|
|
|
import * as m from "@/paraglide/messages"
|
2024-10-20 12:05:32 +02:00
|
|
|
import CollapseList from "@/components/collapse/CollapseList.svelte"
|
2024-12-17 16:58:58 +00:00
|
|
|
import type { CollectionEntry } from "astro:content"
|
2024-09-28 15:33:31 +02:00
|
|
|
|
2024-12-17 16:58:58 +00:00
|
|
|
export let hardware: CollectionEntry<"hardware">[] = []
|
2024-09-28 15:33:31 +02:00
|
|
|
|
2024-10-06 14:43:06 +02:00
|
|
|
const hardwareOptions = hardware.map((item) => ({
|
|
|
|
key: item.id,
|
|
|
|
value: item.data.title
|
|
|
|
}))
|
|
|
|
|
|
|
|
let selectedHardwareKey: string = hardware[0].id
|
|
|
|
$: selectedHardware = hardware.find((item) => item.id === selectedHardwareKey)!
|
2024-09-25 22:20:47 +02:00
|
|
|
|
2024-10-20 12:05:32 +02:00
|
|
|
// TODO bind to component
|
2024-09-25 22:20:47 +02:00
|
|
|
function onChange({ detail }: CustomEvent<string>) {
|
2024-10-06 14:43:06 +02:00
|
|
|
selectedHardwareKey = detail
|
2024-09-25 22:20:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
2024-10-06 14:43:06 +02:00
|
|
|
<div class="px-2 max-w-[750px] sm:min-w-[750px] w-screen">
|
|
|
|
<h1 class="text-center">{m.hardware()}</h1>
|
|
|
|
<div>
|
|
|
|
<Select options={hardwareOptions} on:change={onChange} class="mx-auto w-max" />
|
|
|
|
</div>
|
|
|
|
<br />
|
|
|
|
|
2024-10-20 12:05:32 +02:00
|
|
|
<CollapseList items={selectedHardware.data.hardware} title={m.hardware()} />
|
|
|
|
<div class="my-2" />
|
2024-10-06 14:43:06 +02:00
|
|
|
{#if (selectedHardware.data.accessories)}
|
2024-10-20 12:05:32 +02:00
|
|
|
<CollapseList items={selectedHardware.data.accessories} title={m.accessories()} />
|
2024-10-06 14:43:06 +02:00
|
|
|
{/if}
|
2024-09-28 15:33:31 +02:00
|
|
|
</div>
|