From 31a1312fb43322e522ef87954a9135d4359dc921 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Sun, 28 Apr 2024 11:43:42 +0800 Subject: [PATCH] fix: wrong reply size Signed-off-by: Ryan Wang --- build.gradle | 2 +- packages/comment-widget/src/comment-replies.ts | 16 ++++++++++++++-- packages/comment-widget/src/comment-widget.ts | 16 +++++++++------- packages/comment-widget/src/context/index.ts | 1 + src/main/resources/extensions/settings.yaml | 1 + 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 332b3e8..16f124f 100644 --- a/build.gradle +++ b/build.gradle @@ -41,5 +41,5 @@ build { } halo { - version = "2.14.0" + version = "2.15.0-rc.1" } diff --git a/packages/comment-widget/src/comment-replies.ts b/packages/comment-widget/src/comment-replies.ts index b975551..b72d9b2 100644 --- a/packages/comment-widget/src/comment-replies.ts +++ b/packages/comment-widget/src/comment-replies.ts @@ -3,7 +3,13 @@ import { css, html, LitElement } from 'lit'; import { property, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; import { consume } from '@lit/context'; -import { baseUrlContext, replySizeContext, toastContext, withRepliesContext } from './context'; +import { + baseUrlContext, + replySizeContext, + toastContext, + withRepliesContext, + withReplySizeContext, +} from './context'; import './reply-item'; import './loading-block'; import './reply-form'; @@ -20,6 +26,10 @@ export class CommentReplies extends LitElement { @state() withReplies = false; + @consume({ context: withReplySizeContext, subscribe: true }) + @state() + withReplySize = 10; + @consume({ context: replySizeContext, subscribe: true }) @state() replySize = 10; @@ -92,7 +102,9 @@ export class CommentReplies extends LitElement { this.page = 1; } - const queryParams = [`page=${this.page || 0}`, `size=${this.replySize}`]; + const size = this.withReplies ? this.withReplySize : this.replySize; + + const queryParams = [`page=${this.page || 0}`, `size=${size}`]; const response = await fetch( `${this.baseUrl}/apis/api.halo.run/v1alpha1/comments/${this.comment?.metadata.name}/reply?${queryParams.join('&')}` diff --git a/packages/comment-widget/src/comment-widget.ts b/packages/comment-widget/src/comment-widget.ts index f349d94..0cb5eb2 100644 --- a/packages/comment-widget/src/comment-widget.ts +++ b/packages/comment-widget/src/comment-widget.ts @@ -5,6 +5,10 @@ import { repeat } from 'lit/directives/repeat.js'; import baseStyles from './styles/base'; import { provide } from '@lit/context'; import { + allowAnonymousCommentsContext, + avatarPolicyContext, + avatarProviderContext, + avatarProviderMirrorContext, baseUrlContext, currentUserContext, emojiDataUrlContext, @@ -13,13 +17,10 @@ import { nameContext, replySizeContext, toastContext, + useAvatarProviderContext, versionContext, withRepliesContext, - allowAnonymousCommentsContext, - useAvatarProviderContext, - avatarPolicyContext, - avatarProviderContext, - avatarProviderMirrorContext, + withReplySizeContext, } from './context'; import './comment-form'; import './comment-item'; @@ -27,10 +28,10 @@ import './comment-pagination'; import varStyles from './styles/var'; import { ToastManager } from './lit-toast'; import { - AnonymousUserPolicy, AllUserPolicy, - NoAvatarUserPolicy, + AnonymousUserPolicy, AvatarPolicyEnum, + NoAvatarUserPolicy, setPolicyInstance, } from './avatar/avatar-policy'; import { setAvatarProvider } from './avatar/providers'; @@ -67,6 +68,7 @@ export class CommentWidget extends LitElement { @property({ type: Boolean, attribute: 'with-replies' }) withReplies = false; + @provide({ context: withReplySizeContext }) @property({ type: Number, attribute: 'with-reply-size' }) withReplySize = 10; diff --git a/packages/comment-widget/src/context/index.ts b/packages/comment-widget/src/context/index.ts index 5d7d01b..80f46ff 100644 --- a/packages/comment-widget/src/context/index.ts +++ b/packages/comment-widget/src/context/index.ts @@ -9,6 +9,7 @@ export const nameContext = createContext(Symbol('name')); export const versionContext = createContext(Symbol('version')); export const replySizeContext = createContext(Symbol('replySize')); export const withRepliesContext = createContext(Symbol('withReplies')); +export const withReplySizeContext = createContext(Symbol('withReplySize')); export const useAvatarProviderContext = createContext(Symbol('useAvatarProvider')); export const avatarProviderContext = createContext(Symbol('avatarProvider')); export const avatarProviderMirrorContext = createContext(Symbol('avatarProviderMirror')); diff --git a/src/main/resources/extensions/settings.yaml b/src/main/resources/extensions/settings.yaml index dd02b5e..6aa0eaf 100644 --- a/src/main/resources/extensions/settings.yaml +++ b/src/main/resources/extensions/settings.yaml @@ -31,6 +31,7 @@ spec: key: withReplySize validation: required value: 5 + help: 如果开启了同时加载评论的回复,此选项将覆盖默认加载回复条数的选项 - group: avatar label: 头像设置 formSchema: