rune
Version:
CLI to upload your games to Rune
42 lines (41 loc) • 2.17 kB
JavaScript
import { Box, Text } from "ink";
import TextInputImport from "ink-text-input";
import React, { useState, useCallback } from "react";
import { Step } from "../../components/Step.js";
import { useInviteGameDev } from "../../gql/useInviteGameDev.js";
import { formatApolloError } from "../../lib/formatApolloError.js";
// @ts-ignore
const TextInput = TextInputImport.default;
export function InviteMemberStep({ gameId, memberType, }) {
const [userTag, setUserTag] = useState("");
const { inviteGameDev, inviteGameDevLoading, inviteGameDevError, isGameDevInvited, } = useInviteGameDev();
const onSubmituserTag = useCallback(() => {
if (!userTag)
return;
inviteGameDev({
gameId,
userTag,
type: memberType,
});
}, [gameId, userTag, memberType, inviteGameDev]);
return (React.createElement(Step, { status: inviteGameDevLoading
? "waiting"
: inviteGameDevError
? "error"
: isGameDevInvited
? "success"
: "userInput", label: inviteGameDevLoading
? "Inviting new member"
: inviteGameDevError
? formatApolloError(inviteGameDevError, {
"[tango][INVITE_GAME_DEV_FAILED_INVALID_USER_TAG]": "Rune Tag is invalid. Verify Rune Tag and try again",
"[tango][INVITE_GAME_DEV_FAILED_NO_EMAIL]": "Invitee does not have an email",
"[tango][INVITE_GAME_DEV_FAILED_BLOCKED_EMAIL]": "Invitee's email is blocked",
"[tango][INVITE_GAME_DEV_FAILED_ALREADY_INVITED]": "Member was already invited",
})
: isGameDevInvited
? "New member invited"
: "Enter Rune Tag (it's on their profile)", view: (status) => (React.createElement(Box, { flexDirection: "column" }, (status === "userInput" || status === "error") && (React.createElement(Box, null,
React.createElement(Text, null, "Rune Tag: "),
React.createElement(TextInput, { value: userTag, onChange: setUserTag, onSubmit: onSubmituserTag }))))) }));
}