UNPKG

rune

Version:

CLI to upload your games to Rune

37 lines (36 loc) 2.27 kB
import { Box, Text } from "ink"; import open from "open"; import React, { useEffect, useState } from "react"; import { Choose } from "../components/Choose.js"; import { Step } from "../components/Step.js"; import { useDashboardMagicLink } from "../gql/useMagicDashboardLink.js"; import { formatApolloError } from "../lib/formatApolloError.js"; export function OpenDashboard() { const { createDashboardMagicLink, dashboardMagicLink, error } = useDashboardMagicLink(); const [status, setStatus] = useState("waiting"); useEffect(() => { createDashboardMagicLink({}); }, [createDashboardMagicLink]); return (React.createElement(Box, { flexDirection: "column" }, !error && !dashboardMagicLink && (React.createElement(Step, { status: "waiting", label: "Opening..." })), error && React.createElement(Text, { color: "red" }, formatApolloError(error, {})), !error && dashboardMagicLink && (React.createElement(React.Fragment, null, React.createElement(Text, null, "Dashboard link: ", React.createElement(Text, { color: "green" }, dashboardMagicLink)), status === "opened" ? (React.createElement(Step, { status: "success", label: "Dashboard opened" })) : status === "failedBrowser" ? (React.createElement(Step, { status: "error", label: "Failed to open your default browser. Please open the link manually" })) : status === "skipped" ? (React.createElement(Step, { status: "success", label: "Done." })) : (React.createElement(Step, { status: "userInput", label: "Open in default browser?", view: React.createElement(Choose, { options: ["Yes", "No"], onSubmit: (response) => { const shouldOpen = response === "Yes"; if (shouldOpen) { open(dashboardMagicLink) .then(() => { setStatus("opened"); }) .catch(() => { setStatus("failedBrowser"); }); } else { setStatus("skipped"); } } }) })))))); }