diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 20f51727a3dfa43515cb35b9ab454b2e5c9aa837..7617f4b0029b79a40d3179dd35d65a3a2f05e391 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 7.0.7 + 7.0.8-beta01 diff --git a/src/BootstrapBlazor/wwwroot/modules/base/utility.js b/src/BootstrapBlazor/wwwroot/modules/base/utility.js index 0abb70c18e1c2c999ef625e5b862023ac78b0d06..a1d9d198d54b87f9f96649fc3f4c59cd5c88ae44 100644 --- a/src/BootstrapBlazor/wwwroot/modules/base/utility.js +++ b/src/BootstrapBlazor/wwwroot/modules/base/utility.js @@ -196,16 +196,19 @@ const setIndeterminate = (object, state) => { const drag = (element, start, move, end) => { const handleDragStart = e => { - e.preventDefault() - e.stopPropagation() + let notDrag = false + if (isFunction(start)) { + notDrag = start(e) || false + } - document.addEventListener('mousemove', handleDragMove) - document.addEventListener('touchmove', handleDragMove) - document.addEventListener('mouseup', handleDragEnd) - document.addEventListener('touchend', handleDragEnd) + if (!notDrag) { + e.preventDefault() + e.stopPropagation() - if (isFunction(start)) { - start(e) + document.addEventListener('mousemove', handleDragMove) + document.addEventListener('touchmove', handleDragMove) + document.addEventListener('mouseup', handleDragEnd) + document.addEventListener('touchend', handleDragEnd) } } diff --git a/src/BootstrapBlazor/wwwroot/modules/modal.js b/src/BootstrapBlazor/wwwroot/modules/modal.js index 78ccdd0629a1057b27ef5cb1ae9e7744ca68382b..ba406e8268d4f7e21bff6f1fa822f9a0ef5b88f8 100644 --- a/src/BootstrapBlazor/wwwroot/modules/modal.js +++ b/src/BootstrapBlazor/wwwroot/modules/modal.js @@ -92,6 +92,9 @@ export class Modal extends BlazorComponent { this._header = this._dialog.querySelector('.modal-header') drag(this._header, e => { + if (e.srcElement.closest('.modal-header-buttons')) { + return true + } this._originX = e.clientX || e.touches[0].clientX; this._originY = e.clientY || e.touches[0].clientY; diff --git a/test/UnitTest/Components/AutoFillTest.cs b/test/UnitTest/Components/AutoFillTest.cs index 2ce809a4beb2b5bef7bfef392235a1237c528884..037be85e07303e9dda113c64d1ea61626d0f0c36 100644 --- a/test/UnitTest/Components/AutoFillTest.cs +++ b/test/UnitTest/Components/AutoFillTest.cs @@ -269,6 +269,7 @@ public class AutoFillTest : BootstrapBlazorTestBase [Fact] public void ValidateForm_Ok() { + var v = ""; IEnumerable items = new List() { "test1", "test2" }; var cut = Context.RenderComponent(pb => { @@ -276,14 +277,20 @@ public class AutoFillTest : BootstrapBlazorTestBase pb.AddChildContent>(pb => { pb.Add(a => a.Items, items); + pb.Add(a => a.OnCustomFilter, key => + { + v = key; + return Task.FromResult(items); + }); }); }); // Trigger js invoke var comp = cut.FindComponent>().Instance; comp.TriggerOnChange("v"); - - Assert.Equal("v", comp.Value); + var input = cut.Find("input"); + cut.InvokeAsync(() => input.KeyUp("Enter")); + Assert.Equal("v", v); } class AutoFillNullStringMock