import React from "react"; import gql from "graphql-tag"; import { useQuery } from "@apollo/client"; import { Box, Select, Switch } from "@chakra-ui/core"; import HangerSpinner from "../../components/HangerSpinner"; import Metadata, { MetadataLabel, MetadataValue } from "./Metadata"; function PosePickerSupport({ speciesId, colorId, pose, appearanceId, dispatchToOutfit, }) { const { loading, error, data } = useQuery( gql` query PosePickerSupport($speciesId: ID!, $colorId: ID!) { petAppearances(speciesId: $speciesId, colorId: $colorId) { id pose isGlitched layers { id zone { id label } } } happyMasc: petAppearance( speciesId: $speciesId colorId: $colorId pose: HAPPY_MASC ) { id } sadMasc: petAppearance( speciesId: $speciesId colorId: $colorId pose: SAD_MASC ) { id } sickMasc: petAppearance( speciesId: $speciesId colorId: $colorId pose: SICK_MASC ) { id } happyFem: petAppearance( speciesId: $speciesId colorId: $colorId pose: HAPPY_FEM ) { id } sadFem: petAppearance( speciesId: $speciesId colorId: $colorId pose: SAD_FEM ) { id } sickFem: petAppearance( speciesId: $speciesId colorId: $colorId pose: SICK_FEM ) { id } } `, { variables: { speciesId, colorId } } ); if (loading) { return ( ); } if (error) { return ( {error.message} ); } const canonicalAppearanceIdsByPose = { HAPPY_MASC: data.happyMasc?.id, SAD_MASC: data.sadMasc?.id, SICK_MASC: data.sickMasc?.id, HAPPY_FEM: data.happyFem?.id, SAD_FEM: data.sadFem?.id, SICK_FEM: data.sickFem?.id, }; const canonicalAppearanceIds = Object.values( canonicalAppearanceIdsByPose ).filter((id) => id); if (!appearanceId) { appearanceId = canonicalAppearanceIdsByPose[pose]; } const currentPetAppearance = data.petAppearances.find( (pa) => pa.id === appearanceId ); if (!currentPetAppearance) { return ( Pet appearance with ID {JSON.stringify(appearanceId)} not found ); } return ( DTI ID: {appearanceId} Pose: Zones: {currentPetAppearance.layers .map((l) => l.zone) .map((z) => `${z.label} (${z.id})`) .sort() .join(", ")} ); } export function PosePickerSupportSwitch({ isChecked, onChange }) { return ( 💖 ); } const POSE_NAMES = { HAPPY_MASC: "Happy Masc", SAD_MASC: "Sad Masc", SICK_MASC: "Sick Masc", HAPPY_FEM: "Happy Fem", SAD_FEM: "Sad Fem", SICK_FEM: "Sick Fem", UNCONVERTED: "Unconverted", UNKNOWN: "Unknown", }; export default PosePickerSupport;