buttong-view

This commit is contained in:
Untone 2024-02-15 20:26:53 +03:00
parent b379c55442
commit 9a7ac16a1a
4 changed files with 2412 additions and 5172 deletions

7457
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -22,37 +22,25 @@
"lint:code:fix": "npx @biomejs/biome lint src --apply-unsafe --log-kind=compact --verbose", "lint:code:fix": "npx @biomejs/biome lint src --apply-unsafe --log-kind=compact --verbose",
"lint:styles": "stylelint **/*.{scss,css}", "lint:styles": "stylelint **/*.{scss,css}",
"lint:styles:fix": "stylelint **/*.{scss,css} --fix", "lint:styles:fix": "stylelint **/*.{scss,css} --fix",
"pre-commit": "lint-staged",
"prepare": "husky install",
"preview": "vite preview", "preview": "vite preview",
"start": "vite", "start": "vite",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"typecheck:watch": "tsc --noEmit --watch" "typecheck:watch": "tsc --noEmit --watch"
}, },
"dependencies": { "dependencies": {
"@authorizerdev/authorizer-js": "2.0.0",
"@solid-primitives/pagination": "0.2.10",
"cropperjs": "1.6.1",
"form-data": "4.0.0", "form-data": "4.0.0",
"ga-gtag": "1.2.0", "mailgun.js": "10.1.0"
"i18next": "22.4.15",
"i18next-icu": "2.3.0",
"idb": "7.1.1",
"intl-messageformat": "10.5.3",
"just-throttle": "4.2.0",
"mailgun.js": "8.2.1"
}, },
"devDependencies": { "devDependencies": {
"@authorizerdev/authorizer-js": "2.0.0",
"@babel/core": "7.23.3", "@babel/core": "7.23.3",
"@biomejs/biome": "^1.5.3", "@biomejs/biome": "^1.5.3",
"@graphql-codegen/cli": "5.0.0", "@graphql-codegen/cli": "^5.0.0",
"@graphql-codegen/typescript": "4.0.1", "@graphql-codegen/typescript": "^4.0.1",
"@graphql-codegen/typescript-operations": "4.0.1", "@graphql-codegen/typescript-operations": "^4.0.1",
"@graphql-codegen/typescript-urql": "4.0.0", "@graphql-codegen/typescript-urql": "^4.0.0",
"@graphql-codegen/urql-introspection": "3.0.0",
"@graphql-tools/url-loader": "8.0.1", "@graphql-tools/url-loader": "8.0.1",
"@graphql-typed-document-node/core": "3.2.0", "@hocuspocus/provider": "2.11.0",
"@hocuspocus/provider": "2.0.6",
"@microsoft/fetch-event-source": "^2.0.1", "@microsoft/fetch-event-source": "^2.0.1",
"@nanostores/router": "0.13.0", "@nanostores/router": "0.13.0",
"@nanostores/solid": "0.4.2", "@nanostores/solid": "0.4.2",
@ -61,6 +49,7 @@
"@sentry/browser": "7.99.0", "@sentry/browser": "7.99.0",
"@solid-primitives/media": "2.2.3", "@solid-primitives/media": "2.2.3",
"@solid-primitives/memo": "1.2.4", "@solid-primitives/memo": "1.2.4",
"@solid-primitives/pagination": "0.2.10",
"@solid-primitives/share": "2.0.4", "@solid-primitives/share": "2.0.4",
"@solid-primitives/storage": "1.3.9", "@solid-primitives/storage": "1.3.9",
"@solid-primitives/upload": "0.0.110", "@solid-primitives/upload": "0.0.110",
@ -96,22 +85,25 @@
"@tiptap/extension-underline": "2.2.2", "@tiptap/extension-underline": "2.2.2",
"@tiptap/extension-youtube": "2.2.2", "@tiptap/extension-youtube": "2.2.2",
"@types/js-cookie": "3.0.6", "@types/js-cookie": "3.0.6",
"@types/node": "20.9.0", "@types/node": "^20.9.0",
"@urql/core": "4.2.3", "@urql/core": "4.2.3",
"@urql/devtools": "2.0.3", "@urql/devtools": "^2.0.3",
"babel-preset-solid": "1.8.4", "babel-preset-solid": "1.8.4",
"bootstrap": "5.3.2", "bootstrap": "5.3.2",
"change-case": "5.2.0",
"clsx": "2.0.0", "clsx": "2.0.0",
"cropperjs": "1.6.1",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"fast-deep-equal": "3.1.3", "fast-deep-equal": "3.1.3",
"ga-gtag": "1.2.0",
"graphql": "16.8.1", "graphql": "16.8.1",
"graphql-tag": "2.12.6", "graphql-tag": "2.12.6",
"husky": "8.0.3", "husky": "8.0.3",
"hygen": "6.2.11", "hygen": "6.2.11",
"i18next": "22.4.15",
"i18next-http-backend": "2.2.0", "i18next-http-backend": "2.2.0",
"i18next-icu": "2.3.0",
"intl-messageformat": "10.5.3",
"javascript-time-ago": "2.5.9", "javascript-time-ago": "2.5.9",
"jest": "29.7.0",
"js-cookie": "3.0.5", "js-cookie": "3.0.5",
"lint-staged": "15.1.0", "lint-staged": "15.1.0",
"loglevel": "1.8.1", "loglevel": "1.8.1",
@ -120,32 +112,31 @@
"prosemirror-history": "1.3.0", "prosemirror-history": "1.3.0",
"prosemirror-trailing-node": "2.0.3", "prosemirror-trailing-node": "2.0.3",
"prosemirror-view": "1.30.2", "prosemirror-view": "1.30.2",
"rollup": "3.21.6", "rollup": "4.11.0",
"sass": "1.69.5", "sass": "1.69.5",
"solid-js": "1.8.7", "solid-js": "1.8.14",
"solid-popper": "0.3.0", "solid-popper": "0.3.0",
"solid-tiptap": "0.7.0", "solid-tiptap": "0.7.0",
"solid-transition-group": "0.2.3", "solid-transition-group": "0.2.3",
"sort-json": "2.0.1", "stylelint": "^16.0.0",
"sort-package-json": "2.6.0", "stylelint-config-standard-scss": "^13.0.0",
"stylelint": "15.11.0", "stylelint-order": "^6.0.3",
"stylelint-config-standard-scss": "11.1.0", "stylelint-scss": "^6.1.0",
"stylelint-order": "6.0.3",
"stylelint-scss": "5.3.1",
"swiper": "11.0.5", "swiper": "11.0.5",
"throttle-debounce": "5.0.0", "throttle-debounce": "5.0.0",
"typescript": "5.2.2", "typescript": "5.2.2",
"typograf": "7.1.0", "typograf": "7.3.0",
"uniqolor": "1.1.0", "uniqolor": "1.1.0",
"vike": "0.4.148", "vike": "0.4.148",
"vite": "^5.0.0", "vite": "5.1.2",
"vite-plugin-mkcert": "1.16.0", "vite-plugin-mkcert": "^1.17.3",
"vite-plugin-sass-dts": "1.3.11", "vite-plugin-sass-dts": "^1.3.17",
"vite-plugin-solid": "2.7.2", "vite-plugin-solid": "2.10.1",
"y-prosemirror": "1.2.1", "y-prosemirror": "1.2.2",
"yjs": "13.6.0" "yjs": "13.6.8"
}, },
"overrides": { "overrides": {
"y-prosemirror": "1.2.1" "y-prosemirror": "1.2.2",
"yjs": "13.6.8"
} }
} }

