import React from "react"; import { Box, Breadcrumb, BreadcrumbItem, BreadcrumbLink, Center, Flex, Wrap, WrapItem, } from "@chakra-ui/react"; import { ChevronRightIcon } from "@chakra-ui/icons"; import { Heading1, MajorErrorMessage } from "./util"; import { gql, useQuery } from "@apollo/client"; import { Link, useParams } from "react-router-dom"; import { HashLink } from "react-router-hash-link"; import HangerSpinner from "./components/HangerSpinner"; import MarkdownAndSafeHTML from "./components/MarkdownAndSafeHTML"; import ItemCard from "./components/ItemCard"; import WIPCallout from "./components/WIPCallout"; function UserItemListPage() { const { listId } = useParams(); const { loading, error, data } = useQuery( gql` query UserItemListPage($listId: ID!) { closetList(id: $listId) { id name description ownsOrWantsItems creator { id username } items { id isNc isPb name thumbnailUrl } } } `, { variables: { listId }, context: { sendAuth: true } } ); if (loading) { return (
); } if (error) { return ; } const closetList = data?.closetList; if (!closetList) { return ; } const { creator, ownsOrWantsItems } = closetList; let linkBackText; let linkBackPath; if (ownsOrWantsItems === "OWNS") { linkBackText = `Items ${creator.username} owns`; linkBackPath = `/user/${creator.id}/lists#owned-items`; } else if (ownsOrWantsItems === "WANTS") { linkBackText = `Items ${creator.username} wants`; linkBackPath = `/user/${creator.id}/lists#wanted-items`; } else { throw new Error(`unexpected ownsOrWantsItems value: ${ownsOrWantsItems}`); } return ( } > {creator.username}'s lists {linkBackText} {closetList.name} {closetList.description && ( {closetList.description} )} ); } function ClosetListContents({ closetList }) { const sortedItems = [...closetList.items].sort((a, b) => a.name.localeCompare(b.name) ); const tradeMatchingMode = "hide-all"; // TODO return ( {sortedItems.length > 0 ? ( {sortedItems.map((item) => ( ))} ) : ( This list is empty! )} ); } export default UserItemListPage;