diff --git a/package.json b/package.json index a3cd93a3..9777de8a 100644 --- a/package.json +++ b/package.json @@ -32,40 +32,40 @@ "@solid-primitives/pagination": "^0.3.0", "@solid-primitives/script-loader": "^2.2.0", "@solid-primitives/share": "^2.0.6", - "@solid-primitives/storage": "^3.7.1", + "@solid-primitives/storage": "^3.8.0", "@solid-primitives/upload": "^0.0.117", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.13.6", "@solidjs/start": "^1.0.4", - "@tiptap/core": "^2.4.0", - "@tiptap/extension-blockquote": "^2.4.0", - "@tiptap/extension-bold": "^2.4.0", - "@tiptap/extension-bubble-menu": "^2.4.0", - "@tiptap/extension-bullet-list": "^2.4.0", - "@tiptap/extension-character-count": "^2.4.0", - "@tiptap/extension-collaboration": "^2.4.0", - "@tiptap/extension-collaboration-cursor": "^2.4.0", - "@tiptap/extension-document": "^2.4.0", - "@tiptap/extension-dropcursor": "^2.4.0", - "@tiptap/extension-floating-menu": "^2.4.0", - "@tiptap/extension-focus": "^2.4.0", - "@tiptap/extension-gapcursor": "^2.4.0", - "@tiptap/extension-hard-break": "^2.4.0", - "@tiptap/extension-heading": "^2.4.0", - "@tiptap/extension-highlight": "^2.4.0", - "@tiptap/extension-history": "^2.4.0", - "@tiptap/extension-horizontal-rule": "^2.4.0", - "@tiptap/extension-image": "^2.4.0", - "@tiptap/extension-italic": "^2.4.0", - "@tiptap/extension-link": "^2.4.0", - "@tiptap/extension-list-item": "^2.4.0", - "@tiptap/extension-ordered-list": "^2.4.0", - "@tiptap/extension-paragraph": "^2.4.0", - "@tiptap/extension-placeholder": "^2.4.0", - "@tiptap/extension-strike": "^2.4.0", - "@tiptap/extension-text": "^2.4.0", - "@tiptap/extension-underline": "^2.4.0", - "@tiptap/extension-youtube": "^2.4.0", + "@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", "@types/cookie": "^0.6.0", "@types/cookie-signature": "^1.1.2", "@types/node": "^20.14.10", @@ -79,7 +79,7 @@ "extended-eventsource": "^1.4.9", "fast-deep-equal": "^3.1.3", "graphql": "^16.9.0", - "i18next": "^23.11.5", + "i18next": "^23.12.1", "i18next-http-backend": "^2.5.2", "i18next-icu": "^2.3.0", "intl-messageformat": "^10.5.14", @@ -99,7 +99,7 @@ "stylelint-config-standard-scss": "^13.1.0", "stylelint-order": "^6.0.4", "stylelint-scss": "^6.4.1", - "swiper": "^11.1.4", + "swiper": "^11.1.5", "throttle-debounce": "^5.0.2", "tslib": "^2.6.3", "typescript": "^5.5.3", diff --git a/src/components/Views/Author/Author.tsx b/src/components/Views/Author/Author.tsx index e565429c..5c7413cc 100644 --- a/src/components/Views/Author/Author.tsx +++ b/src/components/Views/Author/Author.tsx @@ -8,14 +8,11 @@ import { useFollowing } from '~/context/following' import { useGraphQL } from '~/context/graphql' import { useLocalize } from '~/context/localize' import { useSession } from '~/context/session' -import { loadReactions } from '~/graphql/api/public' -import loadShoutsQuery from '~/graphql/query/core/articles-load-by' import getAuthorFollowersQuery from '~/graphql/query/core/author-followers' import getAuthorFollowsQuery from '~/graphql/query/core/author-follows' import type { Author, Reaction, Shout, Topic } from '~/graphql/schema/core.gen' import { byCreated } from '~/lib/sort' import { paginate } from '~/utils/paginate' -import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' import stylesArticle from '../../Article/Article.module.scss' import { Comment } from '../../Article/Comment' import { AuthorCard } from '../../Author/AuthorCard' @@ -48,7 +45,6 @@ export const AuthorView = (props: AuthorViewProps) => { const { followers: myFollowers, follows: myFollows } = useFollowing() // signals - const [isLoadMoreButtonVisible, setIsLoadMoreButtonVisible] = createSignal(false) const [isBioExpanded, setIsBioExpanded] = createSignal(false) const [author, setAuthor] = createSignal() const [followers, setFollowers] = createSignal([] as Author[]) @@ -62,20 +58,6 @@ export const AuthorView = (props: AuthorViewProps) => { paginate(sortedFeed(), PRERENDERED_ARTICLES_COUNT, LOAD_MORE_PAGE_SIZE) ) - // fx - // пагинация загрузки ленты постов - const loadMore = async () => { - saveScrollPosition() - const resp = await query(loadShoutsQuery, { - filters: { author: props.authorSlug }, - limit: LOAD_MORE_PAGE_SIZE, - offset: sortedFeed().length - }) - const hasMore = resp?.data?.load_shouts_by?.hasMore - setIsLoadMoreButtonVisible(hasMore) - restoreScrollPosition() - } - // 1 // проверяет не собственный ли это профиль, иначе - загружает const [isFetching, setIsFetching] = createSignal(false) createEffect( @@ -122,24 +104,6 @@ export const AuthorView = (props: AuthorViewProps) => { ) ) - // 3 // догружает ленту и комментарии - createEffect( - on( - () => author() as Author, - async (profile: Author) => { - if (!commented() && profile) { - await loadMore() - const commentsFetcher = loadReactions({ - by: { comment: true, created_by: profile.id } - }) - const ccc = await commentsFetcher() - if (ccc) setCommented((_) => ccc || []) - } - } - // { defer: true }, - ) - ) - // event handlers let bioContainerRef: HTMLDivElement let bioWrapperRef: HTMLDivElement @@ -290,14 +254,6 @@ export const AuthorView = (props: AuthorViewProps) => { - - -

- -

-
diff --git a/src/components/_shared/LoadMoreWrapper.tsx b/src/components/_shared/LoadMoreWrapper.tsx index 130a2401..fd22b1e5 100644 --- a/src/components/_shared/LoadMoreWrapper.tsx +++ b/src/components/_shared/LoadMoreWrapper.tsx @@ -9,6 +9,7 @@ export type LoadMoreItems = Shout[] | Author[] | Reaction[] type LoadMoreProps = { loadFunction: (offset?: number) => Promise pageSize: number + hidden?: boolean children: JSX.Element } @@ -37,7 +38,7 @@ export const LoadMoreWrapper = (props: LoadMoreProps) => { return ( <> {props.children} - +