diff --git a/src/app/App.js b/src/app/App.js
index 19dac47..ec997f4 100644
--- a/src/app/App.js
+++ b/src/app/App.js
@@ -12,6 +12,7 @@ import PageLayout from "./PageLayout";
const ItemsPage = loadable(() => import("./ItemsPage"));
const HomePage = loadable(() => import("./HomePage"));
+const ModelingPage = loadable(() => import("./ModelingPage"));
const WardrobePage = loadable(() => import("./WardrobePage"));
const theme = {
@@ -54,6 +55,11 @@ function App() {
+
+
+
+
+
diff --git a/src/app/ModelingPage.js b/src/app/ModelingPage.js
new file mode 100644
index 0000000..e8a4716
--- /dev/null
+++ b/src/app/ModelingPage.js
@@ -0,0 +1,66 @@
+import React from "react";
+import { Box } from "@chakra-ui/core";
+import gql from "graphql-tag";
+import { useQuery } from "@apollo/client";
+
+import HangerSpinner from "./components/HangerSpinner";
+import { Heading1 } from "./util";
+
+function ModelingPage() {
+ return (
+
+ Modeling Hub
+
+
+ );
+}
+
+function ItemModelsList() {
+ const { loading, error, data } = useQuery(gql`
+ query ModelingPage {
+ itemsThatNeedModels {
+ id
+ name
+ thumbnailUrl
+ speciesThatNeedModels {
+ id
+ name
+ }
+ }
+ }
+ `);
+
+ if (loading) {
+ return (
+
+
+
+ );
+ }
+
+ if (error) {
+ return {error.message};
+ }
+
+ const items = [...data.itemsThatNeedModels].sort((a, b) =>
+ a.name.localeCompare(b.name)
+ );
+
+ return (
+
+ {items.map((item) => (
+
+ ))}
+
+ );
+}
+
+function ItemModelCard({ item }) {
+ return (
+
+ {item.name}
+
+ );
+}
+
+export default ModelingPage;
diff --git a/src/app/components/HangerSpinner.js b/src/app/components/HangerSpinner.js
index b6be29d..0bae4a5 100644
--- a/src/app/components/HangerSpinner.js
+++ b/src/app/components/HangerSpinner.js
@@ -16,7 +16,9 @@ const HangerIcon = createIcon({
),
});
-function HangerSpinner(props) {
+function HangerSpinner({ size = "md", ...props }) {
+ const boxSize = { sm: "32px", md: "48px" }[size];
+
return (
<>
-
+
>
);