deadhead-space-freight-tycoon/apps/web/src/screens/Contracts.tsx

25 lines
951 B
TypeScript

import type { Contract } from "@deadhead/schema";
import { useState } from "react";
import { useLoadedPlayer } from "../state/actions";
import { Screen, ScreenHeader } from "../ui";
import { LocationBoards } from "./LocationBoards";
import { DispatchSheet } from "./DispatchSheet";
import { TutorialBoard } from "./TutorialBoard";
/** Contracts: the tutorial board during the tutorial, location boards afterwards. */
export function Contracts() {
const state = useLoadedPlayer();
const [selected, setSelected] = useState<Contract | null>(null);
return (
<Screen className="max-w-4xl">
<ScreenHeader
title="Contracts"
eyebrow={state.tutorial ? "Halvorsen Lunar Freight" : "Freight market"}
icon="jobs"
/>
{state.tutorial ? <TutorialBoard /> : <LocationBoards onSelect={setSelected} />}
{selected && <DispatchSheet contract={selected} onClose={() => setSelected(null)} />}
</Screen>
);
}