impress-2020/src/app/UserOutfitsPage.js

55 lines
1.1 KiB
JavaScript
Raw Normal View History

import React from "react";
import { Box, Center } from "@chakra-ui/react";
import gql from "graphql-tag";
import { useQuery } from "@apollo/client";
import { ErrorMessage, Heading1 } from "./util";
import HangerSpinner from "./components/HangerSpinner";
import useRequireLogin from "./components/useRequireLogin";
function UserOutfitsPage() {
return (
<Box>
<Heading1>Your outfits</Heading1>
<UserOutfitsPageContent />
</Box>
);
}
function UserOutfitsPageContent() {
const { isLoading: userLoading } = useRequireLogin();
const { loading: queryLoading, error, data } = useQuery(
gql`
query UserOutfitsPageContent {
currentUser {
outfits {
id
}
}
}
`,
{ skip: userLoading }
);
if (userLoading || queryLoading) {
return (
<Center>
<HangerSpinner />
</Center>
);
}
if (error) {
return <ErrorMessage>Error loading outfits: {error.message}</ErrorMessage>;
}
return (
<code>
<pre>Data: {JSON.stringify(data)}</pre>
</code>
);
}
export default UserOutfitsPage;