From 7ed6ab496b512afa8eb4eedab48b223ad0a74e90 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Sat, 9 Aug 2025 11:34:44 +0800 Subject: [PATCH] Add configurable editor placeholder to comment widget --- packages/comment-widget/src/comment-editor.ts | 10 +++++++++- packages/comment-widget/src/types/index.ts | 5 +++++ src/main/resources/extensions/settings.yaml | 6 ++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/comment-widget/src/comment-editor.ts b/packages/comment-widget/src/comment-editor.ts index 9212691..55f021d 100644 --- a/packages/comment-widget/src/comment-editor.ts +++ b/packages/comment-widget/src/comment-editor.ts @@ -6,7 +6,10 @@ import { repeat } from 'lit/directives/repeat.js'; import './emoji-button'; import contentStyles from './styles/content.css?inline'; import './comment-editor-skeleton'; +import { consume } from '@lit/context'; +import { configMapDataContext } from './context'; import baseStyles from './styles/base'; +import type { ConfigMapData } from './types'; interface ActionItem { name?: string; @@ -78,6 +81,10 @@ export class CommentEditor extends LitElement { @state() loading = true; + @consume({ context: configMapDataContext }) + @state() + configMapData: ConfigMapData | undefined; + protected override firstUpdated(_changedProperties: PropertyValues): void { super.firstUpdated(_changedProperties); this.createEditor(); @@ -106,7 +113,8 @@ export class CommentEditor extends LitElement { }), Placeholder.configure({ - placeholder: msg('Write a comment'), + placeholder: + this.configMapData?.editor?.placeholder || msg('Write a comment'), }), CodeBlockShiki.configure({ diff --git a/packages/comment-widget/src/types/index.ts b/packages/comment-widget/src/types/index.ts index 971dbc6..5ba2afd 100644 --- a/packages/comment-widget/src/types/index.ts +++ b/packages/comment-widget/src/types/index.ts @@ -2,6 +2,7 @@ export interface ConfigMapData { basic: BasicConfig; security: SecurityConfig; avatar: AvatarConfig; + editor?: EditorConfig; } interface BasicConfig { @@ -26,3 +27,7 @@ interface AvatarConfig { providerMirror: string; policy: 'anonymousUser' | 'allUser' | 'noAvatarUser'; } + +interface EditorConfig { + placeholder?: string; +} diff --git a/src/main/resources/extensions/settings.yaml b/src/main/resources/extensions/settings.yaml index d2dbf66..71f9880 100644 --- a/src/main/resources/extensions/settings.yaml +++ b/src/main/resources/extensions/settings.yaml @@ -122,3 +122,9 @@ spec: - label: "匿名&无头像用户" value: "noAvatarUser" value: "anonymousUser" + - group: editor + label: 编辑器 + formSchema: + - $formkit: text + name: placeholder + label: 自定义评论框占位符