mainpage-deploy

This commit is contained in:
Untone 2024-07-18 07:33:23 +03:00
parent 8fbc85615c
commit 8c5ef2fd54
5 changed files with 733 additions and 501 deletions

1133
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -25,7 +25,7 @@
"@graphql-codegen/typescript-operations": "^4.2.3",
"@graphql-codegen/typescript-urql": "^4.0.0",
"@hocuspocus/provider": "^2.13.5",
"@playwright/test": "^1.45.1",
"@playwright/test": "^1.45.2",
"@popperjs/core": "^2.11.8",
"@solid-primitives/media": "^2.2.9",
"@solid-primitives/memo": "^1.3.9",
@ -36,39 +36,39 @@
"@solid-primitives/upload": "^0.0.117",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.13.6",
"@solidjs/start": "^1.0.4",
"@tiptap/core": "^2.5.1",
"@tiptap/extension-blockquote": "^2.5.1",
"@tiptap/extension-bold": "^2.5.1",
"@tiptap/extension-bubble-menu": "^2.5.1",
"@tiptap/extension-bullet-list": "^2.5.1",
"@tiptap/extension-character-count": "^2.5.1",
"@tiptap/extension-collaboration": "^2.5.1",
"@tiptap/extension-collaboration-cursor": "^2.5.1",
"@tiptap/extension-document": "^2.5.1",
"@tiptap/extension-dropcursor": "^2.5.1",
"@tiptap/extension-floating-menu": "^2.5.1",
"@tiptap/extension-focus": "^2.5.1",
"@tiptap/extension-gapcursor": "^2.5.1",
"@tiptap/extension-hard-break": "^2.5.1",
"@tiptap/extension-heading": "^2.5.1",
"@tiptap/extension-highlight": "^2.5.1",
"@tiptap/extension-history": "^2.5.1",
"@tiptap/extension-horizontal-rule": "^2.5.1",
"@tiptap/extension-image": "^2.5.1",
"@tiptap/extension-italic": "^2.5.1",
"@tiptap/extension-link": "^2.5.1",
"@tiptap/extension-list-item": "^2.5.1",
"@tiptap/extension-ordered-list": "^2.5.1",
"@tiptap/extension-paragraph": "^2.5.1",
"@tiptap/extension-placeholder": "^2.5.1",
"@tiptap/extension-strike": "^2.5.1",
"@tiptap/extension-text": "^2.5.1",
"@tiptap/extension-underline": "^2.5.1",
"@tiptap/extension-youtube": "^2.5.1",
"@solidjs/start": "^1.0.5",
"@tiptap/core": "^2.5.4",
"@tiptap/extension-blockquote": "^2.5.4",
"@tiptap/extension-bold": "^2.5.4",
"@tiptap/extension-bubble-menu": "^2.5.4",
"@tiptap/extension-bullet-list": "^2.5.4",
"@tiptap/extension-character-count": "^2.5.4",
"@tiptap/extension-collaboration": "^2.5.4",
"@tiptap/extension-collaboration-cursor": "^2.5.4",
"@tiptap/extension-document": "^2.5.4",
"@tiptap/extension-dropcursor": "^2.5.4",
"@tiptap/extension-floating-menu": "^2.5.4",
"@tiptap/extension-focus": "^2.5.4",
"@tiptap/extension-gapcursor": "^2.5.4",
"@tiptap/extension-hard-break": "^2.5.4",
"@tiptap/extension-heading": "^2.5.4",
"@tiptap/extension-highlight": "^2.5.4",
"@tiptap/extension-history": "^2.5.4",
"@tiptap/extension-horizontal-rule": "^2.5.4",
"@tiptap/extension-image": "^2.5.4",
"@tiptap/extension-italic": "^2.5.4",
"@tiptap/extension-link": "^2.5.4",
"@tiptap/extension-list-item": "^2.5.4",
"@tiptap/extension-ordered-list": "^2.5.4",
"@tiptap/extension-paragraph": "^2.5.4",
"@tiptap/extension-placeholder": "^2.5.4",
"@tiptap/extension-strike": "^2.5.4",
"@tiptap/extension-text": "^2.5.4",
"@tiptap/extension-underline": "^2.5.4",
"@tiptap/extension-youtube": "^2.5.4",
"@types/cookie": "^0.6.0",
"@types/cookie-signature": "^1.1.2",
"@types/node": "^20.14.10",
"@types/node": "^20.14.11",
"@types/throttle-debounce": "^5.0.2",
"@urql/core": "^5.0.4",
"bootstrap": "^5.3.3",
@ -86,7 +86,7 @@
"javascript-time-ago": "^2.5.10",
"patch-package": "^8.0.0",
"prosemirror-history": "^1.4.1",
"prosemirror-trailing-node": "^2.0.8",
"prosemirror-trailing-node": "^2.0.9",
"prosemirror-view": "^1.33.8",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "1.76.0",

