Hotfix/deploy error fix (#238)

* clear lint errors

* test

* test

* Revert "test"

This reverts commit 53cc0ca9d7eb3ee07571c6907f819172a02bf5e4.

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* unused libs removed

* test

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
This commit is contained in:
Ilya Y 2023-09-27 17:33:06 +03:00 committed by GitHub
parent dc30e678ee
commit a2382344d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 5913 additions and 7977 deletions

13700
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -93,12 +93,8 @@
"@urql/devtools": "2.0.3", "@urql/devtools": "2.0.3",
"@urql/exchange-graphcache": "5.2.0", "@urql/exchange-graphcache": "5.2.0",
"babel-preset-solid": "1.7.4", "babel-preset-solid": "1.7.4",
"bcryptjs": "2.4.3",
"bootstrap": "5.2.3", "bootstrap": "5.2.3",
"clsx": "1.2.1", "clsx": "1.2.1",
"cookie": "0.5.0",
"cookie-signature": "1.2.1",
"cosmiconfig-toml-loader": "1.0.0",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"debounce": "1.2.1", "debounce": "1.2.1",
"eslint": "8.40.0", "eslint": "8.40.0",
@ -115,12 +111,10 @@
"graphql": "16.6.0", "graphql": "16.6.0",
"graphql-tag": "2.12.6", "graphql-tag": "2.12.6",
"graphql-ws": "5.12.1", "graphql-ws": "5.12.1",
"hast-util-select": "5.0.5",
"html-to-json-parser": "1.1.0", "html-to-json-parser": "1.1.0",
"husky": "8.0.3", "husky": "8.0.3",
"hygen": "6.2.11", "hygen": "6.2.11",
"i18next-http-backend": "2.2.0", "i18next-http-backend": "2.2.0",
"idb": "7.1.1",
"jest": "29.5.0", "jest": "29.5.0",
"js-cookie": "3.0.5", "js-cookie": "3.0.5",
"lint-staged": "13.2.2", "lint-staged": "13.2.2",
@ -132,24 +126,8 @@
"markdown-it-mark": "3.0.1", "markdown-it-mark": "3.0.1",
"markdown-it-replace-link": "1.2.0", "markdown-it-replace-link": "1.2.0",
"nanostores": "0.7.4", "nanostores": "0.7.4",
"orderedmap": "2.1.0",
"prettier": "2.8.8", "prettier": "2.8.8",
"prettier-eslint": "15.0.1", "prettier-eslint": "15.0.1",
"prosemirror-commands": "1.5.1",
"prosemirror-dropcursor": "1.8.0",
"prosemirror-example-setup": "1.2.1",
"prosemirror-gapcursor": "1.3.1",
"prosemirror-history": "1.3.0",
"prosemirror-inputrules": "1.2.0",
"prosemirror-keymap": "1.2.1",
"prosemirror-markdown": "1.10.1",
"prosemirror-menu": "1.2.1",
"prosemirror-model": "1.19.0",
"prosemirror-schema-list": "1.2.2",
"prosemirror-state": "1.4.2",
"prosemirror-view": "1.30.2",
"rollup": "3.21.6",
"rollup-plugin-visualizer": "5.9.0",
"sass": "1.62.1", "sass": "1.62.1",
"solid-js": "1.7.5", "solid-js": "1.7.5",
"solid-popper": "0.3.0", "solid-popper": "0.3.0",
@ -161,24 +139,15 @@
"stylelint-order": "6.0.3", "stylelint-order": "6.0.3",
"stylelint-scss": "5.0.0", "stylelint-scss": "5.0.0",
"swiper": "9.4.1", "swiper": "9.4.1",
"ts-node": "10.9.1",
"typescript": "5.0.4", "typescript": "5.0.4",
"typograf": "7.1.0", "typograf": "7.1.0",
"undici": "5.21.0",
"uniqolor": "1.1.0", "uniqolor": "1.1.0",
"unique-names-generator": "4.7.1",
"uuid": "9.0.0", "uuid": "9.0.0",
"vite": "4.3.9", "vite": "4.3.9",
"vite-plugin-sass-dts": "1.3.5", "vite-plugin-sass-dts": "1.3.5",
"vite-plugin-solid": "2.7.0", "vite-plugin-solid": "2.7.0",
"vite-plugin-ssr": "0.4.123", "vite-plugin-ssr": "0.4.123",
"wonka": "6.3.1",
"ws": "8.13.0",
"y-indexeddb": "9.0.10",
"y-prosemirror": "1.2.1", "y-prosemirror": "1.2.1",
"y-protocols": "1.0.5",
"y-webrtc": "10.2.5",
"y-websocket": "1.5.0",
"yjs": "13.6.0" "yjs": "13.6.0"
}, },
"overrides": { "overrides": {

View File

@ -451,12 +451,7 @@ export const Header = (props: Props) => {
> >
<ul class="nodash"> <ul class="nodash">
<li> <li>
<a <a href={getPagePath(router, 'feed')}>
href={getPagePath(router, 'feed')}
class={clsx({
[styles.selected]: page().route === 'feed'
})}
>
<span class={styles.subnavigationItemName}> <span class={styles.subnavigationItemName}>
<Icon name="feed-all" class={styles.icon} /> <Icon name="feed-all" class={styles.icon} />
{t('general feed')} {t('general feed')}
@ -465,12 +460,7 @@ export const Header = (props: Props) => {
</li> </li>
<li> <li>
<a <a href={getPagePath(router, 'feedMy')}>
href={getPagePath(router, 'feedMy')}
class={clsx({
[styles.selected]: page().route === 'feedMy'
})}
>
<span class={styles.subnavigationItemName}> <span class={styles.subnavigationItemName}>
<Icon name="feed-my" class={styles.icon} /> <Icon name="feed-my" class={styles.icon} />
{t('My feed')} {t('My feed')}
@ -478,12 +468,7 @@ export const Header = (props: Props) => {
</a> </a>
</li> </li>
<li> <li>
<a <a href={getPagePath(router, 'feedCollaborations')}>
href={getPagePath(router, 'feedCollaborations')}
class={clsx({
[styles.selected]: page().route === 'feedCollaborations'
})}
>
<span class={styles.subnavigationItemName}> <span class={styles.subnavigationItemName}>
<Icon name="feed-collaborate" class={styles.icon} /> <Icon name="feed-collaborate" class={styles.icon} />
{t('Accomplices')} {t('Accomplices')}
@ -491,12 +476,7 @@ export const Header = (props: Props) => {
</a> </a>
</li> </li>
<li> <li>
<a <a href={getPagePath(router, 'feedDiscussions')}>
href={getPagePath(router, 'feedDiscussions')}
class={clsx({
[styles.selected]: page().route === 'feedDiscussions'
})}
>
<span class={styles.subnavigationItemName}> <span class={styles.subnavigationItemName}>
<Icon name="feed-discussion" class={styles.icon} /> <Icon name="feed-discussion" class={styles.icon} />
{t('Discussions')} {t('Discussions')}
@ -504,12 +484,7 @@ export const Header = (props: Props) => {
</a> </a>
</li> </li>
<li> <li>
<a <a href={getPagePath(router, 'feedBookmarks')}>
href={getPagePath(router, 'feedBookmarks')}
class={clsx({
[styles.selected]: page().route === 'feedBookmarks'
})}
>
<span class={styles.subnavigationItemName}> <span class={styles.subnavigationItemName}>
<Icon name="bookmark" class={styles.icon} /> <Icon name="bookmark" class={styles.icon} />
{t('Bookmarks')} {t('Bookmarks')}
@ -517,12 +492,7 @@ export const Header = (props: Props) => {
</a> </a>
</li> </li>
<li> <li>
<a <a href={getPagePath(router, 'feedNotifications')}>
href={getPagePath(router, 'feedNotifications')}
class={clsx({
[styles.selected]: page().route === 'feedNotifications'
})}
>
<span class={styles.subnavigationItemName}> <span class={styles.subnavigationItemName}>
<Icon name="feed-notifications" class={styles.icon} /> <Icon name="feed-notifications" class={styles.icon} />
{t('Notifications')} {t('Notifications')}

View File

@ -23,11 +23,14 @@ export const Modal = (props: Props) => {
const [visible, setVisible] = createSignal(false) const [visible, setVisible] = createSignal(false)
const allowClose = createMemo(() => props.allowClose !== false) const allowClose = createMemo(() => props.allowClose !== false)
const handleHide = () => { const handleHide = () => {
if (modal() && allowClose()) { if (modal()) {
if (allowClose()) {
props.onClose && props.onClose() props.onClose && props.onClose()
} else { } else {
redirectPage(router, 'home') redirectPage(router, 'home')
} }
}
hideModal() hideModal()
} }

View File

@ -6,7 +6,6 @@ import { useRouter } from '../../stores/router'
import { AuthorCard } from '../Author/AuthorCard' import { AuthorCard } from '../Author/AuthorCard'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { useSession } from '../../context/session' import { useSession } from '../../context/session'
import { translit } from '../../utils/ru2en'
import styles from '../../styles/AllTopics.module.scss' import styles from '../../styles/AllTopics.module.scss'
import { SearchField } from '../_shared/SearchField' import { SearchField } from '../_shared/SearchField'
import { scrollHandler } from '../../utils/scroll' import { scrollHandler } from '../../utils/scroll'

View File

@ -6,7 +6,6 @@ import { useRouter } from '../../stores/router'
import { TopicCard } from '../Topic/Card' import { TopicCard } from '../Topic/Card'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { useSession } from '../../context/session' import { useSession } from '../../context/session'
import { translit } from '../../utils/ru2en'
import styles from '../../styles/AllTopics.module.scss' import styles from '../../styles/AllTopics.module.scss'
import { SearchField } from '../_shared/SearchField' import { SearchField } from '../_shared/SearchField'
import { scrollHandler } from '../../utils/scroll' import { scrollHandler } from '../../utils/scroll'

View File

@ -18,7 +18,6 @@ import stylesTopic from '../Feed/CardTopic.module.scss'
import stylesBeside from '../../components/Feed/Beside.module.scss' import stylesBeside from '../../components/Feed/Beside.module.scss'
import { CommentDate } from '../Article/CommentDate' import { CommentDate } from '../Article/CommentDate'
import { Loading } from '../_shared/Loading' import { Loading } from '../_shared/Loading'
import { ConditionalWrapper } from '../_shared/ConditionalWrapper'
import { AuthGuard } from '../AuthGuard' import { AuthGuard } from '../AuthGuard'
import { useSession } from '../../context/session' import { useSession } from '../../context/session'

View File

@ -29,19 +29,17 @@ export const FeedSettingsView = (_props) => {
</ul> </ul>
<div class={styles.settingsList}> <div class={styles.settingsList}>
<div class={styles.settingsListRow}> <div>
<h2>Общее</h2> <h2>Общее</h2>
</div> </div>
<div class={styles.settingsListRow}> <div>
<label for="checkbox1" class={styles.settingsListCell}> <label for="checkbox1">Комментарии к&nbsp;моим постам</label>
Комментарии к&nbsp;моим постам <div>
</label>
<div class={styles.settingsListCell}>
<input type="checkbox" name="checkbox1" id="checkbox1" /> <input type="checkbox" name="checkbox1" id="checkbox1" />
<label for="checkbox1" /> <label for="checkbox1" />
</div> </div>
<div class={styles.settingsListCell}> <div>
<input <input
type="checkbox" type="checkbox"
name="checkbox1-notification" name="checkbox1-notification"
@ -52,15 +50,13 @@ export const FeedSettingsView = (_props) => {
</div> </div>
</div> </div>
<div class={styles.settingsListRow}> <div>
<label for="checkbox2" class={styles.settingsListCell}> <label for="checkbox2">новые подписчики</label>
новые подписчики <div>
</label>
<div class={styles.settingsListCell}>
<input type="checkbox" name="checkbox2" id="checkbox2" /> <input type="checkbox" name="checkbox2" id="checkbox2" />
<label for="checkbox2" /> <label for="checkbox2" />
</div> </div>
<div class={styles.settingsListCell}> <div>
<input <input
type="checkbox" type="checkbox"
name="checkbox2-notification" name="checkbox2-notification"
@ -71,15 +67,13 @@ export const FeedSettingsView = (_props) => {
</div> </div>
</div> </div>
<div class={styles.settingsListRow}> <div>
<label for="checkbox3" class={styles.settingsListCell}> <label for="checkbox3">добавление моих текстов в&nbsp;коллекции</label>
добавление моих текстов в&nbsp;коллекции <div>
</label>
<div class={styles.settingsListCell}>
<input type="checkbox" name="checkbox3" id="checkbox3" /> <input type="checkbox" name="checkbox3" id="checkbox3" />
<label for="checkbox3" /> <label for="checkbox3" />
</div> </div>
<div class={styles.settingsListCell}> <div>
<input <input
type="checkbox" type="checkbox"
name="checkbox3-notification" name="checkbox3-notification"
@ -90,19 +84,17 @@ export const FeedSettingsView = (_props) => {
</div> </div>
</div> </div>
<div class={styles.settingsListRow}> <div>
<h2>Мои подписки</h2> <h2>Мои подписки</h2>
</div> </div>
<div class={styles.settingsListRow}> <div>
<label for="checkbox4" class={styles.settingsListCell}> <label for="checkbox4">добавление моих текстов в&nbsp;коллекции</label>
добавление моих текстов в&nbsp;коллекции <div>
</label>
<div class={styles.settingsListCell}>
<input type="checkbox" name="checkbox4" id="checkbox4" /> <input type="checkbox" name="checkbox4" id="checkbox4" />
<label for="checkbox4" /> <label for="checkbox4" />
</div> </div>
<div class={styles.settingsListCell}> <div>
<input <input
type="checkbox" type="checkbox"
name="checkbox4-notification" name="checkbox4-notification"

View File

@ -10,7 +10,7 @@ import { Beside } from '../Feed/Beside'
import RowShort from '../Feed/RowShort' import RowShort from '../Feed/RowShort'
import { Slider } from '../_shared/Slider' import { Slider } from '../_shared/Slider'
import Group from '../Feed/Group' import Group from '../Feed/Group'
import type { Shout, Topic } from '../../graphql/types.gen' import type { Shout } from '../../graphql/types.gen'
import { useTopicsStore } from '../../stores/zine/topics' import { useTopicsStore } from '../../stores/zine/topics'
import { import {

View File

@ -17,11 +17,7 @@ import { dummyFilter } from '../../../utils/dummyFilter'
import styles from '../../../pages/profile/Settings.module.scss' import styles from '../../../pages/profile/Settings.module.scss'
import stylesSettings from '../../../styles/FeedSettings.module.scss' import stylesSettings from '../../../styles/FeedSettings.module.scss'
type Props = { export const ProfileSubscriptions = () => {
class?: string
}
export const ProfileSubscriptions = (props: Props) => {
const { t, lang } = useLocalize() const { t, lang } = useLocalize()
const { user } = useSession() const { user } = useSession()
const [following, setFollowing] = createSignal<Array<Author | Topic>>([]) const [following, setFollowing] = createSignal<Array<Author | Topic>>([])

View File

@ -7,7 +7,6 @@ import { clsx } from 'clsx'
import '../../styles/app.scss' import '../../styles/app.scss'
import styles from './PageLayout.module.scss' import styles from './PageLayout.module.scss'
import { Meta } from '@solidjs/meta' import { Meta } from '@solidjs/meta'
import { Topic } from '../../graphql/types.gen'
type Props = { type Props = {
headerTitle?: string headerTitle?: string

View File

@ -1,19 +1,14 @@
import { createMemo, createSignal, lazy, onMount, Show, Suspense } from 'solid-js' import { createMemo, createSignal, lazy, onMount, Show, Suspense } from 'solid-js'
import { PageLayout } from '../components/_shared/PageLayout' import { PageLayout } from '../components/_shared/PageLayout'
import { Loading } from '../components/_shared/Loading' import { Loading } from '../components/_shared/Loading'
import { useSession } from '../context/session'
import { Shout } from '../graphql/types.gen' import { Shout } from '../graphql/types.gen'
import { useRouter } from '../stores/router' import { useRouter } from '../stores/router'
import { apiClient } from '../utils/apiClient' import { apiClient } from '../utils/apiClient'
import { useLocalize } from '../context/localize'
import { AuthGuard } from '../components/AuthGuard' import { AuthGuard } from '../components/AuthGuard'
const Edit = lazy(() => import('../components/Views/Edit')) const Edit = lazy(() => import('../components/Views/Edit'))
export const EditPage = () => { export const EditPage = () => {
const { t } = useLocalize()
const { isAuthenticated, isSessionLoaded } = useSession()
const { page } = useRouter() const { page } = useRouter()
const shoutId = createMemo(() => Number((page().params as Record<'shoutId', string>).shoutId)) const shoutId = createMemo(() => Number((page().params as Record<'shoutId', string>).shoutId))

View File

@ -1,7 +1,7 @@
import type { PageContext } from '../renderer/types' import type { PageContext } from '../renderer/types'
import { apiClient } from '../utils/apiClient' import { apiClient } from '../utils/apiClient'
import type { PageProps } from './types' import type { PageProps } from './types'
import { PRERENDERED_ARTICLES_COUNT, RANDOM_TOPICS_COUNT } from '../components/Views/Home' import { PRERENDERED_ARTICLES_COUNT } from '../components/Views/Home'
export const onBeforeRender = async (_pageContext: PageContext) => { export const onBeforeRender = async (_pageContext: PageContext) => {
const homeShouts = await apiClient.getShouts({ const homeShouts = await apiClient.getShouts({

View File

@ -204,7 +204,9 @@ a:link,
.link { .link {
color: var(--link-color); color: var(--link-color);
padding-bottom: 0.1em; padding-bottom: 0.1em;
transition: color 0.2s, background-color 0.2s; transition:
color 0.2s,
background-color 0.2s;
&:hover { &:hover {
background-color: var(--link-hover-background); background-color: var(--link-hover-background);
@ -429,7 +431,10 @@ form {
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
transform-origin: 0 0; transform-origin: 0 0;
transition: transform 0.1s 0.1s, color 0.5s, font-size 0.1s 0.1s; transition:
transform 0.1s 0.1s,
color 0.5s,
font-size 0.1s 0.1s;
transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1);
user-select: none; user-select: none;
} }
@ -580,6 +585,7 @@ figure {
.view-switcher { .view-switcher {
@include font-size(1.4rem); @include font-size(1.4rem);
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
font-weight: 500; font-weight: 500;
@ -991,5 +997,4 @@ iframe {
.cursorPointer { .cursorPointer {
cursor: pointer; cursor: pointer;
color: rgba(255, 255, 255, 0);
} }

View File

@ -2,7 +2,7 @@
"rewrites": [ "rewrites": [
{ {
"source": "/((?!assets/).*)", "source": "/((?!assets/).*)",
"destination": "/api/ssr.js" "destination": "/api/ssr.mjs"
} }
] ]
} }

View File

@ -22,6 +22,44 @@ export default defineConfig(() => {
}, },
chunkSizeWarningLimit: 1024, chunkSizeWarningLimit: 1024,
target: 'esnext' target: 'esnext'
},
ssr: {
noExternal: [
'solid-js',
'@nanostores/solid',
'@urql/core',
'wonka',
'solid-popper',
'seroval',
'@solid-primitives/share',
'i18next',
'js-cookie',
'@solid-primitives/memo',
'@solid-primitives/media',
'@solid-primitives/storage',
'@solid-primitives/utils',
'@solid-primitives/rootless',
'solid-tiptap',
'@tiptap/extension-document',
'@tiptap/core',
'@tiptap/pm',
'prosemirror-state',
'prosemirror-model',
'prosemirror-transform',
'prosemirror-commands',
'prosemirror-schema-list',
'@tiptap/extension-text',
'@tiptap/extension-paragraph',
'@tiptap/extension-bold',
'@tiptap/extension-italic',
'@tiptap/extension-blockquote',
'@solid-primitives/upload',
'@tiptap/extension-placeholder',
'prosemirror-view',
'@tiptap/extension-link',
'@tiptap/extension-image',
'@tiptap/extension-character-count'
]
} }
} }
}) })