diff --git a/README.md b/README.md
index dd598c29..2050f366 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,7 @@ frameworks.
| [Houdini] ([Demo][demo32]) | An Houdini example with SvelteKit. |
| [Swift] | A native Swift (iOS & Mac) example. |
| [Swift with `swift-graphql`] | A native Swift (iOS & Mac) example using [swift-graphql](swift-graphql). |
+| [graphql-hooks] | This example demonstrates how to query from GraphCMS with graphql-hooks in Next.js. |
### UI Extensions
@@ -219,6 +220,7 @@ We've crafted a few example [UI extensions](https://graphcms.com/docs/ui-extensi
[swift-graphql]: https://github.com/maticzav/swift-graphql
[houdini]: with-houdini
[demo32]: https://graphcms-with-houdini.vercel.app
+[graphql-hooks]: with-graphql-hooks
diff --git a/with-graphql-hooks/.gitignore b/with-graphql-hooks/.gitignore
new file mode 100644
index 00000000..a612ccf3
--- /dev/null
+++ b/with-graphql-hooks/.gitignore
@@ -0,0 +1,25 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.next
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
\ No newline at end of file
diff --git a/with-graphql-hooks/README.md b/with-graphql-hooks/README.md
new file mode 100644
index 00000000..bb6690a0
--- /dev/null
+++ b/with-graphql-hooks/README.md
@@ -0,0 +1,31 @@
+# GraphCMS тип graphql-hooks
+
+[Join our Slack](https://slack.graphcms.com)
+
+This example demonstrates how to query from GraphCMS with `graphql-hooks` in Next.js.
+
+[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/GraphCMS/graphcms-examples/tree/master/with-graphql-hooks) [![Clone project](https://graphcms.com/button)](https://app.graphcms.com/clone/0ff23f7a41ce4da69a366ab299cc24d8)
+
+## How to Use
+
+### Download Manually
+
+```bash
+npx degit graphcms/graphcms-examples/with-graphql-hooks with-graphql-hooks
+```
+
+Install & Run:
+
+```bash
+cd with-graphql-hooks
+npm install
+npm run dev
+# or
+cd with-graphql-hooks
+yarn
+yarn dev
+```
+
+### Run on Codesandbox
+
+[![Develop with Codesandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/GraphCMS/graphcms-examples/tree/master/with-graphql-hooks)
diff --git a/with-graphql-hooks/next-env.d.ts b/with-graphql-hooks/next-env.d.ts
new file mode 100644
index 00000000..62b8a52d
--- /dev/null
+++ b/with-graphql-hooks/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/with-graphql-hooks/package.json b/with-graphql-hooks/package.json
new file mode 100644
index 00000000..b844d7b2
--- /dev/null
+++ b/with-graphql-hooks/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "graphcms-graphql-hooks",
+ "private": true,
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start"
+ },
+ "dependencies": {
+ "graphql-hooks": "^5.11.3",
+ "graphql-hooks-memcache": "^2.3.1",
+ "next": "^12.1.6",
+ "react": "^18.1.0",
+ "react-dom": "^18.1.0"
+ },
+ "devDependencies": {
+ "@types/node": "^17.0.31",
+ "@types/react": "^18.0.9",
+ "typescript": "^4.6.4"
+ }
+}
diff --git a/with-graphql-hooks/src/components/Loader.tsx b/with-graphql-hooks/src/components/Loader.tsx
new file mode 100644
index 00000000..284fb4d5
--- /dev/null
+++ b/with-graphql-hooks/src/components/Loader.tsx
@@ -0,0 +1,91 @@
+export const Loader = () => (
+
+
+
+);
diff --git a/with-graphql-hooks/src/graphql/queries/products.ts b/with-graphql-hooks/src/graphql/queries/products.ts
new file mode 100644
index 00000000..2cf079da
--- /dev/null
+++ b/with-graphql-hooks/src/graphql/queries/products.ts
@@ -0,0 +1,45 @@
+import { useQuery, UseQueryOptions } from "graphql-hooks";
+
+export type ProductQuery = {
+ id: string;
+ name: string;
+ slug: string;
+ price: number;
+ description: string;
+};
+
+export type ProductsQuery = {
+ products: {
+ id: string;
+ name: string;
+ slug: string;
+ price: number;
+ description: string;
+ }[];
+};
+
+export const GET_PRODUCTS = `
+ query GetProducts {
+ products {
+ id
+ name
+ slug
+ description
+ price
+ }
+}`;
+
+export const GET_PRODUCT = `
+ query GetProduct($slug: String!) {
+ product(where: { slug: $slug }) {
+ id
+ name
+ slug
+ description
+ price
+ }
+}`;
+
+export function useQueryProducts(options?: UseQueryOptions) {
+ return useQuery(GET_PRODUCTS, options);
+}
diff --git a/with-graphql-hooks/src/pages/_app.tsx b/with-graphql-hooks/src/pages/_app.tsx
new file mode 100644
index 00000000..cfa633cd
--- /dev/null
+++ b/with-graphql-hooks/src/pages/_app.tsx
@@ -0,0 +1,19 @@
+import type { AppProps } from "next/app";
+
+import { GraphQLClient, ClientContext } from "graphql-hooks";
+
+import "../styles/index.css";
+
+export const client = new GraphQLClient({
+ url: "https://api-eu-central-1.graphcms.com/v2/ck8sn5tnf01gc01z89dbc7s0o/master",
+});
+
+const MyApp = ({ Component, pageProps }: AppProps) => {
+ return (
+
+ ;
+
+ );
+};
+
+export default MyApp;
diff --git a/with-graphql-hooks/src/pages/index.tsx b/with-graphql-hooks/src/pages/index.tsx
new file mode 100644
index 00000000..5918852e
--- /dev/null
+++ b/with-graphql-hooks/src/pages/index.tsx
@@ -0,0 +1,31 @@
+import { Loader } from "components/Loader";
+import { ProductQuery, useQueryProducts } from "graphql/queries/products";
+import Link from "next/link";
+
+const Home = (): JSX.Element => {
+ const { data, loading } = useQueryProducts();
+
+ return (
+
+
All Products
+
+ {loading ? (
+
+ ) : (
+
+ {data.products.map((product: ProductQuery) => (
+ -
+
+ {product.name}
+
+
+ ))}
+
+ )}
+
+
This example is using graphql-hooks, typescript and next.js
+
+ );
+};
+
+export default Home;
diff --git a/with-graphql-hooks/src/pages/product/[slug].tsx b/with-graphql-hooks/src/pages/product/[slug].tsx
new file mode 100644
index 00000000..c5da2005
--- /dev/null
+++ b/with-graphql-hooks/src/pages/product/[slug].tsx
@@ -0,0 +1,85 @@
+import type { GetStaticProps } from "next";
+import { useRouter } from "next/router";
+import Link from "next/link";
+
+import { client } from "pages/_app";
+import {
+ GET_PRODUCT,
+ GET_PRODUCTS,
+ ProductQuery,
+ ProductsQuery,
+} from "graphql/queries/products";
+
+import { Loader } from "components/Loader";
+
+interface ProductProps {
+ product: ProductQuery;
+}
+
+export default function Product(props: ProductQuery) {
+ const router = useRouter();
+
+ if (router.isFallback) return ;
+
+ return (
+
+
Product
+
+
+ This is the product page: {props.name}
+
+
+
+
Go back to the homepage
+
+
+
+
+ ID: {props.id}
+
+
+
+ Name: {props.name}
+
+
+
+ Slug: {props.slug}
+
+
+
+ Description: {props.description}
+
+
+
+ Price: ${props.price}
+
+
+
+ );
+}
+
+export async function getStaticPaths() {
+ const { data } = await client?.request({
+ query: GET_PRODUCTS,
+ });
+
+ const paths = data?.products?.map(({ slug }) => ({
+ params: { slug },
+ }));
+
+ return { paths, fallback: true };
+}
+
+export const getStaticProps: GetStaticProps = async ({ params }) => {
+ const { data } = await client?.request({
+ query: GET_PRODUCT,
+ variables: {
+ slug: params.slug,
+ },
+ });
+
+ return {
+ revalidate: 60,
+ props: data.product,
+ };
+};
diff --git a/with-graphql-hooks/src/styles/index.css b/with-graphql-hooks/src/styles/index.css
new file mode 100644
index 00000000..99e3b367
--- /dev/null
+++ b/with-graphql-hooks/src/styles/index.css
@@ -0,0 +1,34 @@
+.container {
+ width: 100%;
+ max-width: 1024px;
+ margin: 5rem auto;
+}
+
+.container h1 {
+ text-align: center;
+ margin-bottom: 5rem;
+}
+
+.container p {
+ text-align: center;
+ margin-top: 5rem;
+ font-size: 1.5rem;
+}
+
+.product {
+ margin-top: 2rem;
+}
+
+.product span {
+ display: block;
+ font-size: 1.5rem;
+ margin-bottom: 1rem;
+}
+
+ul li {
+ margin-bottom: 2rem;
+}
+
+li a {
+ font-size: 1.5rem;
+}
diff --git a/with-graphql-hooks/tsconfig.json b/with-graphql-hooks/tsconfig.json
new file mode 100644
index 00000000..7298c45d
--- /dev/null
+++ b/with-graphql-hooks/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": false,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "baseUrl": "src",
+ "incremental": true
+ },
+ "exclude": ["node_modules"],
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]
+}
diff --git a/with-graphql-hooks/yarn.lock b/with-graphql-hooks/yarn.lock
new file mode 100644
index 00000000..0e4c0a69
--- /dev/null
+++ b/with-graphql-hooks/yarn.lock
@@ -0,0 +1,324 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@aws-crypto/ie11-detection@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz#bb6c2facf8f03457e949dcf0921477397ffa4c6e"
+ integrity sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==
+ dependencies:
+ tslib "^1.11.1"
+
+"@aws-crypto/sha256-browser@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.1.tgz#b6d861477e80f2906c6e42e25480ebd325473be5"
+ integrity sha512-P4Af7E2iJqZN2HYMdWINEg++OC2CtP1ygTx6WQCzZISQA+i3Q+K3E8S8t/PSYqUnvtfh5XVjbFT9uA+4IT8C2w==
+ dependencies:
+ "@aws-crypto/ie11-detection" "^2.0.0"
+ "@aws-crypto/sha256-js" "^2.0.1"
+ "@aws-crypto/supports-web-crypto" "^2.0.0"
+ "@aws-crypto/util" "^2.0.1"
+ "@aws-sdk/types" "^3.1.0"
+ "@aws-sdk/util-locate-window" "^3.0.0"
+ "@aws-sdk/util-utf8-browser" "^3.0.0"
+ tslib "^1.11.1"
+
+"@aws-crypto/sha256-js@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.1.tgz#79e1e6cf61f652ef2089c08d471c722ecf1626a9"
+ integrity sha512-mbHTBSPBvg6o/mN/c18Z/zifM05eJrapj5ggoOIeHIWckvkv5VgGi7r/wYpt+QAO2ySKXLNvH2d8L7bne4xrMQ==
+ dependencies:
+ "@aws-crypto/util" "^2.0.1"
+ "@aws-sdk/types" "^3.1.0"
+ tslib "^1.11.1"
+
+"@aws-crypto/supports-web-crypto@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz#fd6cde30b88f77d5a4f57b2c37c560d918014f9e"
+ integrity sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==
+ dependencies:
+ tslib "^1.11.1"
+
+"@aws-crypto/util@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.1.tgz#976cf619cf85084ca85ec5eb947a6ac6b8b5c98c"
+ integrity sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==
+ dependencies:
+ "@aws-sdk/types" "^3.1.0"
+ "@aws-sdk/util-utf8-browser" "^3.0.0"
+ tslib "^1.11.1"
+
+"@aws-sdk/types@^3.1.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.78.0.tgz#51dc80b2142ee20821fb9f476bdca6e541021443"
+ integrity sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==
+
+"@aws-sdk/util-locate-window@^3.0.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz#a4136a20ee1bfcb73967a6614caf769ef79db070"
+ integrity sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-utf8-browser@^3.0.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz#a045bf1a93f6e0ff9c846631b168ea55bbb37668"
+ integrity sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==
+ dependencies:
+ tslib "^2.3.1"
+
+"@next/env@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.6.tgz#5f44823a78335355f00f1687cfc4f1dafa3eca08"
+ integrity sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==
+
+"@next/swc-android-arm-eabi@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz#79a35349b98f2f8c038ab6261aa9cd0d121c03f9"
+ integrity sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==
+
+"@next/swc-android-arm64@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz#ec08ea61794f8752c8ebcacbed0aafc5b9407456"
+ integrity sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==
+
+"@next/swc-darwin-arm64@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz#d1053805615fd0706e9b1667893a72271cd87119"
+ integrity sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==
+
+"@next/swc-darwin-x64@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz#2d1b926a22f4c5230d5b311f9c56cfdcc406afec"
+ integrity sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==
+
+"@next/swc-linux-arm-gnueabihf@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz#c021918d2a94a17f823106a5e069335b8a19724f"
+ integrity sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==
+
+"@next/swc-linux-arm64-gnu@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz#ac55c07bfabde378dfa0ce2b8fc1c3b2897e81ae"
+ integrity sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==
+
+"@next/swc-linux-arm64-musl@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz#e429f826279894be9096be6bec13e75e3d6bd671"
+ integrity sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==
+
+"@next/swc-linux-x64-gnu@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz#1f276c0784a5ca599bfa34b2fcc0b38f3a738e08"
+ integrity sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==
+
+"@next/swc-linux-x64-musl@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz#1d9933dd6ba303dcfd8a2acd6ac7c27ed41e2eea"
+ integrity sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==
+
+"@next/swc-win32-arm64-msvc@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz#2ef9837f12ca652b1783d72ecb86208906042f02"
+ integrity sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==
+
+"@next/swc-win32-ia32-msvc@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz#74003d0aa1c59dfa56cb15481a5c607cbc0027b9"
+ integrity sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==
+
+"@next/swc-win32-x64-msvc@12.1.6":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz#a350caf42975e7197b24b495b8d764eec7e6a36e"
+ integrity sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==
+
+"@types/node@^17.0.31":
+ version "17.0.31"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d"
+ integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==
+
+"@types/prop-types@*":
+ version "15.7.5"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
+ integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
+
+"@types/react@^18.0.9":
+ version "18.0.9"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.9.tgz#d6712a38bd6cd83469603e7359511126f122e878"
+ integrity sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.2"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+ integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
+base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
+
+caniuse-lite@^1.0.30001332:
+ version "1.0.30001338"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz#b5dd7a7941a51a16480bdf6ff82bded1628eec0d"
+ integrity sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ==
+
+csstype@^3.0.2:
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33"
+ integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
+
+dequal@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d"
+ integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==
+
+events@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+extract-files@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a"
+ integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==
+
+graphql-hooks-memcache@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/graphql-hooks-memcache/-/graphql-hooks-memcache-2.3.1.tgz#e5351d71d6e9589d9c6f9f22373d21a5458d643b"
+ integrity sha512-s3T+3MKI0RTEvK+udKzNuJ2cygA2B0g5kaMyhL0NesM7xJh93KxpYrztAvcsqYYjlh50kDAiKLr7qb9NVE77gg==
+ dependencies:
+ tiny-lru "^8.0.1"
+
+graphql-hooks@^5.11.3:
+ version "5.11.3"
+ resolved "https://registry.yarnpkg.com/graphql-hooks/-/graphql-hooks-5.11.3.tgz#8d3712a54bdd2beeebcc6da4526b7edc912167be"
+ integrity sha512-ywupsyQm5E+ouCvtoPh52Z0DDJ+WJJFBKsnZBCR7tRi2mbiWEl1T83Uvy5J5/SZfetyeoDRI5u6PbuZCOhI+Qg==
+ dependencies:
+ "@aws-crypto/sha256-browser" "^2.0.1"
+ buffer "^6.0.3"
+ dequal "^2.0.0"
+ events "^3.3.0"
+ extract-files "^11.0.0"
+
+ieee754@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+"js-tokens@^3.0.0 || ^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+loose-envify@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+nanoid@^3.1.30:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
+ integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
+
+next@^12.1.6:
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/next/-/next-12.1.6.tgz#eb205e64af1998651f96f9df44556d47d8bbc533"
+ integrity sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==
+ dependencies:
+ "@next/env" "12.1.6"
+ caniuse-lite "^1.0.30001332"
+ postcss "8.4.5"
+ styled-jsx "5.0.2"
+ optionalDependencies:
+ "@next/swc-android-arm-eabi" "12.1.6"
+ "@next/swc-android-arm64" "12.1.6"
+ "@next/swc-darwin-arm64" "12.1.6"
+ "@next/swc-darwin-x64" "12.1.6"
+ "@next/swc-linux-arm-gnueabihf" "12.1.6"
+ "@next/swc-linux-arm64-gnu" "12.1.6"
+ "@next/swc-linux-arm64-musl" "12.1.6"
+ "@next/swc-linux-x64-gnu" "12.1.6"
+ "@next/swc-linux-x64-musl" "12.1.6"
+ "@next/swc-win32-arm64-msvc" "12.1.6"
+ "@next/swc-win32-ia32-msvc" "12.1.6"
+ "@next/swc-win32-x64-msvc" "12.1.6"
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+postcss@8.4.5:
+ version "8.4.5"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
+ integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
+ dependencies:
+ nanoid "^3.1.30"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.1"
+
+react-dom@^18.1.0:
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f"
+ integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==
+ dependencies:
+ loose-envify "^1.1.0"
+ scheduler "^0.22.0"
+
+react@^18.1.0:
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"
+ integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
+scheduler@^0.22.0:
+ version "0.22.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.22.0.tgz#83a5d63594edf074add9a7198b1bae76c3db01b8"
+ integrity sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
+source-map-js@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+styled-jsx@5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.2.tgz#ff230fd593b737e9e68b630a694d460425478729"
+ integrity sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==
+
+tiny-lru@^8.0.1:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-8.0.2.tgz#812fccbe6e622ded552e3ff8a4c3b5ff34a85e4c"
+ integrity sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==
+
+tslib@^1.11.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2.3.1:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+ integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
+
+typescript@^4.6.4:
+ version "4.6.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9"
+ integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==