View File

@ -15,7 +15,6 @@ import { PasswordField } from './PasswordField'
import { SocialProviders } from './SocialProviders' import { SocialProviders } from './SocialProviders'
import { email, setEmail } from './sharedLogic' import { email, setEmail } from './sharedLogic'
import { capitalize } from '../../../utils/capitalize'
import styles from './AuthModal.module.scss' import styles from './AuthModal.module.scss'
type FormFields = { type FormFields = {

View File

@ -137,23 +137,11 @@ export const RegisterForm = () => {
case 'verified': case 'verified':
setValidationErrors((prev) => ({ setValidationErrors((prev) => ({
email: ( email: (<>{t('This email is verified')}. {t('You can')}</>),
<>
{t('This email is verified')}. {t('You can')}
<span class="link" onClick={() => changeSearchParams({ mode: 'login' })}>
{t('enter')}
</span>
{t('or')}{' '}
<span class="link" onClick={() => changeSearchParams({ mode: 'send-reset-link' })}>
{t('Set the new password').toLocaleLowerCase()}
</span>
</>
),
})) }))
break break
case 'registered': case 'registered':
setValidationErrors((prev) => ({ setValidationErrors((prev) => ({ ...prev,
...prev,
email: ( email: (
<> <>
{t('This email is registered')}. {t('You can')}{' '} {t('This email is registered')}. {t('You can')}{' '}
@ -228,14 +216,26 @@ export const RegisterForm = () => {
</div> </div>
</div> </div>
<Show when={emailStatus() !== 'registered'} fallback={
<button class={clsx('button', styles.submitButton)} onClick={() => changeSearchParams({ mode: 'login' })}>
{emailStatus() === 'verified' ? t('Login') : t('')}
</button>}>
<PasswordField <PasswordField
disableAutocomplete={true} disableAutocomplete={true}
disabled={Boolean(emailStatus())} disabled={Boolean(emailStatus())}
errorMessage={(err) => setPasswordError(err)} errorMessage={(err) => setPasswordError(err)}
onInput={(value) => setPassword(value)} onInput={(value) => setPassword(value)}
/> />
</Show>
<div> <div>
<Show when={emailStatus() !== 'registered'} fallback={
<button
class={clsx('button', styles.submitButton)}
onClick={() => changeSearchParams({ mode: 'send-reset-link' })
}>
{t('Set the new password')}
</button>}>
<button <button
class={clsx('button', styles.submitButton)} class={clsx('button', styles.submitButton)}
disabled={isSubmitting() || Boolean(emailStatus())} disabled={isSubmitting() || Boolean(emailStatus())}
@ -243,6 +243,7 @@ export const RegisterForm = () => {
> >
{isSubmitting() ? '...' : t('Join')} {isSubmitting() ? '...' : t('Join')}
</button> </button>
</Show>
</div> </div>
</div> </div>