snackbar
This commit is contained in:
parent
6a1860d824
commit
688e302392
|
@ -125,6 +125,7 @@
|
||||||
"rollup-plugin-visualizer": "^5.9.0",
|
"rollup-plugin-visualizer": "^5.9.0",
|
||||||
"sass": "1.32.13",
|
"sass": "1.32.13",
|
||||||
"solid-js": "^1.6.9",
|
"solid-js": "^1.6.9",
|
||||||
|
"solid-transition-group": "^0.0.13",
|
||||||
"sort-package-json": "^2.3.0",
|
"sort-package-json": "^2.3.0",
|
||||||
"stylelint": "^14.16.1",
|
"stylelint": "^14.16.1",
|
||||||
"stylelint-config-css-modules": "^4.1.0",
|
"stylelint-config-css-modules": "^4.1.0",
|
||||||
|
|
|
@ -53,7 +53,6 @@
|
||||||
.headerInner {
|
.headerInner {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-bottom: 4px solid #000;
|
|
||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
@ -11,6 +11,7 @@ import { clsx } from 'clsx'
|
||||||
import { HeaderAuth } from './HeaderAuth'
|
import { HeaderAuth } from './HeaderAuth'
|
||||||
import { getShareUrl, SharePopup } from '../Article/SharePopup'
|
import { getShareUrl, SharePopup } from '../Article/SharePopup'
|
||||||
import { getDescription } from '../../utils/meta'
|
import { getDescription } from '../../utils/meta'
|
||||||
|
import { Snackbar } from './Snackbar'
|
||||||
|
|
||||||
const resources: { name: string; route: keyof Routes }[] = [
|
const resources: { name: string; route: keyof Routes }[] = [
|
||||||
{ name: t('zine'), route: 'home' },
|
{ name: t('zine'), route: 'home' },
|
||||||
|
@ -153,6 +154,7 @@ export const Header = (props: Props) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
<Snackbar />
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
)
|
)
|
||||||
|
|
23
src/components/Nav/Snackbar.module.scss
Normal file
23
src/components/Nav/Snackbar.module.scss
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
.snackbar {
|
||||||
|
min-height: 4px;
|
||||||
|
background-color: #141414;
|
||||||
|
color: #ffffff;
|
||||||
|
transition: background-color 0.3s;
|
||||||
|
|
||||||
|
&.error {
|
||||||
|
background-color: #d00820;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
transition: height 0.3s, color 0.3s;
|
||||||
|
height: 60px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
&.enter,
|
||||||
|
&.exitTo {
|
||||||
|
height: 0;
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
}
|
27
src/components/Nav/Snackbar.tsx
Normal file
27
src/components/Nav/Snackbar.tsx
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
import { Show } from 'solid-js'
|
||||||
|
import { useSnackbar } from '../../context/snackbar'
|
||||||
|
import styles from './Snackbar.module.scss'
|
||||||
|
import { Transition } from 'solid-transition-group'
|
||||||
|
import { clsx } from 'clsx'
|
||||||
|
|
||||||
|
export const Snackbar = () => {
|
||||||
|
const { snackbarMessage } = useSnackbar()
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
class={clsx(styles.snackbar, {
|
||||||
|
[styles.error]: snackbarMessage()?.type === 'error'
|
||||||
|
})}
|
||||||
|
>
|
||||||
|
<Transition
|
||||||
|
enterClass={styles.enter}
|
||||||
|
exitToClass={styles.exitTo}
|
||||||
|
onExit={(el, done) => setTimeout(() => done(), 300)}
|
||||||
|
>
|
||||||
|
<Show when={snackbarMessage()}>
|
||||||
|
<div class={styles.content}>{snackbarMessage().body}</div>
|
||||||
|
</Show>
|
||||||
|
</Transition>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
|
@ -1,9 +1,8 @@
|
||||||
import { PageWrap } from '../../_shared/PageWrap'
|
import { PageWrap } from '../../_shared/PageWrap'
|
||||||
import { t } from '../../../utils/intl'
|
import { t } from '../../../utils/intl'
|
||||||
import type { PageProps } from '../../types'
|
|
||||||
import { Icon } from '../../_shared/Icon'
|
import { Icon } from '../../_shared/Icon'
|
||||||
import ProfileSettingsNavigation from '../../Discours/ProfileSettingsNavigation'
|
import ProfileSettingsNavigation from '../../Discours/ProfileSettingsNavigation'
|
||||||
import { For, createSignal, Show, onMount } from 'solid-js'
|
import { For, createSignal, Show, onMount, createEffect } from 'solid-js'
|
||||||
import { clsx } from 'clsx'
|
import { clsx } from 'clsx'
|
||||||
import styles from './Settings.module.scss'
|
import styles from './Settings.module.scss'
|
||||||
import { useProfileForm } from '../../../context/profile'
|
import { useProfileForm } from '../../../context/profile'
|
||||||
|
@ -12,12 +11,18 @@ import { createFileUploader, UploadFile } from '@solid-primitives/upload'
|
||||||
import { Loading } from '../../Loading'
|
import { Loading } from '../../Loading'
|
||||||
import { useSession } from '../../../context/session'
|
import { useSession } from '../../../context/session'
|
||||||
import Button from '../../_shared/Button'
|
import Button from '../../_shared/Button'
|
||||||
|
import { useSnackbar } from '../../../context/snackbar'
|
||||||
|
|
||||||
export const ProfileSettingsPage = () => {
|
export const ProfileSettingsPage = () => {
|
||||||
const [addLinkForm, setAddLinkForm] = createSignal(false)
|
const [addLinkForm, setAddLinkForm] = createSignal(false)
|
||||||
const [incorrectUrl, setIncorrectUrl] = createSignal(false)
|
const [incorrectUrl, setIncorrectUrl] = createSignal(false)
|
||||||
const [isSubmitting, setIsSubmitting] = createSignal(false)
|
const [isSubmitting, setIsSubmitting] = createSignal(false)
|
||||||
const [isUserpicUpdating, setIsUserpicUpdating] = createSignal(false)
|
const [isUserpicUpdating, setIsUserpicUpdating] = createSignal(false)
|
||||||
|
|
||||||
|
const {
|
||||||
|
actions: { showSnackbar }
|
||||||
|
} = useSnackbar()
|
||||||
|
|
||||||
const {
|
const {
|
||||||
actions: { loadSession }
|
actions: { loadSession }
|
||||||
} = useSession()
|
} = useSession()
|
||||||
|
@ -31,11 +36,19 @@ export const ProfileSettingsPage = () => {
|
||||||
setIncorrectUrl(true)
|
setIncorrectUrl(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleSubmit = async (event: Event) => {
|
const handleSubmit = async (event: Event) => {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
setIsSubmitting(true)
|
setIsSubmitting(true)
|
||||||
|
|
||||||
|
try {
|
||||||
await submit(form)
|
await submit(form)
|
||||||
await loadSession()
|
showSnackbar({ body: t('Profile successfully saved') })
|
||||||
|
} catch {
|
||||||
|
showSnackbar({ type: 'error', body: t('Error') })
|
||||||
|
}
|
||||||
|
|
||||||
|
loadSession()
|
||||||
setIsSubmitting(false)
|
setIsSubmitting(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ import { ProfileSettingsPage } from './Pages/profile/ProfileSettingsPage'
|
||||||
import { ProfileSecurityPage } from './Pages/profile/ProfileSecurityPage'
|
import { ProfileSecurityPage } from './Pages/profile/ProfileSecurityPage'
|
||||||
import { ProfileSubscriptionsPage } from './Pages/profile/ProfileSubscriptionsPage'
|
import { ProfileSubscriptionsPage } from './Pages/profile/ProfileSubscriptionsPage'
|
||||||
import CreateSettingsPage from './Pages/CreateSettingsPage'
|
import CreateSettingsPage from './Pages/CreateSettingsPage'
|
||||||
|
import { SnackbarProvider } from '../context/snackbar'
|
||||||
|
|
||||||
// TODO: lazy load
|
// TODO: lazy load
|
||||||
// const SomePage = lazy(() => import('./Pages/SomePage'))
|
// const SomePage = lazy(() => import('./Pages/SomePage'))
|
||||||
|
@ -98,8 +99,10 @@ export const Root = (props: PageProps) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
<SnackbarProvider>
|
||||||
<SessionProvider>
|
<SessionProvider>
|
||||||
<Dynamic component={pageComponent()} {...props} />
|
<Dynamic component={pageComponent()} {...props} />
|
||||||
</SessionProvider>
|
</SessionProvider>
|
||||||
|
</SnackbarProvider>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,16 +13,12 @@ const useProfileForm = () => {
|
||||||
const [slugError, setSlugError] = createSignal<string>()
|
const [slugError, setSlugError] = createSignal<string>()
|
||||||
|
|
||||||
const submit = async (profile: ProfileInput) => {
|
const submit = async (profile: ProfileInput) => {
|
||||||
try {
|
|
||||||
const response = await apiClient.updateProfile(profile)
|
const response = await apiClient.updateProfile(profile)
|
||||||
if (response.error) {
|
if (response.error) {
|
||||||
setSlugError(response.error)
|
setSlugError(response.error)
|
||||||
return response.error
|
return response.error
|
||||||
}
|
}
|
||||||
return response
|
return response
|
||||||
} catch (error) {
|
|
||||||
console.error(error)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const [form, setForm] = createStore<ProfileInput>({
|
const [form, setForm] = createStore<ProfileInput>({
|
||||||
|
|
79
src/context/snackbar.tsx
Normal file
79
src/context/snackbar.tsx
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
import type { Accessor, JSX } from 'solid-js'
|
||||||
|
import { createContext, createSignal, useContext } from 'solid-js'
|
||||||
|
import { delay } from '../utils/delay'
|
||||||
|
|
||||||
|
const DEFAULT_DURATION = 5000 // 5 sec
|
||||||
|
|
||||||
|
type SnackbarMessage = {
|
||||||
|
type: 'success' | 'error'
|
||||||
|
body: string | JSX.Element
|
||||||
|
duration: number
|
||||||
|
}
|
||||||
|
|
||||||
|
type SnackbarContextType = {
|
||||||
|
snackbarMessage: Accessor<SnackbarMessage>
|
||||||
|
actions: {
|
||||||
|
showSnackbar: (message: {
|
||||||
|
type?: SnackbarMessage['type']
|
||||||
|
body: SnackbarMessage['body']
|
||||||
|
duration?: SnackbarMessage['duration']
|
||||||
|
}) => Promise<void>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const SnackbarContext = createContext<SnackbarContextType>()
|
||||||
|
|
||||||
|
export function useSnackbar() {
|
||||||
|
return useContext(SnackbarContext)
|
||||||
|
}
|
||||||
|
|
||||||
|
const messagesToShow: SnackbarMessage[] = []
|
||||||
|
|
||||||
|
let currentCheckMessagesPromise = null
|
||||||
|
|
||||||
|
export const SnackbarProvider = (props: { children: JSX.Element }) => {
|
||||||
|
const [snackbarMessage, setSnackbarMessage] = createSignal<SnackbarMessage>(null)
|
||||||
|
|
||||||
|
const checkMessages = async () => {
|
||||||
|
if (messagesToShow.length === 0) {
|
||||||
|
currentCheckMessagesPromise = null
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
setSnackbarMessage(messagesToShow[0])
|
||||||
|
await delay(messagesToShow[0].duration)
|
||||||
|
setSnackbarMessage(null)
|
||||||
|
await delay(1000)
|
||||||
|
messagesToShow.shift()
|
||||||
|
await checkMessages()
|
||||||
|
}
|
||||||
|
|
||||||
|
const showSnackbar = async (message: {
|
||||||
|
type?: SnackbarMessage['type']
|
||||||
|
body: SnackbarMessage['body']
|
||||||
|
duration?: SnackbarMessage['duration']
|
||||||
|
}): Promise<void> => {
|
||||||
|
const messageToShow = {
|
||||||
|
type: message.type ?? 'success',
|
||||||
|
body: message.body,
|
||||||
|
duration: message.duration ?? DEFAULT_DURATION
|
||||||
|
}
|
||||||
|
|
||||||
|
messagesToShow.push(messageToShow)
|
||||||
|
|
||||||
|
if (!currentCheckMessagesPromise) {
|
||||||
|
currentCheckMessagesPromise = checkMessages()
|
||||||
|
await currentCheckMessagesPromise
|
||||||
|
}
|
||||||
|
|
||||||
|
return currentCheckMessagesPromise
|
||||||
|
}
|
||||||
|
|
||||||
|
const actions = {
|
||||||
|
showSnackbar
|
||||||
|
}
|
||||||
|
|
||||||
|
const value: SnackbarContextType = { snackbarMessage, actions }
|
||||||
|
|
||||||
|
return <SnackbarContext.Provider value={value}>{props.children}</SnackbarContext.Provider>
|
||||||
|
}
|
|
@ -225,9 +225,9 @@
|
||||||
"My subscriptions": "Подписки",
|
"My subscriptions": "Подписки",
|
||||||
"Nothing here yet": "Здесь пока ничего нет",
|
"Nothing here yet": "Здесь пока ничего нет",
|
||||||
"Edited": "Отредактирован",
|
"Edited": "Отредактирован",
|
||||||
"Nothing here yet": "Здесь пока ничего нет",
|
|
||||||
"Invite experts": "Пригласить экспертов",
|
"Invite experts": "Пригласить экспертов",
|
||||||
"Subscribe to comments": "Подписаться на комментарии",
|
"Subscribe to comments": "Подписаться на комментарии",
|
||||||
"Add to bookmarks": "Добавить в закладки",
|
"Add to bookmarks": "Добавить в закладки",
|
||||||
"Get notifications": "Получать уведомления"
|
"Get notifications": "Получать уведомления",
|
||||||
|
"Profile successfully saved": "Профиль успешно сохранён"
|
||||||
}
|
}
|
||||||
|
|
1
src/utils/delay.ts
Normal file
1
src/utils/delay.ts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export const delay = async (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms))
|
186
yarn.lock
186
yarn.lock
|
@ -217,6 +217,14 @@
|
||||||
"@aws-sdk/types" "3.226.0"
|
"@aws-sdk/types" "3.226.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/abort-controller@^3.266.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.267.0.tgz#a9101d6ed54ebd58741cd83fb6aea0f9c187e3b0"
|
||||||
|
integrity sha512-5R7OSnHFV/f+qQpMf1RuSQoVdXroK94Vl6naWjMOAhMyofHykVhEok9hmFPac86AVx8rVX/vuA7u9GKI6/EE7g==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/chunked-blob-reader-native@3.208.0":
|
"@aws-sdk/chunked-blob-reader-native@3.208.0":
|
||||||
version "3.208.0"
|
version "3.208.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.208.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.208.0.tgz"
|
||||||
|
@ -605,13 +613,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/lib-storage@^3.223.0":
|
"@aws-sdk/lib-storage@^3.266.0":
|
||||||
version "3.235.0"
|
version "3.267.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.235.0.tgz"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.267.0.tgz#ba77c4eb559370ed0f29afac5f273fc9b69dc37f"
|
||||||
integrity sha512-+xQtPsToeA4RFiWmO+j5DbDsisPBwNb5k87z1NbrlsZkbj7ONTunX5F3qqe2bR+1o7Pb5O1REQrIQohT6QECaw==
|
integrity sha512-MljL0PavGZ3Yc1kkSjWIAzY6TWTWi7iuCpAi/DQKs0TyjSuX5vtxLmSVv1Wlx3ywrI8HDlo2xG7bvhjDQDN3gw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-sdk/middleware-endpoint" "3.226.0"
|
"@aws-sdk/middleware-endpoint" "3.267.0"
|
||||||
"@aws-sdk/smithy-client" "3.234.0"
|
"@aws-sdk/smithy-client" "3.267.0"
|
||||||
buffer "5.6.0"
|
buffer "5.6.0"
|
||||||
events "3.3.0"
|
events "3.3.0"
|
||||||
stream-browserify "3.0.0"
|
stream-browserify "3.0.0"
|
||||||
|
@ -661,6 +669,20 @@
|
||||||
"@aws-sdk/util-middleware" "3.226.0"
|
"@aws-sdk/util-middleware" "3.226.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/middleware-endpoint@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.267.0.tgz#2e5ca14e1a26220b9b77dddf0ddec0db8d79155d"
|
||||||
|
integrity sha512-pGICM/qlQVfixtfKZt8zHq54KvLG2MmOAgNWj2MXB7oirPs/3rC9Kz9ITFXJgjlRFyfssgP/feKhs2yZkI8lhw==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/middleware-serde" "3.267.0"
|
||||||
|
"@aws-sdk/protocol-http" "3.267.0"
|
||||||
|
"@aws-sdk/signature-v4" "3.267.0"
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
"@aws-sdk/url-parser" "3.267.0"
|
||||||
|
"@aws-sdk/util-config-provider" "3.208.0"
|
||||||
|
"@aws-sdk/util-middleware" "3.267.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/middleware-expect-continue@3.226.0":
|
"@aws-sdk/middleware-expect-continue@3.226.0":
|
||||||
version "3.226.0"
|
version "3.226.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.226.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.226.0.tgz"
|
||||||
|
@ -759,6 +781,14 @@
|
||||||
"@aws-sdk/types" "3.226.0"
|
"@aws-sdk/types" "3.226.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/middleware-serde@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.267.0.tgz#b1ce247834ad9531e868189616b3adfb2d8af1b2"
|
||||||
|
integrity sha512-9qspxiZs+JShukzKMAameBSubfvtUOGZviu9GT5OfRekY2dBbwWcfchP2WvlwxZ/CcC+GwO1HcPqKDCMGsNoow==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/middleware-signing@3.226.0":
|
"@aws-sdk/middleware-signing@3.226.0":
|
||||||
version "3.226.0"
|
version "3.226.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz"
|
||||||
|
@ -786,6 +816,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/middleware-stack@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.267.0.tgz#f16334b1f99e8714e1f4d98faa065f669aff7885"
|
||||||
|
integrity sha512-52uH3JO3ceI15dgzt8gU7lpJf59qbRUQYJ7pAmTMiHtyEawZ39Puv6sGheY3fAffhqd/aQvup6wn18Q1fRIQUA==
|
||||||
|
dependencies:
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/middleware-user-agent@3.226.0":
|
"@aws-sdk/middleware-user-agent@3.226.0":
|
||||||
version "3.226.0"
|
version "3.226.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz"
|
||||||
|
@ -832,6 +869,14 @@
|
||||||
"@aws-sdk/types" "3.226.0"
|
"@aws-sdk/types" "3.226.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/protocol-http@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.267.0.tgz#12c2e0fbaa01f9658daedad8196fa52c74675394"
|
||||||
|
integrity sha512-8HhOZXMCZ0nsJC/FoifX7YrTYGP91tCpSxIHkr7HxQcTdBMI7QakMtIIWK9Qjsy6tUI98aAdEo5PNCbzdpozmQ==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/querystring-builder@3.226.0":
|
"@aws-sdk/querystring-builder@3.226.0":
|
||||||
version "3.226.0"
|
version "3.226.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz"
|
||||||
|
@ -849,6 +894,14 @@
|
||||||
"@aws-sdk/types" "3.226.0"
|
"@aws-sdk/types" "3.226.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/querystring-parser@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.267.0.tgz#497758012c335aab08bbea1e5a7d5e6d61dec320"
|
||||||
|
integrity sha512-Krq36GXqEfRfzJ9wOzkkzpbb4SWjgSYydTIgK6KtKapme0HPcB24kmmsjsUVuHzKuQMCHHDRWm+b47iBmHGpSQ==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/service-error-classification@3.229.0":
|
"@aws-sdk/service-error-classification@3.229.0":
|
||||||
version "3.229.0"
|
version "3.229.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz"
|
||||||
|
@ -885,6 +938,19 @@
|
||||||
"@aws-sdk/util-uri-escape" "3.201.0"
|
"@aws-sdk/util-uri-escape" "3.201.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/signature-v4@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.267.0.tgz#15812f48f487828353c1e33574cb789cedef659c"
|
||||||
|
integrity sha512-Je1e7rum2zvxa3jWfwq4E+fyBdFJmSJAwGtWYz3+/rWipwXFlSAPeSVqtNjHdfzakgabvzLp7aesG4yQTrO2YQ==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/is-array-buffer" "3.201.0"
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
"@aws-sdk/util-hex-encoding" "3.201.0"
|
||||||
|
"@aws-sdk/util-middleware" "3.267.0"
|
||||||
|
"@aws-sdk/util-uri-escape" "3.201.0"
|
||||||
|
"@aws-sdk/util-utf8" "3.254.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/smithy-client@3.234.0":
|
"@aws-sdk/smithy-client@3.234.0":
|
||||||
version "3.234.0"
|
version "3.234.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz"
|
||||||
|
@ -894,6 +960,15 @@
|
||||||
"@aws-sdk/types" "3.226.0"
|
"@aws-sdk/types" "3.226.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/smithy-client@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.267.0.tgz#a3148a49900e284c3c140a5b7514e20e6d4342ae"
|
||||||
|
integrity sha512-WdgXHqKmFQIkAWETO/I5boX9u6QbMLC4X74OVSBaBLhRjqYmvolMFtNrQzvSKGB3FaxAN9Do41amC0mGoeLC8A==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/middleware-stack" "3.267.0"
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/token-providers@3.235.0":
|
"@aws-sdk/token-providers@3.235.0":
|
||||||
version "3.235.0"
|
version "3.235.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.235.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.235.0.tgz"
|
||||||
|
@ -912,6 +987,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/types@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.267.0.tgz#fe543d1a1977c4e9e7ca6c32c837fcfd87b32441"
|
||||||
|
integrity sha512-fICTbSeIfXlTHnciQgDt37R0kXoKxgh0a3prnLWVvTcmf7NFujdZmg5YTAZT3KJJ7SuKsIgnI8azBYioVY8BVQ==
|
||||||
|
dependencies:
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/url-parser@3.226.0":
|
"@aws-sdk/url-parser@3.226.0":
|
||||||
version "3.226.0"
|
version "3.226.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz"
|
||||||
|
@ -921,6 +1003,15 @@
|
||||||
"@aws-sdk/types" "3.226.0"
|
"@aws-sdk/types" "3.226.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/url-parser@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.267.0.tgz#c103fba8f2c1c4bed1c6fa85ef4fd27d3147f81d"
|
||||||
|
integrity sha512-xoQ5Fd11moiE82QTL9GGE6e73SFuD0Wi73tA75TAwKuY12OP5vDJ4oBC86A1G2T+OzeHJQmYyqiA5j48CzqB6A==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/querystring-parser" "3.267.0"
|
||||||
|
"@aws-sdk/types" "3.267.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/util-arn-parser@3.208.0":
|
"@aws-sdk/util-arn-parser@3.208.0":
|
||||||
version "3.208.0"
|
version "3.208.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.208.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.208.0.tgz"
|
||||||
|
@ -1016,6 +1107,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/util-middleware@3.267.0":
|
||||||
|
version "3.267.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.267.0.tgz#99a9c72b889e6d8cbd3ee6fa8c7a0190984945ce"
|
||||||
|
integrity sha512-7nvqBZVz3RdwYv6lU958g6sWI2Qt8lzxDVn0uwfnPH+fAiX7Ln1Hen2A0XeW5cL5uYUJy6wNM5cyfTzFZosE0A==
|
||||||
|
dependencies:
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/util-retry@3.229.0":
|
"@aws-sdk/util-retry@3.229.0":
|
||||||
version "3.229.0"
|
version "3.229.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz"
|
||||||
|
@ -1086,6 +1184,14 @@
|
||||||
"@aws-sdk/util-buffer-from" "3.208.0"
|
"@aws-sdk/util-buffer-from" "3.208.0"
|
||||||
tslib "^2.3.1"
|
tslib "^2.3.1"
|
||||||
|
|
||||||
|
"@aws-sdk/util-utf8@3.254.0":
|
||||||
|
version "3.254.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz#909af9c6549833a9a9bf77004b7484bfc96b2c35"
|
||||||
|
integrity sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==
|
||||||
|
dependencies:
|
||||||
|
"@aws-sdk/util-buffer-from" "3.208.0"
|
||||||
|
tslib "^2.3.1"
|
||||||
|
|
||||||
"@aws-sdk/util-waiter@3.226.0":
|
"@aws-sdk/util-waiter@3.226.0":
|
||||||
version "3.226.0"
|
version "3.226.0"
|
||||||
resolved "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.226.0.tgz"
|
resolved "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.226.0.tgz"
|
||||||
|
@ -1675,7 +1781,7 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.18.9"
|
"@babel/helper-plugin-utils" "^7.18.9"
|
||||||
|
|
||||||
"@babel/runtime@^7.0.0", "@babel/runtime@^7.15.4":
|
"@babel/runtime@^7.0.0":
|
||||||
version "7.20.0"
|
version "7.20.0"
|
||||||
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz"
|
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz"
|
||||||
integrity sha512-NDYdls71fTXoU8TZHfbBWg7DiZfNzClcKui/+kyi6ppD2L1qnWW3VV6CjtaBXSUGGhiTWJ6ereOIkUvenif66Q==
|
integrity sha512-NDYdls71fTXoU8TZHfbBWg7DiZfNzClcKui/+kyi6ppD2L1qnWW3VV6CjtaBXSUGGhiTWJ6ereOIkUvenif66Q==
|
||||||
|
@ -3183,11 +3289,6 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/lodash@^4.14.175":
|
|
||||||
version "4.14.186"
|
|
||||||
resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz"
|
|
||||||
integrity sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==
|
|
||||||
|
|
||||||
"@types/mdast@^3.0.0":
|
"@types/mdast@^3.0.0":
|
||||||
version "3.0.10"
|
version "3.0.10"
|
||||||
resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz"
|
resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz"
|
||||||
|
@ -7736,11 +7837,6 @@ locate-path@^6.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
p-locate "^5.0.0"
|
p-locate "^5.0.0"
|
||||||
|
|
||||||
lodash-es@^4.17.21:
|
|
||||||
version "4.17.21"
|
|
||||||
resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
|
|
||||||
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
|
||||||
|
|
||||||
lodash.camelcase@^4.3.0:
|
lodash.camelcase@^4.3.0:
|
||||||
version "4.3.0"
|
version "4.3.0"
|
||||||
resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"
|
resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"
|
||||||
|
@ -8484,11 +8580,6 @@ mute-stream@0.0.8:
|
||||||
resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz"
|
resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz"
|
||||||
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
|
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
|
||||||
|
|
||||||
nanoclone@^0.2.1:
|
|
||||||
version "0.2.1"
|
|
||||||
resolved "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz"
|
|
||||||
integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==
|
|
||||||
|
|
||||||
nanoid@^3.3.4:
|
nanoid@^3.3.4:
|
||||||
version "3.3.4"
|
version "3.3.4"
|
||||||
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
|
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
|
||||||
|
@ -9156,11 +9247,6 @@ prompts@^2.0.1, prompts@^2.4.2:
|
||||||
kleur "^3.0.3"
|
kleur "^3.0.3"
|
||||||
sisteransi "^1.0.5"
|
sisteransi "^1.0.5"
|
||||||
|
|
||||||
property-expr@^2.0.4:
|
|
||||||
version "2.0.5"
|
|
||||||
resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz"
|
|
||||||
integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==
|
|
||||||
|
|
||||||
property-information@^6.0.0:
|
property-information@^6.0.0:
|
||||||
version "6.1.1"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz"
|
resolved "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz"
|
||||||
|
@ -9978,21 +10064,6 @@ snake-case@^3.0.4:
|
||||||
dot-case "^3.0.4"
|
dot-case "^3.0.4"
|
||||||
tslib "^2.0.3"
|
tslib "^2.0.3"
|
||||||
|
|
||||||
solid-js-form@^0.1.8:
|
|
||||||
version "0.1.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/solid-js-form/-/solid-js-form-0.1.8.tgz#cc50bb7f782fa6f91651a1885b799432b03d6b3b"
|
|
||||||
integrity sha512-kOKZ5et9t1T8P8GAi4FIyuoGO2Y14YnTyKT7kla3wbtcDeWb4dqvxSqmNHRx8r9ZxTN/hpl3WxmwtOBOPalSaA==
|
|
||||||
dependencies:
|
|
||||||
solid-js "^1.1.2"
|
|
||||||
yup "^0.32.9"
|
|
||||||
|
|
||||||
solid-js@^1.1.2:
|
|
||||||
version "1.6.6"
|
|
||||||
resolved "https://registry.npmjs.org/solid-js/-/solid-js-1.6.6.tgz"
|
|
||||||
integrity sha512-5x33mEbPI8QLuywvFjQP4krjWDr8xiYFgZx9KCBH7b0ZzypQCHaUubob7bK6i+1u6nhaAqhWtvXS587Kb8DShA==
|
|
||||||
dependencies:
|
|
||||||
csstype "^3.1.0"
|
|
||||||
|
|
||||||
solid-js@^1.6.9:
|
solid-js@^1.6.9:
|
||||||
version "1.6.10"
|
version "1.6.10"
|
||||||
resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.6.10.tgz#fbd8e0a4adfe7b38da1885170369ede6a1cc7379"
|
resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.6.10.tgz#fbd8e0a4adfe7b38da1885170369ede6a1cc7379"
|
||||||
|
@ -10000,15 +10071,10 @@ solid-js@^1.6.9:
|
||||||
dependencies:
|
dependencies:
|
||||||
csstype "^3.1.0"
|
csstype "^3.1.0"
|
||||||
|
|
||||||
solid-jsx@^0.9.1:
|
solid-transition-group@^0.0.13:
|
||||||
version "0.9.1"
|
version "0.0.13"
|
||||||
resolved "https://registry.npmjs.org/solid-jsx/-/solid-jsx-0.9.1.tgz"
|
resolved "https://registry.yarnpkg.com/solid-transition-group/-/solid-transition-group-0.0.13.tgz#1a476d3798759be106ad1062cc071db139b0d564"
|
||||||
integrity sha512-HHTx58rx3tqg5LMGuQnaE1vqZjpl+RMP0jYQnBkTY0xKIASVNSLZJCZoPFrpKH8wWWYyTLHdepgzs8u/e6yz5Q==
|
integrity sha512-VA1V0ip4dsNOQJ/dCluCiAPBUuHspYFm4WYG91jpNmcP4rC4DY1S1EGds44JjiUAP7qEoEZdMhPaiS6lqTF7AA==
|
||||||
|
|
||||||
solid-utils@^0.8.1:
|
|
||||||
version "0.8.1"
|
|
||||||
resolved "https://registry.npmjs.org/solid-utils/-/solid-utils-0.8.1.tgz"
|
|
||||||
integrity sha512-LLeO7Hr99OLFY+Zfx8U7Hw5VZOaFT8qWoLWGfnq3kDmo7KAGdIoq44ijy7mdYj88e+2cWPdkyhItsS3FGjeS6g==
|
|
||||||
|
|
||||||
sort-object-keys@^1.1.3:
|
sort-object-keys@^1.1.3:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
|
@ -10570,11 +10636,6 @@ to-regex-range@^5.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-number "^7.0.0"
|
is-number "^7.0.0"
|
||||||
|
|
||||||
toposort@^2.0.2:
|
|
||||||
version "2.0.2"
|
|
||||||
resolved "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz"
|
|
||||||
integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==
|
|
||||||
|
|
||||||
tr46@~0.0.3:
|
tr46@~0.0.3:
|
||||||
version "0.0.3"
|
version "0.0.3"
|
||||||
resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
|
resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
|
||||||
|
@ -11437,19 +11498,6 @@ yocto-queue@^0.1.0:
|
||||||
resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
|
resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
|
||||||
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
||||||
|
|
||||||
yup@^0.32.9:
|
|
||||||
version "0.32.11"
|
|
||||||
resolved "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz"
|
|
||||||
integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==
|
|
||||||
dependencies:
|
|
||||||
"@babel/runtime" "^7.15.4"
|
|
||||||
"@types/lodash" "^4.14.175"
|
|
||||||
lodash "^4.17.21"
|
|
||||||
lodash-es "^4.17.21"
|
|
||||||
nanoclone "^0.2.1"
|
|
||||||
property-expr "^2.0.4"
|
|
||||||
toposort "^2.0.2"
|
|
||||||
|
|
||||||
zod@^3.17.3:
|
zod@^3.17.3:
|
||||||
version "3.19.1"
|
version "3.19.1"
|
||||||
resolved "https://registry.npmjs.org/zod/-/zod-3.19.1.tgz"
|
resolved "https://registry.npmjs.org/zod/-/zod-3.19.1.tgz"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user