UNPKG

rune

Version:

CLI to upload your games to Rune

42 lines (41 loc) 2.54 kB
import { Text, Box } from "ink"; import React, { useMemo } from "react"; import { gameDevItemLabel } from "../../lib/gameDevItemLabel.js"; export function Details({ game, me, }) { const { gameDevs, gameDevMe } = useMemo(() => { const gameDevs = game?.gameDevs.nodes; const gameDevMe = gameDevs?.find((gameDev) => gameDev.userId === me?.devId); return { gameDevs, gameDevMe }; }, [game, me?.devId]); const { draftVersion, inReviewVersion, activeVersion } = useMemo(() => { // gameVersions are already ordered by most recent first // Hence .find will take the most recent per status return { draftVersion: game.gameVersions.nodes.find((n) => n.status === "DRAFT"), inReviewVersion: game.gameVersions.nodes.find((n) => n.status === "IN_REVIEW"), activeVersion: game.gameVersions.nodes.find((n) => n.status === "ACTIVE"), }; }, [game.gameVersions.nodes]); if (!game) return React.createElement(React.Fragment, null); return (React.createElement(Box, { flexDirection: "column" }, React.createElement(Box, { flexDirection: "column", borderStyle: "single" }, React.createElement(Text, { bold: true }, game.title)), React.createElement(Box, { flexDirection: "column" }, React.createElement(DetailsRow, { name: "Description", value: game.description }), React.createElement(DetailsRow, { name: "Team", value: gameDevs ?.map((gameDev) => gameDevItemLabel({ gameDev })) .join(", ") }), React.createElement(DetailsRow, { name: "Your role", value: gameDevMe ? gameDevMe.type : "PLAYER" }), draftVersion && draftVersion.gameVersionId > (activeVersion?.gameVersionId ?? 0) && (React.createElement(DetailsRow, { name: "Draft version", value: draftVersion.gameVersionId.toString() })), inReviewVersion && inReviewVersion.gameVersionId > (activeVersion?.gameVersionId ?? 0) && (React.createElement(DetailsRow, { name: "Review version", value: inReviewVersion.gameVersionId.toString() })), React.createElement(DetailsRow, { name: "Active version", value: activeVersion ? activeVersion.gameVersionId.toString() : "-" })))); } const DetailsRow = ({ name, value, }) => (React.createElement(Box, { flexDirection: "row" }, React.createElement(Text, { bold: true }, name, ": "), React.createElement(Text, null, value)));