${when(
this.showReplyForm,
diff --git a/packages/comment-widget/src/comment-management.ts b/packages/comment-widget/src/comment-management.ts
index 63506f0..1c2134c 100644
--- a/packages/comment-widget/src/comment-management.ts
+++ b/packages/comment-widget/src/comment-management.ts
@@ -108,6 +108,20 @@ export class CommentManagement extends LitElement {
}
}
+ private startEdit() {
+ if (
+ !this.canManage ||
+ this.busy ||
+ !this.target ||
+ this.target.metadata.deletionTimestamp
+ )
+ return;
+ this.close(this.matches(':focus-within'));
+ this.dispatchEvent(
+ new CustomEvent('comment-edit', { bubbles: true, composed: true })
+ );
+ }
+
override render() {
if (
!this.canManage ||
@@ -127,6 +141,9 @@ export class CommentManagement extends LitElement {
+
${
this.resource === 'comments'
? html`
diff --git a/packages/comment-widget/src/generated/locales/es.ts b/packages/comment-widget/src/generated/locales/es.ts
index 48541ba..1b8ee4e 100644
--- a/packages/comment-widget/src/generated/locales/es.ts
+++ b/packages/comment-widget/src/generated/locales/es.ts
@@ -20,20 +20,28 @@
's0fbf6dc6a1966408': `Siguiente`,
's107ccef507b51f2c': `Completa la verificación`,
's15e33945d13c5176': `Se está confirmando tu envío anterior. Inténtalo más tarde; se conservarán tus imágenes.`,
+'s176fe95698857ad9': `El comentario o la respuesta ha cambiado. Copia tu borrador y vuelve a abrir el editor para cargar la última versión.`,
's1c6fefb092506753': `Error al cargar la lista de comentarios, por favor intente más tarde`,
's1d468f888124a55e': `Tu borrador ha cambiado. Vuelve a abrirlo antes de reintentar.`,
's1e3e30a26025484c': `Error al cargar la lista de respuestas, por favor intente más tarde`,
+'s2254107bb49631da': `Este comentario o respuesta ha sido eliminado.`,
+'s22ae36191f9a1a8d': `No se pudo cargar el contenido más reciente. Inténtalo de nuevo más tarde.`,
's2406b89e991a4524': `Actualizar código de verificación`,
's26e4d65f2801ac9c': `Por favor, ingrese el contenido`,
's299b10f3a58a09fd': `Haga clic en OK para ir a la página de cierre de sesión, Por favor, asegúrese de que el contenido editado haya sido guardado.`,
+'s2c8189544e3ea679': `Reintentar`,
's2ca7699f7c5a4996': `Administrar`,
+'s2ceb11be2290bb1b': `Cancelar`,
+'s2df0abe59a97747a': `¿Descartar los cambios?`,
's2e192b19ed15fcf6': `Página`,
+'s33f85f24c0f5f008': `Guardar`,
's34239948d1de01f1': `Verificación no disponible. Haz clic para reintentar.`,
's35c3125c7750681e': `Cita`,
's3643189d1abbb7f4': `Código`,
's3fb33d17bad61aa9': `Comentario enviado con éxito, pendiente de revisión`,
's44851a8adf059eef': `Fijado`,
's4c0e15f9073382e6': `Error al obtener el código de verificación`,
+'s4d76c6944ffb0540': `No se pudo guardar. Es posible que el comentario se haya eliminado o que la versión actual de Halo no admita la edición. Tu borrador se ha conservado.`,
's5184a3f3e2f7b603': `Actualmente anónimo. Después de seleccionar la opción privada, el comentario solo será visible para el administrador del sitio.`,
's523eb9043213ff0d': `Itálica`,
's5787e20cab57b383': `Error desconocido`,
@@ -41,6 +49,8 @@
's59b95f09e3b42060': `La verificación ha fallado. Vuelve a verificar e intenta enviar de nuevo.`,
's5fc35a09a85fe63e': `Cerrar imagen`,
's63ce0636351bf780': `Los resultados de la subida están incompletos. Inténtalo de nuevo.`,
+'s63efea23113001ee': `No se pudo guardar. Se ha conservado tu borrador.`,
+'s64ef2a6c2dd1d3d1': `Editar`,
's67749057edb2586b': `Cerrar sesión`,
's6cb61eeccda272d5': `Bloque de código`,
's6f23997fffbecc6a': `Cancelar aprobación`,
@@ -62,6 +72,7 @@
'sa10fbe3fcd6ae148': `Agregar respuesta`,
'sa3443b99ecf186ea': `Mostrar`,
'sa82fbb7f361c6f44': `Mostrar respuestas`,
+'sa862e76e95967816': `Comentario actualizado correctamente`,
'sa8dddacbaa66f8e0': `Por favor, inicie sesión primero`,
'sb206d700d26b14ff': `Subrayado`,
'sb3d4f79d9d8b71e5': `Enviar comentario`,
diff --git a/packages/comment-widget/src/generated/locales/zh-CN.ts b/packages/comment-widget/src/generated/locales/zh-CN.ts
index 0024d5b..82a41ef 100644
--- a/packages/comment-widget/src/generated/locales/zh-CN.ts
+++ b/packages/comment-widget/src/generated/locales/zh-CN.ts
@@ -20,20 +20,28 @@
's0fbf6dc6a1966408': `下一页`,
's107ccef507b51f2c': `请完成人机验证`,
's15e33945d13c5176': `上次提交结果正在确认,请稍后重试;图片会被保留。`,
+'s176fe95698857ad9': `评论或回复已发生变化。请先复制草稿,再重新打开编辑框获取最新版本。`,
's1c6fefb092506753': `加载评论列表失败,请稍后重试`,
's1d468f888124a55e': `草稿已更改,请重新打开后再重试。`,
's1e3e30a26025484c': `加载回复列表失败,请稍后重试`,
+'s2254107bb49631da': `该评论或回复已被删除。`,
+'s22ae36191f9a1a8d': `加载最新内容失败,请稍后重试。`,
's2406b89e991a4524': `刷新验证码`,
's26e4d65f2801ac9c': `请输入内容`,
's299b10f3a58a09fd': `点击确定将跳转至退出登录页面,请确保正在编辑的内容已保存。`,
+'s2c8189544e3ea679': `重试`,
's2ca7699f7c5a4996': `管理`,
+'s2ceb11be2290bb1b': `取消`,
+'s2df0abe59a97747a': `确定要丢弃所做的修改吗?`,
's2e192b19ed15fcf6': `页码`,
+'s33f85f24c0f5f008': `保存`,
's34239948d1de01f1': `验证暂不可用,点击重试`,
's35c3125c7750681e': `引用`,
's3643189d1abbb7f4': `代码`,
's3fb33d17bad61aa9': `评论成功,请等待审核`,
's44851a8adf059eef': `置顶`,
's4c0e15f9073382e6': `获取验证码失败`,
+'s4d76c6944ffb0540': `保存失败。该评论可能已被删除,或当前 Halo 版本不支持编辑。你的草稿已保留。`,
's5184a3f3e2f7b603': `当前是匿名状态,选择私密选项后,评论将仅对网站管理员可见。`,
's523eb9043213ff0d': `斜体`,
's5787e20cab57b383': `未知错误`,
@@ -41,6 +49,8 @@
's59b95f09e3b42060': `人机验证未通过,请重新验证后提交。`,
's5fc35a09a85fe63e': `关闭图片`,
's63ce0636351bf780': `上传结果不完整,请重试。`,
+'s63efea23113001ee': `保存失败,草稿已保留。`,
+'s64ef2a6c2dd1d3d1': `编辑`,
's67749057edb2586b': `退出登录`,
's6cb61eeccda272d5': `代码块`,
's6f23997fffbecc6a': `取消通过`,
@@ -62,6 +72,7 @@
'sa10fbe3fcd6ae148': `加入回复`,
'sa3443b99ecf186ea': `取消隐藏`,
'sa82fbb7f361c6f44': `显示回复`,
+'sa862e76e95967816': `评论更新成功`,
'sa8dddacbaa66f8e0': `请先登录`,
'sb206d700d26b14ff': `下划线`,
'sb3d4f79d9d8b71e5': `提交评论`,
diff --git a/packages/comment-widget/src/generated/locales/zh-TW.ts b/packages/comment-widget/src/generated/locales/zh-TW.ts
index cc6c064..3548a35 100644
--- a/packages/comment-widget/src/generated/locales/zh-TW.ts
+++ b/packages/comment-widget/src/generated/locales/zh-TW.ts
@@ -20,20 +20,28 @@
's0fbf6dc6a1966408': `下一頁`,
's107ccef507b51f2c': `請完成人機驗證`,
's15e33945d13c5176': `上次提交結果正在確認,請稍後重試;圖片會被保留。`,
+'s176fe95698857ad9': `評論或回覆已發生變更。請先複製草稿,再重新開啟編輯框取得最新版本。`,
's1c6fefb092506753': `載入評論列表失敗,請稍後重試`,
's1d468f888124a55e': `草稿已變更,請重新開啟後再重試。`,
's1e3e30a26025484c': `載入回覆列表失敗,請稍後重試`,
+'s2254107bb49631da': `該評論或回覆已被刪除。`,
+'s22ae36191f9a1a8d': `載入最新內容失敗,請稍後再試。`,
's2406b89e991a4524': `重新整理驗證碼`,
's26e4d65f2801ac9c': `請輸入內容`,
's299b10f3a58a09fd': `点击确定将跳转至退出登录页面,请确保正在编辑的内容已保存。`,
+'s2c8189544e3ea679': `重試`,
's2ca7699f7c5a4996': `管理`,
+'s2ceb11be2290bb1b': `取消`,
+'s2df0abe59a97747a': `確定要捨棄所做的修改嗎?`,
's2e192b19ed15fcf6': `頁碼`,
+'s33f85f24c0f5f008': `儲存`,
's34239948d1de01f1': `驗證暫不可用,點擊重試`,
's35c3125c7750681e': `引用`,
's3643189d1abbb7f4': `程式碼`,
's3fb33d17bad61aa9': `評論成功,請等待審核`,
's44851a8adf059eef': `置頂`,
's4c0e15f9073382e6': `獲取驗證碼失敗`,
+'s4d76c6944ffb0540': `儲存失敗。該評論可能已被刪除,或目前 Halo 版本不支援編輯。你的草稿已保留。`,
's5184a3f3e2f7b603': `目前是匿名狀態,選擇私密選項後,評論將僅對網站管理員可見。`,
's523eb9043213ff0d': `斜體`,
's5787e20cab57b383': `未知錯誤`,
@@ -41,6 +49,8 @@
's59b95f09e3b42060': `人機驗證未通過,請重新驗證後提交。`,
's5fc35a09a85fe63e': `關閉圖片`,
's63ce0636351bf780': `上傳結果不完整,請重試。`,
+'s63efea23113001ee': `儲存失敗,草稿已保留。`,
+'s64ef2a6c2dd1d3d1': `編輯`,
's67749057edb2586b': `登出`,
's6cb61eeccda272d5': `程式碼區塊`,
's6f23997fffbecc6a': `取消通過`,
@@ -62,6 +72,7 @@
'sa10fbe3fcd6ae148': `新增回覆`,
'sa3443b99ecf186ea': `取消隱藏`,
'sa82fbb7f361c6f44': `顯示回覆`,
+'sa862e76e95967816': `評論更新成功`,
'sa8dddacbaa66f8e0': `請先登入`,
'sb206d700d26b14ff': `底線`,
'sb3d4f79d9d8b71e5': `提交評論`,
diff --git a/packages/comment-widget/src/index.ts b/packages/comment-widget/src/index.ts
index cdba679..0c83c8a 100644
--- a/packages/comment-widget/src/index.ts
+++ b/packages/comment-widget/src/index.ts
@@ -1,6 +1,7 @@
import { BaseCommentItem } from './base-comment-item';
import { BaseForm } from './base-form';
import { CommentContent } from './comment-content';
+import { CommentEditForm } from './comment-edit-form';
import { CommentEditor } from './comment-editor';
import { CommentItem } from './comment-item';
import { CommentList } from './comment-list';
@@ -19,6 +20,7 @@ export {
BaseCommentItem,
BaseForm,
CommentContent,
+ CommentEditForm,
CommentEditor,
CommentItem,
CommentList,
diff --git a/packages/comment-widget/src/reply-item.ts b/packages/comment-widget/src/reply-item.ts
index 06f4a53..f694f31 100644
--- a/packages/comment-widget/src/reply-item.ts
+++ b/packages/comment-widget/src/reply-item.ts
@@ -6,6 +6,7 @@ import baseStyles from './styles/base';
import './user-avatar';
import './base-comment-item';
import './comment-management';
+import './comment-edit-form';
import './reply-form';
import { consume } from '@lit/context';
import { msg } from '@lit/localize';
@@ -35,6 +36,9 @@ export class ReplyItem extends LitElement {
@state()
showReplyForm = false;
+ @state()
+ showEditForm = false;
+
@state()
upvoted = false;
@@ -84,6 +88,15 @@ export class ReplyItem extends LitElement {
this.showReplyForm = false;
}
+ private async handleCloseEditForm() {
+ this.showEditForm = false;
+ await this.updateComplete;
+ this.renderRoot
+ .querySelector('comment-management')
+ ?.shadowRoot?.querySelector('summary')
+ ?.focus({ preventScroll: true });
+ }
+
onReplyCreated(
event: CustomEvent<{ resetForm: (form: BaseForm) => boolean }>
) {
@@ -170,6 +183,7 @@ export class ReplyItem extends LitElement {
.userWebsite=${this.reply?.spec.owner.annotations?.website}
.ua=${this.reply?.spec.userAgent}
.private=${this.comment?.spec.hidden || this.reply?.spec.hidden}
+ .editing=${this.showEditForm}
>
-
+
(this.showEditForm = true)}>
+ ${when(
+ this.showEditForm,
+ () => html`
`
+ )}
${when(
this.showReplyForm,
() => html`