From bca7ced1ffd8dad5173701eee449f46da30e2caf Mon Sep 17 00:00:00 2001 From: izanhzh Date: Wed, 2 Apr 2025 18:06:12 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=94=B6=E7=BC=A9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/RibbonTab/RibbonTab.razor.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js index 22e351d9a15..d081eddd341 100644 --- a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js +++ b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js @@ -3,12 +3,13 @@ import EventHandler from "../../modules/event-handler.js" export function init(id, invoke, callback) { const el = document.getElementById(id) + const headerEl = el.querySelector('.ribbon-header') const rt = { - element: el, invoke, callback, + element: el, headerEl, invoke, callback, handlerClick: e => { - const isFloat = el.classList.contains('is-float') + const isFloat = headerEl.classList.contains('is-float') if (isFloat) { - const expanded = el.classList.contains('is-expand') + const expanded = headerEl.classList.contains('is-expand') if (expanded) { const ribbonBody = e.target.closest('.ribbon-body'); if (ribbonBody) { From 0dcc87c6ee64226d89d2eb9396deb116c07cc81f Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 2 Apr 2025 18:47:13 +0800 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=E4=BB=A3=E7=A0=81=E8=A7=84?= =?UTF-8?q?=E8=8C=83=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor | 3 ++- .../Components/RibbonTab/RibbonTabHeader.razor.cs | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor index 037f3c4b1b0..9bb9cdbb03b 100644 --- a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor +++ b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor @@ -7,7 +7,8 @@ OnItemClickAsync="OnItemClickAsync!" OnMenuClickAsync="OnMenuClickAsync!" OnFloatChanged="OnFloatChanged!" EncodeAnchorCallback="EncodeAnchorCallback!" DecodeAnchorCallback="DecodeAnchorCallback!" RightButtonsTemplate="RightButtonsTemplate!" - RibbonArrowUpIcon="@RibbonArrowUpIcon" RibbonArrowDownIcon="@RibbonArrowDownIcon" RibbonArrowPinIcon="@RibbonArrowPinIcon"> + RibbonArrowUpIcon="@RibbonArrowUpIcon" RibbonArrowDownIcon="@RibbonArrowDownIcon" + RibbonArrowPinIcon="@RibbonArrowPinIcon"> @if (ChildContent != null) {
diff --git a/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs b/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs index 6508e3680db..0b017e3f3d6 100644 --- a/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs +++ b/src/BootstrapBlazor/Components/RibbonTab/RibbonTabHeader.razor.cs @@ -17,9 +17,7 @@ public partial class RibbonTabHeader /// [Parameter] [NotNull] -#if NET6_0_OR_GREATER [EditorRequired] -#endif public IEnumerable? Items { get; set; } /// From cc610b758108b3f008267236fc448d915b7bc2ef Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 2 Apr 2025 18:54:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E6=8F=90=E9=AB=98=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/RibbonTab/RibbonTab.razor.js | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js index d081eddd341..fdd9a14bd86 100644 --- a/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js +++ b/src/BootstrapBlazor/Components/RibbonTab/RibbonTab.razor.js @@ -1,38 +1,43 @@ import Data from "../../modules/data.js" import EventHandler from "../../modules/event-handler.js" +import { registerBootstrapBlazorModule } from "../../modules/utility.js" export function init(id, invoke, callback) { const el = document.getElementById(id) - const headerEl = el.querySelector('.ribbon-header') const rt = { - element: el, headerEl, invoke, callback, + element: el, invoke, callback, handlerClick: e => { - const isFloat = headerEl.classList.contains('is-float') - if (isFloat) { - const expanded = headerEl.classList.contains('is-expand') - if (expanded) { - const ribbonBody = e.target.closest('.ribbon-body'); - if (ribbonBody) { - invoke.invokeMethodAsync(callback) - } - else { - const ribbonTab = e.target.closest('.ribbon-tab') - if (ribbonTab !== el) { - invoke.invokeMethodAsync(callback) - } + [...document.querySelectorAll('.ribbon-header.is-float.is-expand')].forEach(headerEl => { + const tabId = headerEl.parentElement.getAttribute("id"); + const tab = Data.get(tabId); + const { element, invoke, callback } = tab; + + const ribbonBody = e.target.closest('.ribbon-body'); + if (ribbonBody) { + invoke.invokeMethodAsync(callback); + } + else { + const ribbonTab = e.target.closest('.ribbon-tab') + if (ribbonTab !== element) { + invoke.invokeMethodAsync(callback); } } - } + }); } } Data.set(id, rt) - EventHandler.on(document, 'click', rt.handlerClick) + registerBootstrapBlazorModule('RibbonTab', id, () => { + EventHandler.on(document, 'click', rt.handlerClick) + }); } export function dispose(id) { const rt = Data.get(id) Data.remove(id) - EventHandler.off(document, 'click', rt.handlerClick) + const { RibbonTab } = window.BootstrapBlazor; + RibbonTab.dispose(id, () => { + EventHandler.off(document, 'click', rt.handlerClick) + }); }