From dada34a5373d0c6ce98b6fca1299095f2fa7df05 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Fri, 17 Nov 2023 03:00:42 +0330 Subject: [PATCH] feat: newsletter subscription page & components --- .../image/horizontal_lockup_small_white.svg | 8 ++ .../image/horizontal_lockup_small_white.svg | 10 ++ .../image/horizontal_lockup_small_white.svg | 9 ++ .../image/horizontal_lockup_small_white.svg | 11 ++ .../image/horizontal_lockup_small_white.svg | 7 ++ packages/logos-docusaurus-theme/package.json | 2 +- .../src/client/components/mdx/Grid/Grid.tsx | 8 +- .../NewsletterSubscription.scss | 68 ++++++++++++ .../NewsletterSubscription.tsx | 104 ++++++++++++++++++ .../mdx/NewsletterSubscription/index.ts | 1 + .../mdx/ScrollToBottom/ScrollToBottom.tsx | 4 +- .../src/client/components/mdx/index.ts | 5 +- .../src/client/css/custom.scss | 5 + .../src/client/lib/themes.ts | 1 + .../src/client/lib/useNewsletterApi.ts | 52 +++++++++ .../theme/DocSidebarItem/Category/index.tsx | 34 +++--- .../NavbarItem/DropdownNavbarItem/index.tsx | 4 +- .../client/theme/PaginatorNavLink/index.tsx | 10 +- .../SubscriptionPage.module.scss | 80 ++++++++++++++ .../SubscriptionPage/SubscriptionPage.tsx | 100 +++++++++++++++++ .../client/theme/SubscriptionPage/index.ts | 2 + .../TOCCollapsible/CollapseButton/index.tsx | 12 +- .../src/client/types/theme.types.ts | 4 + packages/logos-docusaurus-theme/src/index.ts | 9 ++ yarn.lock | 31 +++++- 25 files changed, 537 insertions(+), 44 deletions(-) create mode 100644 packages/logos-docusaurus-preset/static/Codex/theme/image/horizontal_lockup_small_white.svg create mode 100644 packages/logos-docusaurus-preset/static/Logos/theme/image/horizontal_lockup_small_white.svg create mode 100644 packages/logos-docusaurus-preset/static/Nimbus/theme/image/horizontal_lockup_small_white.svg create mode 100644 packages/logos-docusaurus-preset/static/VacResearch/theme/image/horizontal_lockup_small_white.svg create mode 100644 packages/logos-docusaurus-preset/static/Waku/theme/image/horizontal_lockup_small_white.svg create mode 100644 packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.scss create mode 100644 packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.tsx create mode 100644 packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/index.ts create mode 100644 packages/logos-docusaurus-theme/src/client/lib/useNewsletterApi.ts create mode 100644 packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/SubscriptionPage.module.scss create mode 100644 packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/SubscriptionPage.tsx create mode 100644 packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/index.ts diff --git a/packages/logos-docusaurus-preset/static/Codex/theme/image/horizontal_lockup_small_white.svg b/packages/logos-docusaurus-preset/static/Codex/theme/image/horizontal_lockup_small_white.svg new file mode 100644 index 0000000..17049c2 --- /dev/null +++ b/packages/logos-docusaurus-preset/static/Codex/theme/image/horizontal_lockup_small_white.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/logos-docusaurus-preset/static/Logos/theme/image/horizontal_lockup_small_white.svg b/packages/logos-docusaurus-preset/static/Logos/theme/image/horizontal_lockup_small_white.svg new file mode 100644 index 0000000..588e03c --- /dev/null +++ b/packages/logos-docusaurus-preset/static/Logos/theme/image/horizontal_lockup_small_white.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/logos-docusaurus-preset/static/Nimbus/theme/image/horizontal_lockup_small_white.svg b/packages/logos-docusaurus-preset/static/Nimbus/theme/image/horizontal_lockup_small_white.svg new file mode 100644 index 0000000..0714b39 --- /dev/null +++ b/packages/logos-docusaurus-preset/static/Nimbus/theme/image/horizontal_lockup_small_white.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/packages/logos-docusaurus-preset/static/VacResearch/theme/image/horizontal_lockup_small_white.svg b/packages/logos-docusaurus-preset/static/VacResearch/theme/image/horizontal_lockup_small_white.svg new file mode 100644 index 0000000..13191d8 --- /dev/null +++ b/packages/logos-docusaurus-preset/static/VacResearch/theme/image/horizontal_lockup_small_white.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/logos-docusaurus-preset/static/Waku/theme/image/horizontal_lockup_small_white.svg b/packages/logos-docusaurus-preset/static/Waku/theme/image/horizontal_lockup_small_white.svg new file mode 100644 index 0000000..bf25832 --- /dev/null +++ b/packages/logos-docusaurus-preset/static/Waku/theme/image/horizontal_lockup_small_white.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/logos-docusaurus-theme/package.json b/packages/logos-docusaurus-theme/package.json index 91a2c38..f7737d3 100644 --- a/packages/logos-docusaurus-theme/package.json +++ b/packages/logos-docusaurus-theme/package.json @@ -21,7 +21,7 @@ }, "dependencies": { "@acid-info/docusaurus-og": "^1.0.0-alpha.111", - "@acid-info/lsd-react": "^0.1.0-alpha.17", + "@acid-info/lsd-react": "^0.1.0-alpha.21", "@docusaurus/core": "^2.4.1", "@docusaurus/mdx-loader": "^2.4.1", "@docusaurus/module-type-aliases": "^2.4.1", diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Grid/Grid.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Grid/Grid.tsx index effb535..7542e78 100644 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/Grid/Grid.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Grid/Grid.tsx @@ -1,8 +1,8 @@ import { + ChevronLeftIcon, + ChevronRightIcon, IconButton, IconButtonGroup, - NavigateBeforeIcon, - NavigateNextIcon, THEME_BREAKPOINTS, } from '@acid-info/lsd-react' import { css } from '@emotion/react' @@ -43,10 +43,10 @@ export const Grid: { Item: typeof GridItem } & React.FC = ({
- + - +
diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.scss new file mode 100644 index 0000000..a7bfc9a --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.scss @@ -0,0 +1,68 @@ +@use '../../../css/utils'; +@use '../../../css/lsd'; + +.mdx-ns { +} + +.mdx-ns__inner { + form { + width: 100%; + margin-top: 40px; + } + + .mdx-ns__inputs { + width: 100%; + display: flex; + flex-direction: row; + align-items: center; + gap: 16px; + + > * { + flex-grow: 1; + } + } + + .mdx-ns__submit-button { + margin-top: 40px; + } + + .mdx-ns__toast { + width: 100%; + margin-top: -16px; + margin-bottom: 24px; + .lsd-toast__close-button { + display: none; + } + } +} + +.mdx-ns__description { + font-size: 32px !important; + line-height: 40px !important; +} + +@include utils.responsive('md', 'down') { + .mdx-ns__description { + font-size: 24px !important; + line-height: 32px !important; + } + + .mdx-ns__inner { + form { + margin-top: 40px; + } + + .mdx-ns__inputs { + flex-direction: column; + gap: 24px; + + & > * { + width: 100%; + } + } + + .mdx-ns__submit-button { + margin-top: 24px; + } + } +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.tsx new file mode 100644 index 0000000..eeeeb67 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/NewsletterSubscription.tsx @@ -0,0 +1,104 @@ +import { + Button, + CheckIcon, + ErrorIcon, + TextField, + Toast, +} from '@acid-info/lsd-react' +import clsx from 'clsx' +import React from 'react' +import { CallToActionSection } from '..' +import { useNewsletterApi } from '../../../lib/useNewsletterApi' +import { useThemeOptions } from '../../../lib/useThemeOptions' +import './NewsletterSubscription.scss' + +export type NewsletterSubscriptionProps = Omit< + React.HTMLAttributes, + 'title' +> & { + mailingListId?: number + title?: React.ReactNode + description?: React.ReactNode +} + +export const NewsletterSubscription: React.FC = ({ + title: _title, + description: _description, + mailingListId: _mailingListId, + ...props +}) => { + const defaultMailingListId = + useThemeOptions()?.newsletterSubscription?.mailingListId ?? 0 + const mailingListId = _mailingListId ?? defaultMailingListId + const api = useNewsletterApi() + const displayForm = !api.message || api.error + + const title = _title ?? 'Newsletter' + const description = _description ?? ( + <> + Subscribe +
+ to our newsletter + + ) + + const onSubmit: React.FormEventHandler = (e) => { + e.preventDefault() + const form = e.target as HTMLFormElement + const name = (form.elements.namedItem('name') as HTMLInputElement).value + const email = (form.elements.namedItem('email') as HTMLInputElement).value + api.subscribe(mailingListId, email, name) + } + + return ( + {title}} + description={ +
+ {description} + +
+ {api.message && ( + + )} +
+ + +
+ + + +
+ } + columns={2} + /> + ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/index.ts new file mode 100644 index 0000000..e04bad1 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/NewsletterSubscription/index.ts @@ -0,0 +1 @@ +export * from './NewsletterSubscription' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/ScrollToBottom/ScrollToBottom.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/ScrollToBottom/ScrollToBottom.tsx index 94da38d..1ce96df 100644 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/ScrollToBottom/ScrollToBottom.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/ScrollToBottom/ScrollToBottom.tsx @@ -1,4 +1,4 @@ -import { ArrowDownIcon, IconButton } from '@acid-info/lsd-react' +import { ChevronDownIcon, IconButton } from '@acid-info/lsd-react' import clsx from 'clsx' import React, { HTMLProps, useMemo } from 'react' import { useWindowSize } from 'react-use' @@ -56,7 +56,7 @@ export const ScrollToBottom = ( )} {...(rest as any)} > - + ) } diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts index 252e306..d07a10b 100644 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts @@ -6,6 +6,7 @@ export * from './CallToActionSection' export * from './DocMetadata' export * from './ExternalResourceCard' export * from './FeatureList' +export * from './GithubChallenges' export * from './Grid' export * from './Hero' export * from './HeroAction' @@ -15,6 +16,8 @@ export * from './HeroInfo' export * from './HeroModel' export * from './HeroTitle' export * from './HeroVideo' +export * from './JobsPerDepartment' +export * from './NewsletterSubscription' export * from './PoweredBy' export * from './ProfileCard' export * from './Roadmap' @@ -24,5 +27,3 @@ export * from './Showcase' export * from './ShowcaseCard' export * from './SocialCard' export * from './TimelineItem' -export * from './JobsPerDepartment' -export * from './GithubChallenges' diff --git a/packages/logos-docusaurus-theme/src/client/css/custom.scss b/packages/logos-docusaurus-theme/src/client/css/custom.scss index fe3cc69..8ea921f 100644 --- a/packages/logos-docusaurus-theme/src/client/css/custom.scss +++ b/packages/logos-docusaurus-theme/src/client/css/custom.scss @@ -1279,4 +1279,9 @@ code { --lsd-subtitle1-fontWeight: 300; } +.hidden { + visibility: hidden; + opacity: 0; +} + @import './blog.scss'; diff --git a/packages/logos-docusaurus-theme/src/client/lib/themes.ts b/packages/logos-docusaurus-theme/src/client/lib/themes.ts index 6d14a6c..91bdb4b 100644 --- a/packages/logos-docusaurus-theme/src/client/lib/themes.ts +++ b/packages/logos-docusaurus-theme/src/client/lib/themes.ts @@ -29,6 +29,7 @@ export const useTheme = () => { typographyGlobal: { genericFontFamily, }, + spacing: [], } return { diff --git a/packages/logos-docusaurus-theme/src/client/lib/useNewsletterApi.ts b/packages/logos-docusaurus-theme/src/client/lib/useNewsletterApi.ts new file mode 100644 index 0000000..61d96bc --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/lib/useNewsletterApi.ts @@ -0,0 +1,52 @@ +import { useState } from 'react' + +export const useNewsletterApi = () => { + const [busy, setBusy] = useState(false) + const [res, setRes] = useState({ + error: false, + message: '', + }) + + const subscribe = async (listId: number, email: string, name: string) => { + setBusy(true) + try { + const res = await fetch( + 'https://odoo.logos.co/website_mass_mailing/subscribe2', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + jsonrpc: '2.0', + method: 'call', + params: { + name, + value: email, + list_id: listId, + subscription_type: 'email', + }, + }), + }, + ) + const data = await res.json() + setRes({ + error: false, + message: data.result.message, + }) + } catch (e) { + setRes({ + error: true, + message: 'Something went wrong!', + }) + } + setBusy(false) + } + + return { + busy, + error: res.error, + message: res.message, + subscribe, + } +} diff --git a/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx index edb68bd..50ae6d8 100644 --- a/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx @@ -1,23 +1,23 @@ -import React, { useEffect, useMemo } from 'react' -import clsx from 'clsx' -import { - ThemeClassNames, - useThemeConfig, - usePrevious, - Collapsible, - useCollapsible, -} from '@docusaurus/theme-common' -import { - isActiveSidebarItem, - findFirstCategoryLink, - useDocSidebarItemsExpandedState, - isSamePath, -} from '@docusaurus/theme-common/internal' +import { ChevronUpIcon, Typography } from '@acid-info/lsd-react' import Link from '@docusaurus/Link' import { translate } from '@docusaurus/Translate' +import { + Collapsible, + ThemeClassNames, + useCollapsible, + usePrevious, + useThemeConfig, +} from '@docusaurus/theme-common' +import { + findFirstCategoryLink, + isActiveSidebarItem, + isSamePath, + useDocSidebarItemsExpandedState, +} from '@docusaurus/theme-common/internal' import useIsBrowser from '@docusaurus/useIsBrowser' import DocSidebarItems from '@theme/DocSidebarItems' -import { ArrowDownIcon, ArrowUpIcon, Typography } from '@acid-info/lsd-react' +import clsx from 'clsx' +import React, { useEffect, useMemo } from 'react' // If we navigate to a category and it becomes active, it should automatically // expand itself @@ -168,7 +168,7 @@ export default function DocSidebarItemCategory({ {label} - {collapsible && } + {collapsible && } {href && collapsible && ( {props.children ?? props.label} - +
    {items.map((childItemProps, i) => ( * { + width: 100%; + } +} + +.header { + @extend %flex; + gap: 4px; + padding-bottom: 56px; + + p { + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + } +} + +.toast { + margin-top: -24px; + margin-bottom: 32px; + width: 100% !important; + + :global { + .lsd-toast__close-button { + display: none; + } + } +} + +.form { + .inputs { + width: 100%; + @extend %flex; + gap: 24px; + + & > * { + width: 100%; + } + } + + .submit { + width: 100%; + padding: 48px 0; + @extend %flex; + + button { + padding: 6px 24px; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 20px; + } + } +} + +.toHome { + @extend %flex; + padding: 48px 0; +} diff --git a/packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/SubscriptionPage.tsx b/packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/SubscriptionPage.tsx new file mode 100644 index 0000000..e08e053 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/SubscriptionPage.tsx @@ -0,0 +1,100 @@ +import { + Button, + CheckIcon, + ErrorIcon, + TextField, + Toast, + Typography, +} from '@acid-info/lsd-react' +import Layout from '@theme/Layout' +import ThemedImage from '@theme/ThemedImage' +import React from 'react' +import { useNewsletterApi } from '../../lib/useNewsletterApi' +import { useThemeOptions } from '../../lib/useThemeOptions' +import styles from './SubscriptionPage.module.scss' +import Link from '@docusaurus/Link' + +export type SubscriptionPageProps = {} + +export const SubscriptionPage: React.FC = ({}) => { + const opts = useThemeOptions() + const api = useNewsletterApi() + const displayForm = !api.message || api.error + + const onSubmit = (event: React.FormEvent) => { + event.preventDefault() + const form = event.target as HTMLFormElement + const name = (form.elements.namedItem('name') as HTMLInputElement).value + const email = (form.elements.namedItem('email') as HTMLInputElement).value + + api.subscribe(opts.newsletterSubscription!.mailingListId!, email, name) + } + + return ( + +
    +
    +
    + + Subscribe for updates +
    + {api.message && ( + + )} + {api.error && api.message &&
    } + {displayForm && ( +
    +
    + + +
    +
    + +
    +
    + )} + {!displayForm && ( +
    + + + +
    + )} +
    +
    +
    + ) +} + +export default SubscriptionPage diff --git a/packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/index.ts b/packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/index.ts new file mode 100644 index 0000000..64addd6 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/theme/SubscriptionPage/index.ts @@ -0,0 +1,2 @@ +export * from './SubscriptionPage' +export { SubscriptionPage as default } from './SubscriptionPage' diff --git a/packages/logos-docusaurus-theme/src/client/theme/TOCCollapsible/CollapseButton/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/TOCCollapsible/CollapseButton/index.tsx index 4c9aedb..48f411e 100644 --- a/packages/logos-docusaurus-theme/src/client/theme/TOCCollapsible/CollapseButton/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/TOCCollapsible/CollapseButton/index.tsx @@ -1,8 +1,12 @@ -import React from 'react' -import clsx from 'clsx' +import { + ChevronDownIcon, + ChevronUpIcon, + Typography, +} from '@acid-info/lsd-react' import Translate from '@docusaurus/Translate' +import clsx from 'clsx' +import React from 'react' import styles from './styles.module.css' -import { ArrowDownIcon, ArrowUpIcon, Typography } from '@acid-info/lsd-react' export default function TOCCollapsibleCollapseButton({ collapsed, ...props }) { return ( ) } diff --git a/packages/logos-docusaurus-theme/src/client/types/theme.types.ts b/packages/logos-docusaurus-theme/src/client/types/theme.types.ts index 9558761..f2cf922 100644 --- a/packages/logos-docusaurus-theme/src/client/types/theme.types.ts +++ b/packages/logos-docusaurus-theme/src/client/types/theme.types.ts @@ -30,4 +30,8 @@ export type DocConfig = { export type ThemeOptions = DefaultPluginOptions & { docs?: Record typography?: GlobalTypographyStyles + newsletterSubscription?: { + pagePath?: string + mailingListId: number + } } diff --git a/packages/logos-docusaurus-theme/src/index.ts b/packages/logos-docusaurus-theme/src/index.ts index d0bd45c..cb7a376 100644 --- a/packages/logos-docusaurus-theme/src/index.ts +++ b/packages/logos-docusaurus-theme/src/index.ts @@ -46,6 +46,15 @@ export default function logosTheme( async contentLoaded(args) { await createAuthorRoutes(context, args) + if (options.newsletterSubscription) + args.actions.addRoute({ + path: options.newsletterSubscription.pagePath || '/subscribe', + component: path.resolve( + __dirname, + '../src/client/theme/SubscriptionPage', + ), + exact: true, + }) }, injectHtmlTags: ({}) => { diff --git a/yarn.lock b/yarn.lock index d439f96..2b1a6c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,17 @@ # yarn lockfile v1 -"@acid-info/lsd-react@^0.1.0-alpha.17": - version "0.1.0-alpha.17" - resolved "https://registry.yarnpkg.com/@acid-info/lsd-react/-/lsd-react-0.1.0-alpha.17.tgz#4a0da00ad779717bcd6c5771863ec94937c701a0" - integrity sha512-qDnDr4uK7xXulf3StBLhCdq+0zT+6NT1TstQ+qAw3/kLonE2wiQx+w+aRlyaRobSevhtyC+bfR+QDvfFwkG8Rw== +"@acid-info/lsd-react@^0.1.0-alpha.21": + version "0.1.0-alpha.21" + resolved "https://registry.yarnpkg.com/@acid-info/lsd-react/-/lsd-react-0.1.0-alpha.21.tgz#3a6a6862bc492521197ef354795f1b1fe9bceffe" + integrity sha512-zgec9ezT469HBB/rKFzqbgEFiH59Raf8BkWE4XWP4mS9qc2ZQwwYy59TjbJKN5kgwWVnVX/cY1Ryvj9uFcnO8g== dependencies: + "@datepicker-react/hooks" "^2.8.4" "@emotion/react" "^11.10.5" "@emotion/styled" "^11.10.5" clsx "^1.2.1" lodash "^4.17.21" + react-hot-toast "^2.4.1" react-use "^17.4.0" "@algolia/autocomplete-core@1.8.2": @@ -1504,6 +1506,13 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@datepicker-react/hooks@^2.8.4": + version "2.8.4" + resolved "https://registry.yarnpkg.com/@datepicker-react/hooks/-/hooks-2.8.4.tgz#6e07aa98bf21b90b7c88fb35919cca6eb08f2c31" + integrity sha512-qaYJKK5sOSdqcL/OnCtyv3/Q6fRRljfeAyl5ISTPgEO0CM5xZzkGmTx40+6wvqjH5lEZH4ysS95nPyLwZS2tlw== + dependencies: + date-fns "^2.14.0" + "@discoveryjs/json-ext@0.5.7": version "0.5.7" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" @@ -6754,7 +6763,7 @@ data-urls@^1.1.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-fns@^2.30.0: +date-fns@^2.14.0, date-fns@^2.30.0: version "2.30.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== @@ -9044,6 +9053,11 @@ glsl-noise@^0.0.0: resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b" integrity sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w== +goober@^2.1.10: + version "2.1.13" + resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.13.tgz#e3c06d5578486212a76c9eba860cbc3232ff6d7c" + integrity sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ== + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -14449,6 +14463,13 @@ react-helmet-async@*, react-helmet-async@^1.3.0: react-fast-compare "^3.2.0" shallowequal "^1.1.0" +react-hot-toast@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/react-hot-toast/-/react-hot-toast-2.4.1.tgz#df04295eda8a7b12c4f968e54a61c8d36f4c0994" + integrity sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ== + dependencies: + goober "^2.1.10" + react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"