From 4606de2eb0d213fec55b0a23f2fc44fa0a29d6f8 Mon Sep 17 00:00:00 2001 From: pillowboy <33105890+poolsar42@users.noreply.github.com> Date: Fri, 17 Mar 2023 15:36:09 -0400 Subject: [PATCH] feat(profile): update for profile navigation system (#1923) * feat(profile): update for profile navigation system --- ...ompare-npm-3.2.0-fbfa6627d9-8ef272c825.zip | Bin 0 -> 8375 bytes ...popper-npm-2.3.0-1045578379-837111c987.zip | Bin 0 -> 33440 bytes ...arning-npm-4.0.3-291e921d6d-4f2cb6a957.zip | Bin 0 -> 4872 bytes .../Applications/LoginsPanel/LoginsPanel.tsx | 48 +- .../components/Applications/Users/User.tsx | 9 +- .../app/routes/apps/$clientId/index.tsx | 5 +- .../profile/app/components/head-nav/index.tsx | 433 ++++++++---------- .../app/components/head-nav/nav-links.tsx | 87 ++++ .../app/components/hean-nav-links/index.tsx | 18 - .../profile/app/components/side-nav/index.tsx | 213 +++++++++ apps/profile/app/components/side-nav/item.tsx | 65 +++ apps/profile/app/routes/$type.$address.tsx | 10 +- apps/profile/app/routes/account.tsx | 241 +++------- apps/profile/app/routes/account/gallery.tsx | 13 +- apps/profile/app/routes/account/index.tsx | 2 +- apps/profile/app/routes/account/links.tsx | 112 ++--- apps/profile/app/routes/account/profile.tsx | 2 +- apps/profile/package.json | 1 + .../src/jsonrpc/methods/getAccountByAlias.ts | 12 +- yarn.lock | 31 ++ 20 files changed, 763 insertions(+), 539 deletions(-) create mode 100644 .yarn/cache/react-fast-compare-npm-3.2.0-fbfa6627d9-8ef272c825.zip create mode 100644 .yarn/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip create mode 100644 .yarn/cache/warning-npm-4.0.3-291e921d6d-4f2cb6a957.zip create mode 100644 apps/profile/app/components/head-nav/nav-links.tsx delete mode 100644 apps/profile/app/components/hean-nav-links/index.tsx create mode 100644 apps/profile/app/components/side-nav/index.tsx create mode 100644 apps/profile/app/components/side-nav/item.tsx diff --git a/.yarn/cache/react-fast-compare-npm-3.2.0-fbfa6627d9-8ef272c825.zip b/.yarn/cache/react-fast-compare-npm-3.2.0-fbfa6627d9-8ef272c825.zip new file mode 100644 index 0000000000000000000000000000000000000000..ac22b4a33dfe1eafbfb684a20075c8157cfb31fc GIT binary patch literal 8375 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 literal 0 HcmV?d00001 diff --git a/.yarn/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip b/.yarn/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip new file mode 100644 index 0000000000000000000000000000000000000000..c44f46e75575eba992f4ae246665dd5f87dbf7d9 GIT binary patch literal 33440 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 literal 0 HcmV?d00001 diff --git a/apps/console/app/components/Applications/LoginsPanel/LoginsPanel.tsx b/apps/console/app/components/Applications/LoginsPanel/LoginsPanel.tsx index 3d2d01cace..9faa9c8566 100644 --- a/apps/console/app/components/Applications/LoginsPanel/LoginsPanel.tsx +++ b/apps/console/app/components/Applications/LoginsPanel/LoginsPanel.tsx @@ -68,28 +68,38 @@ export const LoginsPanel = ({ appId, }: LoginsPanelProps) => { return ( -
+
{authorizedProfiles.length ? ( -
-
- - USER ID - - - APPROVED - + <> + {' '} +
+
+ + USER ID + + + APPROVED + +
-
{authorizedProfiles.map((user, i) => ( -
+
account pfp { + currentTarget.onerror = null + currentTarget.src = missingImage + currentTarget.style.filter = 'brightness(88%)' + }} + alt="pfp" className="max-h-[24px] max-w-[24px] rounded-full" /> -
-
+
+
@@ -130,7 +140,7 @@ export const LoginsPanel = ({ View All @@ -138,11 +148,11 @@ export const LoginsPanel = ({
-
+ ) : (
{noLoginsSvg} diff --git a/apps/console/app/components/Applications/Users/User.tsx b/apps/console/app/components/Applications/Users/User.tsx index dd1f40a268..518a20e909 100644 --- a/apps/console/app/components/Applications/Users/User.tsx +++ b/apps/console/app/components/Applications/Users/User.tsx @@ -26,8 +26,13 @@ md:flex-row md:items-center text-ellipsis md:space-x-4" > account pfp { + currentTarget.onerror = null + currentTarget.src = missingImage + currentTarget.style.filter = 'brightness(88%)' + }} className="max-h-[24px] max-w-[24px] rounded-full" /> diff --git a/apps/console/app/routes/apps/$clientId/index.tsx b/apps/console/app/routes/apps/$clientId/index.tsx index ed8506fabe..ea17a74cca 100644 --- a/apps/console/app/routes/apps/$clientId/index.tsx +++ b/apps/console/app/routes/apps/$clientId/index.tsx @@ -288,9 +288,9 @@ export default function AppDetailIndexPage() {
- + Users - + {' '} - )
diff --git a/apps/profile/app/components/head-nav/index.tsx b/apps/profile/app/components/head-nav/index.tsx index 5c8e146772..3c557e1d9d 100644 --- a/apps/profile/app/components/head-nav/index.tsx +++ b/apps/profile/app/components/head-nav/index.tsx @@ -1,294 +1,219 @@ -import { Fragment } from 'react' -import { Disclosure, Menu, Transition } from '@headlessui/react' -import { Link, NavLink } from '@remix-run/react' +import { Fragment, useState } from 'react' +import { Popover, Menu, Transition } from '@headlessui/react' +import { Link } from '@remix-run/react' +import { usePopper } from 'react-popper' import { Text } from '@proofzero/design-system/src/atoms/text/Text' import { Avatar } from '@proofzero/design-system/src/atoms/profile/avatar/Avatar' -import { FiExternalLink } from 'react-icons/fi' - import { Bars3Icon, XMarkIcon } from '@heroicons/react/24/outline' -import classNames from 'classnames' import logo from '~/assets/profile_logo.svg' import mobileLogo from '~/assets/profile_logo_mobile.svg' import defaultAvatar from '~/assets/circle_gradient.png' -import { SignOutLink } from '~/components/hean-nav-links' +import { UserNavigation } from '~/components/head-nav/nav-links' import styles from './headNav.css' import { gatewayFromIpfs } from '@proofzero/utils' +import { MobileSideNav } from '../side-nav' export const links = () => [{ rel: 'stylesheet', href: styles }] -// TODO: this should be it's own component. These are also function calls not links -const userNavigation = [ - // { name: 'Copy Address', href: '#' }, - // { name: 'Account', href: '#' }, - { name: 'Sign out', component: SignOutLink }, -] - const user = { imageUrl: defaultAvatar, } type HeadNavProps = { - basePath: string | undefined - avatarUrl?: string | undefined - isToken?: boolean | undefined - loggedIn?: boolean | undefined + open: boolean + accountURN: string + avatarUrl?: string + displayName?: string + isToken?: boolean + loggedIn?: boolean } export default function HeadNav({ - basePath, + accountURN, avatarUrl, loggedIn, + displayName, + open, isToken = false, }: HeadNavProps) { - const activeStyle = { - fontWeight: 600, - color: 'white', - backgroundColor: 'rgb(31 41 55)', // bg-gray-800 - } - - const navigation = [ - { - name: 'My Profile', - to: basePath ? `${basePath}` : '/account/connections', - }, - ] + let [referenceElement, setReferenceElement] = useState() + let [popperElement, setPopperElement] = useState() + let { styles, attributes } = usePopper(referenceElement, popperElement) return ( - - {({ open }) => ( - <> -
-
-
-
- Rollup - Rollup -
-
-
- {loggedIn && - navigation.map((item) => ( - // TODO: convert to NavLink to remove "disabled" and "current" https://remix.run/docs/en/v1/api/remix#navlink - { - return isActive ? activeStyle : undefined - }} - className={ - 'px-3 py-2 text-white text-sm font-medium nav-link-text rounded-md hover:bg-gray-800' - } - > - {item.name} - - ))} -
-
-
+
+
+
+
+
+ Rollup + Rollup +
+
-
-
- {!loggedIn && ( -
- - +
+ {!loggedIn && ( +
+ + + Login + + + + + + Claim your Rollup + + +
+ )} + + {/* Profile dropdown */} + {loggedIn && ( + + {({ close }) => { + return ( + <> +
+ + Open user menu + + +
+ - Login - - - - - - Claim your Rollup - - -
- )} - - {/* Disabled by design request */} - {/* {loggedIn && ( - - )} */} - - {/* Profile dropdown */} - {loggedIn && ( - -
- - Open user menu - - -
- - - {loggedIn && - userNavigation.map((item) => ( - - {({ active }) => ( - - )} + > + {loggedIn && ( + + - ))} - - -
- )} -
-
-
- {/* Mobile menu button */} - {loggedIn && ( - - Open main menu - {open ? ( - - )} - {!loggedIn && ( - - )} -
+ )} + + + + ) + }} + + )}
- - - {({ close }) => ( - <> -
- {loggedIn && - navigation.map((item) => ( - { - close() - }} - target="_blank" - className="flex flex-row items-center block px-3 h-14 text-sm font-medium nav-link-text\ - border-y border-gray-700 hover:bg-gray-700 w-full" - style={({ isActive }) => { - return isActive ? activeStyle : undefined - }} - > - - {item.name} - - - - ))} -
- - {loggedIn && ( -
- {/* */} -
+
+ {/* Mobile menu button */} + {loggedIn && ( + + Open main menu + {open ? ( + + )} + {!loggedIn && ( + )} - - - )} - +
+
+
+ + + + {({ close }) => ( + + )} + + +
) } diff --git a/apps/profile/app/components/head-nav/nav-links.tsx b/apps/profile/app/components/head-nav/nav-links.tsx new file mode 100644 index 0000000000..faa7b23c2c --- /dev/null +++ b/apps/profile/app/components/head-nav/nav-links.tsx @@ -0,0 +1,87 @@ +import { useSubmit } from '@remix-run/react' + +import { Text } from '@proofzero/design-system/src/atoms/text/Text' +import { FiExternalLink } from 'react-icons/fi' +import { IoMdExit } from 'react-icons/io' +import { IoIosCheckmark } from 'react-icons/io' + +export function SignOutLink({ className }: { className: string }) { + let submit = useSubmit() + + return ( + + ) +} + +export const UserNavigation = ({ + avatarUrl, + displayName, + profileUrl, + close, +}: { + close: () => void + avatarUrl?: string + displayName?: string + profileUrl?: string +}) => { + const submit = useSubmit() + + return ( + <> +
+ + CURRENTLY IN + +
+ PFP loading error + + {displayName} + + +
+
+ { + close() + }} + href={profileUrl} + target="_blank" + rel="noreferrer" + > + + + Open my Profile + + + + + ) +} diff --git a/apps/profile/app/components/hean-nav-links/index.tsx b/apps/profile/app/components/hean-nav-links/index.tsx deleted file mode 100644 index 0eee43afd7..0000000000 --- a/apps/profile/app/components/hean-nav-links/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { useSubmit } from '@remix-run/react' -import { Text } from '@proofzero/design-system/src/atoms/text/Text' - -export function SignOutLink({ className }: { className: string }) { - let submit = useSubmit() - - return ( - - ) -} diff --git a/apps/profile/app/components/side-nav/index.tsx b/apps/profile/app/components/side-nav/index.tsx new file mode 100644 index 0000000000..92a15bc8c1 --- /dev/null +++ b/apps/profile/app/components/side-nav/index.tsx @@ -0,0 +1,213 @@ +import { Link, useSubmit } from '@remix-run/react' + +import { BiLink } from 'react-icons/bi' +import { AiOutlineUser } from 'react-icons/ai' +import { RiCollageLine } from 'react-icons/ri' +import { IoMdExit } from 'react-icons/io' +import { HiOutlineExternalLink, HiOutlineHome } from 'react-icons/hi' +import { TbPlugConnected, TbApps } from 'react-icons/tb' +import { Bars3Icon, XMarkIcon } from '@heroicons/react/24/outline' + +import { Text } from '@proofzero/design-system' + +import { Popover } from '@headlessui/react' + +import { SideNavItem } from './item' + +const subNavigation = { + general: [ + { + name: 'Home', + href: '/account/dashboard', + icon: HiOutlineHome, + exists: true, + }, + ], + publicProfiles: [ + { + name: 'User Settings', + href: '/account/profile', + icon: AiOutlineUser, + exists: true, + }, + { + name: 'Profile Links', + href: '/account/links', + icon: BiLink, + exists: true, + }, + { + name: 'NFT Gallery', + href: '/account/gallery', + icon: RiCollageLine, + exists: true, + }, + ], + connections: [ + { + name: 'Accounts', + href: '/account/connections', + icon: TbPlugConnected, + exists: true, + }, + { + name: 'Applications', + href: '/account/applications', + icon: TbApps, + exists: true, + }, + ], +} + +export const DesktopSideNav = ({ + profile, + accountURN, +}: { + profile: { displayName: string; pfp?: { image: string } } + accountURN: string +}) => { + return ( + + ) +} + +export const MobileSideNav = ({ + profile, + accountURN, + close, + ref, + open, +}: { + profile: { displayName: string; pfp?: { image: string } } + accountURN: string + close: ( + focusableElement?: + | HTMLElement + | React.MutableRefObject + | undefined + ) => void + ref?: React.Dispatch> + open?: boolean +}) => { + const submit = useSubmit() + + return ( + + ) +} + +export const SideNavBarebone = ({ + profile, + accountURN, + close, +}: { + profile: { displayName: string; pfp?: { image: string } } + accountURN: string + close?: ( + focusableElement?: + | HTMLElement + | React.MutableRefObject + | undefined + ) => void +}) => { + return ( +
{ + if (close) close() + }} + > +
+ PFP +
+ + {profile.displayName} + + + + Open my Profile + + + +
+
+ {subNavigation.general.map((item) => ( + + ))} + + PUBLIC PROFILES + + {subNavigation.publicProfiles.map((item) => ( + + ))} + + CONNECTIONS + + {subNavigation.connections.map((item) => ( + + ))} +
+ ) +} diff --git a/apps/profile/app/components/side-nav/item.tsx b/apps/profile/app/components/side-nav/item.tsx new file mode 100644 index 0000000000..19aacab628 --- /dev/null +++ b/apps/profile/app/components/side-nav/item.tsx @@ -0,0 +1,65 @@ +import { NavLink } from '@remix-run/react' + +import classNames from 'classnames' + +import { Text } from '@proofzero/design-system' + +type SideNavItemProps = { + item: { + name: string + href: string + icon: any + exists?: boolean + } +} + +export const SideNavItem = ({ item }: SideNavItemProps) => { + const activeStyle = { + backgroundColor: 'rgb(243 244 246)', + borderColor: '#6366f1', + fontWeight: 600, + color: '#1f2937', + } + return ( +
+ { + return isActive && item.href != '#' ? activeStyle : undefined + }} + className={({ isActive }) => `text-sm group ${ + isActive ? 'border-l-2' : '' + } px-4 py-4 + flex self-center justify-start + flex-row items-start + hover:text-gray-500 hover:bg-gray-100`} + > + {' '} +
+ ) +} diff --git a/apps/profile/app/routes/$type.$address.tsx b/apps/profile/app/routes/$type.$address.tsx index 7030f69cd0..c8608bd89e 100644 --- a/apps/profile/app/routes/$type.$address.tsx +++ b/apps/profile/app/routes/$type.$address.tsx @@ -59,26 +59,26 @@ export const loader: LoaderFunction = async ({ request, params, context }) => { if (!type) throw new Error('No provider specified in URL') // redirect from any addressURN to its addressURNs + let accountURN: AccountURN if (type !== 'p') { try { const { accountFromAlias } = await galaxyClient.getAccountUrnFromAlias({ provider: type, alias: address, }) - const accountURN = accountFromAlias - if (!accountURN) { + if (!accountFromAlias) { throw json({ message: 'Not Found' }, { status: 404 }) } - return redirect(`/p/${AccountURNSpace.decode(accountURN)}`) + accountURN = accountFromAlias } catch (ex) { throw json({ message: ex }, { status: 500 }) } + } else { + accountURN = AccountURNSpace.urn(address) as AccountURN } - const accountURN = AccountURNSpace.urn(address) as AccountURN - // if not handle is this let's assume this is an idref let profile, jwt try { diff --git a/apps/profile/app/routes/account.tsx b/apps/profile/app/routes/account.tsx index 21461bd828..9cdc96f007 100644 --- a/apps/profile/app/routes/account.tsx +++ b/apps/profile/app/routes/account.tsx @@ -1,16 +1,9 @@ import { json, redirect } from '@remix-run/cloudflare' import type { LoaderFunction, LinksFunction } from '@remix-run/cloudflare' -import { useLoaderData, NavLink } from '@remix-run/react' +import { useLoaderData } from '@remix-run/react' import { Outlet } from '@remix-run/react' -import { BiLink } from 'react-icons/bi' -import { AiOutlineUser } from 'react-icons/ai' -import { HiOutlineHome } from 'react-icons/hi' -import { TbPlugConnected, TbApps } from 'react-icons/tb' -import { RiCollageLine } from 'react-icons/ri' -import classNames from 'classnames' - import { parseJwt, requireJWT } from '~/utils/session.server' import styles from '~/styles/account.css' @@ -18,10 +11,8 @@ import styles from '~/styles/account.css' import type { AccountURN } from '@proofzero/urns/account' import { AccountURNSpace } from '@proofzero/urns/account' import HeadNav, { links as headNavLink } from '~/components/head-nav' +import { DesktopSideNav } from '~/components/side-nav' -import ConditionalTooltip from '~/components/conditional-tooltip' - -import { Text } from '@proofzero/design-system/src/atoms/text/Text' import { getAccountAddresses, getAccountProfile, @@ -36,6 +27,8 @@ import { Toaster, } from '@proofzero/design-system/src/atoms/toast' +import { Popover } from '@headlessui/react' + export const links: LinksFunction = () => { return [...headNavLink(), { rel: 'stylesheet', href: styles }] } @@ -99,51 +92,6 @@ export const loader: LoaderFunction = async ({ request, context }) => { }) } -const subNavigation = { - general: [ - { - name: 'Home', - href: '/account/dashboard', - icon: HiOutlineHome, - exists: true, - }, - ], - publicProfiles: [ - { - name: 'User Settings', - href: '/account/profile', - icon: AiOutlineUser, - exists: true, - }, - { - name: 'Profile Links', - href: '/account/links', - icon: BiLink, - exists: true, - }, - { - name: 'NFT Gallery', - href: '/account/gallery', - icon: RiCollageLine, - exists: true, - }, - ], - connections: [ - { - name: 'Accounts', - href: '/account/connections', - icon: TbPlugConnected, - exists: true, - }, - { - name: 'Applications', - href: '/account/applications', - icon: TbApps, - exists: true, - }, - ], -} - const notify = (success: boolean = true) => { if (success) { toast(ToastType.Success, { message: 'Saved' }, { duration: 2000 }) @@ -166,123 +114,74 @@ export default function AccountLayout() { }>() return ( -
-
- -
-
-
-
-
- -
- -
+ + {({ open }) => { + return ( + <> +
+
-
-
-
-
- ) -} -type SideNavItemProps = { - item: { - name: string - href: string - icon: any - exists?: boolean - } -} - -const SideNavItem = ({ item }: SideNavItemProps) => { - const activeStyle = { - backgroundColor: 'rgb(243 244 246)', - borderColor: '#6366f1', - fontWeight: 600, - color: '#1f2937', - } - return ( -
- - { - return isActive && item.href != '#' ? activeStyle : undefined - }} - className="text-sm group lg:border-l-2 px-4 py-4 flex self-center justify-center items-center flex-row lg:justify-start lg:items-start hover:text-gray-500 hover:bg-gray-100" - > - {' '} - -
+
+
+
+ + +
+ +
+
+
+
+ + + ) + }} + ) } diff --git a/apps/profile/app/routes/account/gallery.tsx b/apps/profile/app/routes/account/gallery.tsx index f25d78847c..7dcad3a2d1 100644 --- a/apps/profile/app/routes/account/gallery.tsx +++ b/apps/profile/app/routes/account/gallery.tsx @@ -356,8 +356,17 @@ const Gallery = () => { h-[47px] w-[47px] items-center justify-center bg-black hidden group-hover:flex hover:opacity-100 transition-opacity" onClick={() => { - setCuratedNfts( - curatedNfts.filter((nft, j: number) => j !== i) + const updatedCuratedNfts = curatedNfts.filter( + (nft, j: number) => j !== i + ) + setCuratedNfts(updatedCuratedNfts) + setCuratedNftsSet( + new Set( + updatedCuratedNfts.map( + (nft: any) => + nft.contract.address + nft.tokenId + ) + ) ) }} > diff --git a/apps/profile/app/routes/account/index.tsx b/apps/profile/app/routes/account/index.tsx index 62a5137b63..81ba261354 100644 --- a/apps/profile/app/routes/account/index.tsx +++ b/apps/profile/app/routes/account/index.tsx @@ -1,5 +1,5 @@ import { redirect } from '@remix-run/cloudflare' export const loader = async () => { - return redirect('/account/dashboard') + return redirect('/account/profile') } diff --git a/apps/profile/app/routes/account/links.tsx b/apps/profile/app/routes/account/links.tsx index bb3da3a237..2499806303 100644 --- a/apps/profile/app/routes/account/links.tsx +++ b/apps/profile/app/routes/account/links.tsx @@ -356,62 +356,64 @@ export default function AccountSettingsLinks() { action="/account/connections/order" className="w-screen -mx-4 sm:w-full sm:mx-0" > - ({ - key: `${l.addressURN}`, - val: l, - disabled: true, - }))} - itemRenderer={(item) => ( -
- connected addresses - -
- - {item.val.title} - - - {item.val.address} - +
+ ({ + key: `${l.addressURN}`, + val: l, + disabled: true, + }))} + itemRenderer={(item) => ( +
+ connected addresses + +
+ + {item.val.title} + + + {item.val.address} + +
+ + { + const index = connectedLinks.findIndex( + (pl: any) => pl.addressURN === item.val.addressURN + ) + + // This just updates + // toggled connected link + // `public` property + // which is used in action + // to persist or not + setConnectedLinks([ + ...connectedLinks.slice(0, index), + { + ...connectedLinks[index], + public: val, + }, + ...connectedLinks.slice(index + 1), + ]) + setIsConnectionsChanged(true) + }} + />
- - { - const index = connectedLinks.findIndex( - (pl: any) => pl.addressURN === item.val.addressURN - ) - - // This just updates - // toggled connected link - // `public` property - // which is used in action - // to persist or not - setConnectedLinks([ - ...connectedLinks.slice(0, index), - { - ...connectedLinks[index], - public: val, - }, - ...connectedLinks.slice(index + 1), - ]) - setIsConnectionsChanged(true) - }} - /> -
- )} - onItemsReordered={(items) => { - setConnectedLinks(items.map((i) => i.val)) - setIsConnectionsChanged(true) - }} - /> + )} + onItemsReordered={(items) => { + setConnectedLinks(items.map((i) => i.val)) + setIsConnectionsChanged(true) + }} + /> + !edge.dst.qc.hidden) - * .map((edge) => edge.src.baseUrn)[0] - */ const account = edges.map((edge) => edge.src.baseUrn)[0] return account as AccountURN diff --git a/yarn.lock b/yarn.lock index 1157ef19bc..892b950b95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5909,6 +5909,7 @@ __metadata: react-icons: 4.7.1 react-infinite-scroll-component: 6.1.0 react-masonry-css: 1.0.16 + react-popper: 2.3.0 react-router-dom: 6.4.3 remix-auth: 3.4.0 remix-auth-oauth2: 1.5.0 @@ -32261,6 +32262,13 @@ __metadata: languageName: node linkType: hard +"react-fast-compare@npm:^3.0.1": + version: 3.2.0 + resolution: "react-fast-compare@npm:3.2.0" + checksum: 8ef272c825ae329f61633ce4ce7f15aa5b84e5214d88bc0823880236e03e985a13195befa2c7a4eda7db3b017dc7985729152d88445823f652403cf36c2b86aa + languageName: node + linkType: hard + "react-hot-toast@npm:2.4.0": version: 2.4.0 resolution: "react-hot-toast@npm:2.4.0" @@ -32369,6 +32377,20 @@ __metadata: languageName: node linkType: hard +"react-popper@npm:2.3.0": + version: 2.3.0 + resolution: "react-popper@npm:2.3.0" + dependencies: + react-fast-compare: ^3.0.1 + warning: ^4.0.2 + peerDependencies: + "@popperjs/core": ^2.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + checksum: 837111c98738011c69b3069a464ea5bdcbf487105b6148e8faf90cb7337e134edb1b98b8824322941c378756cca30a15c18c25f558e53b85ed5762fa0dc8e6b2 + languageName: node + linkType: hard + "react-reconciler@npm:^0.26.2": version: 0.26.2 resolution: "react-reconciler@npm:0.26.2" @@ -37896,6 +37918,15 @@ __metadata: languageName: node linkType: hard +"warning@npm:^4.0.2": + version: 4.0.3 + resolution: "warning@npm:4.0.3" + dependencies: + loose-envify: ^1.0.0 + checksum: 4f2cb6a9575e4faf71ddad9ad1ae7a00d0a75d24521c193fa464f30e6b04027bd97aa5d9546b0e13d3a150ab402eda216d59c1d0f2d6ca60124d96cd40dfa35c + languageName: node + linkType: hard + "watchpack-chokidar2@npm:^2.0.1": version: 2.0.1 resolution: "watchpack-chokidar2@npm:2.0.1"