From 5baba9e723395261b2b093fbe0efd28a723f3529 Mon Sep 17 00:00:00 2001 From: Grace Kind Date: Sat, 1 Aug 2026 00:46:15 -0500 Subject: [PATCH] Add mute/leave buttons to 1-1 chats --- package.json | 2 +- src/css/style.css | 10 + src/js/components/context-menu-item.js | 10 +- src/js/views/chatDetail.view.js | 101 +++++++- tests/e2e/mockServer.js | 11 + tests/e2e/specs/views/chatDetail.view.test.js | 229 ++++++++++++++++++ 6 files changed, 354 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index bd253e93..74277e87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "impro", - "version": "0.18.139", + "version": "0.18.140", "type": "module", "scripts": { "start": "rm -rf \"${BUILD_DIR:-build}\" && NODE_ENV=development eleventy --serve", diff --git a/src/css/style.css b/src/css/style.css index 95a541e4..5d3cc9f7 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -7066,6 +7066,16 @@ context-menu-item > button > svg.context-menu-item-icon { display: block; } +context-menu-item > button.context-menu-item-style-danger { + color: var(--error-color); +} + +context-menu-item + > button.context-menu-item-style-danger + > .context-menu-item-icon { + color: var(--error-color); +} + context-menu-item > a { padding: 14px 16px; width: 100%; diff --git a/src/js/components/context-menu-item.js b/src/js/components/context-menu-item.js index 043f5160..b7a24880 100644 --- a/src/js/components/context-menu-item.js +++ b/src/js/components/context-menu-item.js @@ -4,7 +4,7 @@ import "/js/components/app-icon.js"; class ContextMenuItem extends Component { static get observedAttributes() { - return ["disabled", "icon"]; + return ["disabled", "icon", "item-style"]; } connectedCallback() { @@ -15,6 +15,7 @@ class ContextMenuItem extends Component { this.innerHTML = ""; this.disabled = this.getAttribute("disabled") !== null; this.icon = this.getAttribute("icon"); + this.itemStyle = this.getAttribute("item-style"); this.render(); this._initialized = true; } @@ -27,6 +28,8 @@ class ContextMenuItem extends Component { this.disabled = this.getAttribute("disabled") !== null; } else if (name === "icon") { this.icon = this.getAttribute("icon"); + } else if (name === "item-style") { + this.itemStyle = this.getAttribute("item-style"); } this.render(); } @@ -40,8 +43,11 @@ class ContextMenuItem extends Component { } render() { + const buttonClass = this.itemStyle + ? `context-menu-item-style-${this.itemStyle}` + : ""; render( - html`