diff --git a/ui/package.json b/ui/package.json
index b29ad47..ab3716c 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -37,6 +37,7 @@
"eslint-plugin-react": "^7.31.11",
"ethers": "^5.7.2",
"prettier": "^2.8.0",
+ "react-query": "^3.39.2",
"ts-loader": "^9.4.1",
"typescript": "^4.9.3",
"vite": "^3.2.4",
diff --git a/ui/src/app.tsx b/ui/src/app.tsx
index 3e773de..7fe03d2 100644
--- a/ui/src/app.tsx
+++ b/ui/src/app.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom';
-import { Home, MintSite } from './views';
+import { Home, MintSite, MintedSiteDetail } from './views';
export const App = () => {
return (
@@ -8,6 +8,7 @@ export const App = () => {
} />
} />
+ } />
} />
diff --git a/ui/src/components/accordion-item/accordion-item.tsx b/ui/src/components/accordion-item/accordion-item.tsx
new file mode 100644
index 0000000..af382c6
--- /dev/null
+++ b/ui/src/components/accordion-item/accordion-item.tsx
@@ -0,0 +1,34 @@
+import {
+ AccordionItem as AccordionItemChakra,
+ AccordionButton,
+ Box,
+ Heading,
+ AccordionIcon,
+ AccordionPanel,
+ AccordionPanelProps,
+ forwardRef,
+} from '@chakra-ui/react';
+import React from 'react';
+
+type AccordionProps = AccordionPanelProps & {
+ children: React.ReactNode;
+ heading: string;
+};
+export const AccordionItem = forwardRef(
+ ({ children, heading, ...panelProps }, ref) => {
+ return (
+
+
+
+ {heading}
+
+
+
+
+ {children}
+
+
+ );
+ }
+);
+
diff --git a/ui/src/components/accordion-item/index.ts b/ui/src/components/accordion-item/index.ts
new file mode 100644
index 0000000..53d6159
--- /dev/null
+++ b/ui/src/components/accordion-item/index.ts
@@ -0,0 +1,2 @@
+export * from './accordion-item';
+
diff --git a/ui/src/components/attributes-detail/attributes-detail.tsx b/ui/src/components/attributes-detail/attributes-detail.tsx
new file mode 100644
index 0000000..f1ee114
--- /dev/null
+++ b/ui/src/components/attributes-detail/attributes-detail.tsx
@@ -0,0 +1,30 @@
+import { SiteNFTDetail } from '@/types';
+import { HStack } from '@chakra-ui/react';
+import { CardAttributes } from '../card';
+
+type AttributesDetailProps = {
+ owner: string;
+ attributes: SiteNFTDetail['attributes'];
+ tokendId: string;
+};
+
+export const AttributesDetail = ({
+ owner,
+ attributes,
+ tokendId,
+}: AttributesDetailProps) => {
+ return (
+
+
+ {attributes.map((attribute) => (
+
+ ))}
+
+
+ );
+};
+
diff --git a/ui/src/components/attributes-detail/index.ts b/ui/src/components/attributes-detail/index.ts
new file mode 100644
index 0000000..f7dc7b3
--- /dev/null
+++ b/ui/src/components/attributes-detail/index.ts
@@ -0,0 +1 @@
+export * from './attributes-detail';
diff --git a/ui/src/components/card/card-attributes.tsx b/ui/src/components/card/card-attributes.tsx
new file mode 100644
index 0000000..934eed1
--- /dev/null
+++ b/ui/src/components/card/card-attributes.tsx
@@ -0,0 +1,23 @@
+import { Card, CardBody } from '@chakra-ui/react';
+import { TileInfo } from '../tile-info';
+
+type CardAttributesProps = {
+ heading: string;
+ info: string;
+};
+
+export const CardAttributes = ({ heading, info }: CardAttributesProps) => (
+
+
+
+
+
+);
+
diff --git a/ui/src/components/card/index.ts b/ui/src/components/card/index.ts
new file mode 100644
index 0000000..83e0c05
--- /dev/null
+++ b/ui/src/components/card/index.ts
@@ -0,0 +1,2 @@
+export * from './card-attributes';
+
diff --git a/ui/src/components/home-button/home-button.tsx b/ui/src/components/home-button/home-button.tsx
new file mode 100644
index 0000000..a0df263
--- /dev/null
+++ b/ui/src/components/home-button/home-button.tsx
@@ -0,0 +1,18 @@
+import { ArrowBackIcon } from '@chakra-ui/icons';
+import { IconButton } from '@chakra-ui/react';
+import { Link } from 'react-router-dom';
+
+export const HomeButton = () => {
+ return (
+ }
+ variant="link"
+ size={'xl'}
+ textDecoration={'none'}
+ />
+ );
+};
+
diff --git a/ui/src/components/home-button/index.ts b/ui/src/components/home-button/index.ts
new file mode 100644
index 0000000..6656ad2
--- /dev/null
+++ b/ui/src/components/home-button/index.ts
@@ -0,0 +1 @@
+export * from './home-button';
diff --git a/ui/src/components/image-preview/image-preview.tsx b/ui/src/components/image-preview/image-preview.tsx
new file mode 100644
index 0000000..349e750
--- /dev/null
+++ b/ui/src/components/image-preview/image-preview.tsx
@@ -0,0 +1,22 @@
+import { forwardRef, Image, ImageProps } from '@chakra-ui/react';
+
+type ImagePreviewProps = ImageProps & {
+ image: string;
+};
+
+export const ImagePreview = forwardRef(
+ ({ image, ...imageProps }, ref) => {
+ return (
+ <>
+ {/* TODO add fallback Image */}
+
+ >
+ );
+ }
+);
+
diff --git a/ui/src/components/image-preview/index.ts b/ui/src/components/image-preview/index.ts
new file mode 100644
index 0000000..5e9d093
--- /dev/null
+++ b/ui/src/components/image-preview/index.ts
@@ -0,0 +1 @@
+export * from './image-preview';
diff --git a/ui/src/components/index.ts b/ui/src/components/index.ts
new file mode 100644
index 0000000..a208c05
--- /dev/null
+++ b/ui/src/components/index.ts
@@ -0,0 +1,9 @@
+export * from './loading';
+export * from './home-button';
+export * from './image-preview';
+export * from './tile-info';
+export * from './card';
+export * from './accordion-item';
+export * from './input-field-form';
+export * from './attributes-detail';
+
diff --git a/ui/src/views/mint-site/components/index.ts b/ui/src/components/input-field-form/index.ts
similarity index 100%
rename from ui/src/views/mint-site/components/index.ts
rename to ui/src/components/input-field-form/index.ts
diff --git a/ui/src/views/mint-site/components/input-field-form.tsx b/ui/src/components/input-field-form/input-field-form.tsx
similarity index 100%
rename from ui/src/views/mint-site/components/input-field-form.tsx
rename to ui/src/components/input-field-form/input-field-form.tsx
diff --git a/ui/src/components/loading/index.ts b/ui/src/components/loading/index.ts
new file mode 100644
index 0000000..22652cc
--- /dev/null
+++ b/ui/src/components/loading/index.ts
@@ -0,0 +1 @@
+export * from './loading';
diff --git a/ui/src/components/loading/loading.tsx b/ui/src/components/loading/loading.tsx
new file mode 100644
index 0000000..47142de
--- /dev/null
+++ b/ui/src/components/loading/loading.tsx
@@ -0,0 +1,16 @@
+import { Flex, Spinner } from '@chakra-ui/react';
+
+export const Loading = () => {
+ return (
+
+
+
+ );
+};
+
diff --git a/ui/src/components/tile-info/index.ts b/ui/src/components/tile-info/index.ts
new file mode 100644
index 0000000..8e034f4
--- /dev/null
+++ b/ui/src/components/tile-info/index.ts
@@ -0,0 +1 @@
+export * from './tile-info';
diff --git a/ui/src/components/tile-info/tile-info.tsx b/ui/src/components/tile-info/tile-info.tsx
new file mode 100644
index 0000000..80ec6ff
--- /dev/null
+++ b/ui/src/components/tile-info/tile-info.tsx
@@ -0,0 +1,33 @@
+import {
+ Flex,
+ forwardRef,
+ Heading,
+ HeadingProps,
+ Text,
+} from '@chakra-ui/react';
+
+type TileInfoProps = HeadingProps & {
+ heading: string;
+ info: string;
+ width?: number;
+};
+
+export const TileInfo = forwardRef(
+ ({ heading, info, width = 250, ...headingProps }, ref) => (
+
+
+ {heading}
+
+
+ {info}
+
+
+ )
+);
+
diff --git a/ui/src/index.tsx b/ui/src/index.tsx
index 0adff9f..887391c 100644
--- a/ui/src/index.tsx
+++ b/ui/src/index.tsx
@@ -3,6 +3,9 @@ import ReactDOM from 'react-dom/client';
import { App } from './app';
import { ChakraProvider } from '@chakra-ui/react';
import { theme } from './theme';
+import { QueryClient, QueryClientProvider } from 'react-query';
+
+const queryClient = new QueryClient();
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
@@ -11,7 +14,9 @@ const root = ReactDOM.createRoot(
root.render(
-
+
+
+
);
diff --git a/ui/src/mocks/detail.ts b/ui/src/mocks/detail.ts
new file mode 100644
index 0000000..e3d5a38
--- /dev/null
+++ b/ui/src/mocks/detail.ts
@@ -0,0 +1,53 @@
+const MINT_PARAMS = {
+ name: 'Fleek Test App',
+ description: 'Fleek Test App Description',
+ image: 'https://storageapi.fleek.co/fleek-team-bucket/site/fleek-logo.png',
+ ens: 'fleek.eth',
+ externalUrl: 'https://fleek.co',
+ commitHash: 'b72e47171746b6a9e29b801af9cb655ecf4d665c',
+ gitRepository: 'https://github.com/fleekxyz/contracts',
+ author: 'author',
+};
+
+const mockDetail = {
+ owner: '0x8f7b9e1b5f1f2c3c1f8b0b1b2e1b2f1f2c3c1f8b',
+ name: MINT_PARAMS.name,
+ description: MINT_PARAMS.description,
+ image: MINT_PARAMS.image,
+ external_url: MINT_PARAMS.externalUrl,
+ attributes: [
+ {
+ trait_type: 'ENS',
+ value: MINT_PARAMS.ens,
+ },
+ {
+ trait_type: 'Commit Hash',
+ value: MINT_PARAMS.commitHash,
+ },
+ {
+ trait_type: 'Repository',
+ value: MINT_PARAMS.gitRepository,
+ },
+ //As we're not showing this on the UI, we can remove it
+ // {
+ // trait_type: 'Author',
+ // value: MINT_PARAMS.author,
+ // },
+ // {
+ // trait_type: 'Version',
+ // value: '0',
+ // },
+ ],
+};
+
+export const fetchSiteDetail = async (tokenId: string) => {
+ //TODO get site detail from api
+ return new Promise((resolved, reject) => {
+ setTimeout(() => {
+ resolved({
+ data: { ...mockDetail, externalUrl: mockDetail.external_url },
+ });
+ }, 2500);
+ });
+};
+
diff --git a/ui/src/mocks/index.ts b/ui/src/mocks/index.ts
index 84f0d08..fcb58a5 100644
--- a/ui/src/mocks/index.ts
+++ b/ui/src/mocks/index.ts
@@ -1 +1,3 @@
-export * from './mint-site';
\ No newline at end of file
+export * from './mint-site';
+export * from './detail';
+
diff --git a/ui/src/mocks/mint-site.ts b/ui/src/mocks/mint-site.ts
index 9974d67..64527ee 100644
--- a/ui/src/mocks/mint-site.ts
+++ b/ui/src/mocks/mint-site.ts
@@ -3,7 +3,6 @@ import { SiteNFT } from '@/types';
export const mintSiteNFT = async (props: SiteNFT) => {
const { name, description, owner, externalUrl, ens, commitHash, repo } =
props;
- console.log('mintSiteNFT', props);
return new Promise((resolved, rejected) => {
setTimeout(() => {
// returning data of the site for now
diff --git a/ui/src/types/mint-site.ts b/ui/src/types/mint-site.ts
index e5763ba..4257b02 100644
--- a/ui/src/types/mint-site.ts
+++ b/ui/src/types/mint-site.ts
@@ -9,3 +9,12 @@ export type SiteNFT = {
repo: string;
};
+export type SiteNFTDetail = Omit & {
+ attributes: [
+ {
+ trait_type: string;
+ value: string;
+ }
+ ];
+};
+
diff --git a/ui/src/views/detail/detail.tsx b/ui/src/views/detail/detail.tsx
new file mode 100644
index 0000000..33ca886
--- /dev/null
+++ b/ui/src/views/detail/detail.tsx
@@ -0,0 +1,125 @@
+import { useSearchParams } from 'react-router-dom';
+import { useQuery } from 'react-query';
+import {
+ Accordion,
+ Box,
+ Card,
+ CardBody,
+ Flex,
+ Heading,
+ Link,
+ VStack,
+} from '@chakra-ui/react';
+import {
+ HomeButton,
+ ImagePreview,
+ AccordionItem,
+ Loading,
+ AttributesDetail,
+} from '@/components';
+import { ExternalLinkIcon } from '@chakra-ui/icons';
+import { fetchSiteDetail } from '@/mocks';
+import { ErrorScreen } from '@/views';
+import { SiteNFTDetail } from '@/types';
+
+export const MintedSiteDetail = () => {
+ const [searchParams] = useSearchParams();
+ const tokenIdParam = searchParams.get('tokenId');
+ //TODO handle response type
+ const { data, status } = useQuery('fetchDetail', () =>
+ fetchSiteDetail(tokenIdParam as string)
+ );
+
+ if (status === 'loading') {
+ return ;
+ }
+
+ if (status === 'error') {
+ return ;
+ }
+
+ const { owner, name, description, image, externalUrl, attributes } =
+ data.data as SiteNFTDetail;
+ return (
+ <>
+
+
+
+
+
+
+ {name}
+
+
+
+
+ {description}
}
+ />
+
+ }
+ padding="16px"
+ />
+
+
+
+ Visit site
+
+
+
+
+
+
+
+ Preview
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
diff --git a/ui/src/views/detail/index.ts b/ui/src/views/detail/index.ts
new file mode 100644
index 0000000..15e42dc
--- /dev/null
+++ b/ui/src/views/detail/index.ts
@@ -0,0 +1 @@
+export * from './detail';
diff --git a/ui/src/views/error-screen/error-screen.tsx b/ui/src/views/error-screen/error-screen.tsx
new file mode 100644
index 0000000..056ff85
--- /dev/null
+++ b/ui/src/views/error-screen/error-screen.tsx
@@ -0,0 +1,9 @@
+import { Flex, Heading } from '@chakra-ui/react';
+
+export const ErrorScreen = () => {
+ return (
+
+ Something went wrong
+
+ );
+};
diff --git a/ui/src/views/error-screen/index.ts b/ui/src/views/error-screen/index.ts
new file mode 100644
index 0000000..11b2918
--- /dev/null
+++ b/ui/src/views/error-screen/index.ts
@@ -0,0 +1 @@
+export * from './error-screen';
diff --git a/ui/src/views/index.ts b/ui/src/views/index.ts
index bf01e0f..4da2f23 100644
--- a/ui/src/views/index.ts
+++ b/ui/src/views/index.ts
@@ -1,3 +1,5 @@
export * from './home';
export * from './mint-site';
+export * from './detail';
+export * from './error-screen';
diff --git a/ui/src/views/mint-site/index.ts b/ui/src/views/mint-site/index.ts
index c8be01e..ff19450 100644
--- a/ui/src/views/mint-site/index.ts
+++ b/ui/src/views/mint-site/index.ts
@@ -1,2 +1,3 @@
export * from './mint-site';
export * from './mint-site.utils';
+
diff --git a/ui/src/views/mint-site/mint-site.tsx b/ui/src/views/mint-site/mint-site.tsx
index 83c828d..62232de 100644
--- a/ui/src/views/mint-site/mint-site.tsx
+++ b/ui/src/views/mint-site/mint-site.tsx
@@ -20,7 +20,7 @@ import { Link } from 'react-router-dom';
import { mintSiteNFT } from '@/mocks';
import { getRepoAndCommit } from '@/utils';
import { validateFields } from './mint-site.utils';
-import { InputFieldForm } from './components';
+import { InputFieldForm } from '@/components';
interface FormValues {
name: string;
diff --git a/ui/yarn.lock b/ui/yarn.lock
index 2f1f81a..a9b5d9d 100644
--- a/ui/yarn.lock
+++ b/ui/yarn.lock
@@ -206,7 +206,7 @@
"@babel/plugin-syntax-jsx" "^7.18.6"
"@babel/types" "^7.19.0"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2":
version "7.20.6"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3"
integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==
@@ -1998,6 +1998,11 @@ bech32@1.1.4:
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
+big-integer@^1.6.16:
+ version "1.6.51"
+ resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
+ integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
+
bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
@@ -2023,6 +2028,20 @@ braces@^3.0.2:
dependencies:
fill-range "^7.0.1"
+broadcast-channel@^3.4.1:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-3.7.0.tgz#2dfa5c7b4289547ac3f6705f9c00af8723889937"
+ integrity sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ detect-node "^2.1.0"
+ js-sha3 "0.8.0"
+ microseconds "0.2.0"
+ nano-time "1.0.0"
+ oblivious-set "1.0.0"
+ rimraf "3.0.2"
+ unload "2.2.0"
+
brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@@ -2196,6 +2215,11 @@ detect-node-es@^1.1.0:
resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==
+detect-node@^2.0.4, detect-node@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
+ integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
+
diff-sequences@^29.3.1:
version "29.3.1"
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e"
@@ -3321,6 +3345,14 @@ magic-string@^0.26.7:
dependencies:
sourcemap-codec "^1.4.8"
+match-sorter@^6.0.2:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda"
+ integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ remove-accents "0.4.2"
+
merge2@^1.3.0, merge2@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
@@ -3334,6 +3366,11 @@ micromatch@^4.0.0, micromatch@^4.0.4:
braces "^3.0.2"
picomatch "^2.3.1"
+microseconds@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/microseconds/-/microseconds-0.2.0.tgz#233b25f50c62a65d861f978a4a4f8ec18797dc39"
+ integrity sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==
+
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@@ -3370,6 +3407,13 @@ mz@^2.7.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
+nano-time@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/nano-time/-/nano-time-1.0.0.tgz#b0554f69ad89e22d0907f7a12b0993a5d96137ef"
+ integrity sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==
+ dependencies:
+ big-integer "^1.6.16"
+
nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
@@ -3450,6 +3494,11 @@ object.values@^1.1.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
+oblivious-set@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.0.0.tgz#c8316f2c2fb6ff7b11b6158db3234c49f733c566"
+ integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==
+
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -3664,6 +3713,15 @@ react-is@^18.0.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+react-query@^3.39.2:
+ version "3.39.2"
+ resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.39.2.tgz#9224140f0296f01e9664b78ed6e4f69a0cc9216f"
+ integrity sha512-F6hYDKyNgDQfQOuR1Rsp3VRzJnWHx6aRnnIZHMNGGgbL3SBgpZTDg8MQwmxOgpCAoqZJA+JSNCydF1xGJqKOCA==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ broadcast-channel "^3.4.1"
+ match-sorter "^6.0.2"
+
react-refresh@^0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
@@ -3749,6 +3807,11 @@ regexpp@^3.2.0:
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+remove-accents@0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5"
+ integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==
+
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
@@ -3777,7 +3840,7 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rimraf@^3.0.2:
+rimraf@3.0.2, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -4096,6 +4159,14 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
+unload@2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/unload/-/unload-2.2.0.tgz#ccc88fdcad345faa06a92039ec0f80b488880ef7"
+ integrity sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ detect-node "^2.0.4"
+
update-browserslist-db@^1.0.9:
version "1.0.10"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"