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;