View File

@ -1,12 +1,11 @@
import { type RouteDefinition, type RouteSectionProps, createAsync } from '@solidjs/router'
import { Show, createEffect } from 'solid-js'
import { createEffect } from 'solid-js'
import { LoadMoreItems, LoadMoreWrapper } from '~/components/_shared/LoadMoreWrapper'
import { useFeed } from '~/context/feed'
import { useTopics } from '~/context/topics'
import { loadShouts, loadTopics } from '~/graphql/api/public'
import { LoadShoutsOptions, Shout } from '~/graphql/schema/core.gen'
import { HomeView, HomeViewProps } from '../components/Views/Home'
import { Loading } from '../components/_shared/Loading'
import { PageLayout } from '../components/_shared/PageLayout'
import { useLocalize } from '../context/localize'
@ -110,7 +109,6 @@ export default function HomePage(props: RouteSectionProps<HomeViewProps>) {
return (
<PageLayout withPadding={true} title={t('Discours')} key="home">
<Show when={(featuredFeed() || []).length > 0} fallback={<Loading />}>
<LoadMoreWrapper loadFunction={loadMoreFeatured} pageSize={SHOUTS_PER_PAGE}>
<HomeView
featuredShouts={featuredFeed() || (shouts() as Shout[])}
@ -120,7 +118,6 @@ export default function HomePage(props: RouteSectionProps<HomeViewProps>) {
topCommentedShouts={topCommentedFeed() as Shout[]}
/>
</LoadMoreWrapper>
</Show>
</PageLayout>
)
}

View File

@ -118,7 +118,7 @@ export default function AuthorPage(props: RouteSectionProps<AuthorPageProps>) {
>
<ReactionsProvider>
<LoadMoreWrapper
loadFunction={(selectedTab() === 'comments' ? loadMoreComments : loadMoreAuthorShouts)}
loadFunction={selectedTab() === 'comments' ? loadMoreComments : loadMoreAuthorShouts}
pageSize={SHOUTS_PER_PAGE}
hidden={selectedTab() !== '' || selectedTab() !== 'comments'}
>
@ -126,7 +126,7 @@ export default function AuthorPage(props: RouteSectionProps<AuthorPageProps>) {
author={author() as Author}
selectedTab={selectedTab()}
authorSlug={props.params.slug}
shouts={feedByAuthor()[props.params.slug] || articles() as Shout[]}
shouts={feedByAuthor()[props.params.slug] || (articles() as Shout[])}
topics={topics()}
/>
</LoadMoreWrapper>

View File

@ -12,11 +12,11 @@ export function paginate<T>(arr: T[], startIndex: number, pageSize: number): T[]
// Начинаем новую страницу, когда индекс кратен размеру страницы
if (index % pageSize === 0) {
// Создаем новый подмассив (страницу)
acc.push([]);
acc.push([])
}
// Добавляем текущий элемент на последнюю страницу
acc.at(-1)?.push(item);
return acc;
}, [] as T[][]); // Инициализируем аккумулятор как пустой массив массивов
acc.at(-1)?.push(item)
return acc
}, [] as T[][]) // Инициализируем аккумулятор как пустой массив массивов
}