Skip to content

Commit a81ef1a

Browse files
committed
fixes
1 parent 5fed45c commit a81ef1a

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

src/PrompterOne.Shared/Editor/Components/EditorSourcePanel.razor.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,11 @@ protected override void OnParametersSet()
9292
var isLocalSelectionEcho = _hasPendingLocalSelection && Selection.Range == _lastLocalSelectionRange;
9393
var selectionChanged = Selection.Range != _lastRenderedSelection.Range;
9494
var selectionNeedsRender = Selection.HasSelection || _lastRenderedSelection.HasSelection;
95+
var requiresSurfaceSyncForText = textChanged && !isLocalTextEcho;
9596

9697
_skipNextRender = _surfaceInteropReady && isLocalTextEcho && !selectionNeedsRender;
9798
_syncOverlayAfterRender |= textChanged;
98-
_syncSurfaceAfterRender |= textChanged || (selectionChanged && selectionNeedsRender && !isLocalSelectionEcho);
99+
_syncSurfaceAfterRender |= requiresSurfaceSyncForText || (selectionChanged && selectionNeedsRender && !isLocalSelectionEcho);
99100

100101
if (!isLocalTextEcho)
101102
{

tests/PrompterOne.Web.UITests/Editor/EditorLayoutTests.cs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@ await UiScenarioArtifacts.CapturePageAsync(
232232
await Assert.That(expandedMetrics.MetadataToggleChevronDirection).IsEqualTo(BrowserTestConstants.EditorFlow.MetadataRailExpandedChevronDirection);
233233

234234
await metadataToggle.ClickAsync();
235-
await page.WaitForTimeoutAsync(BrowserTestConstants.EditorFlow.MetadataRailToggleSettleDelayMs);
236235
await Expect(metadataToggle).ToHaveAttributeAsync("aria-expanded", "false");
236+
await WaitForMetadataRailCollapsedAsync(page);
237237

238238
var collapsedMetrics = await ReadLayoutMetricsAsync(page);
239239
await UiScenarioArtifacts.CapturePageAsync(
@@ -257,6 +257,30 @@ await UiScenarioArtifacts.CapturePageAsync(
257257
}
258258
}
259259

260+
private static Task WaitForMetadataRailCollapsedAsync(IPage page) =>
261+
page.WaitForFunctionAsync(
262+
"""
263+
(args) => {
264+
const rail = document.querySelector(`[data-test="${args.railTestId}"]`);
265+
const toggle = document.querySelector(`[data-test="${args.toggleTestId}"]`);
266+
if (!(rail instanceof HTMLElement) || !(toggle instanceof HTMLElement)) {
267+
return false;
268+
}
269+
270+
const railWidth = rail.getBoundingClientRect().width;
271+
return rail.getAttribute('data-collapsed') === 'true' &&
272+
toggle.getAttribute('aria-expanded') === 'false' &&
273+
railWidth <= args.maximumCollapsedWidth;
274+
}
275+
""",
276+
new
277+
{
278+
maximumCollapsedWidth = BrowserTestConstants.Editor.MaximumCollapsedMetadataRailWidthPx,
279+
railTestId = UiTestIds.Editor.MetadataRail,
280+
toggleTestId = UiTestIds.Editor.MetadataRailToggle
281+
},
282+
new() { Timeout = BrowserTestConstants.Timing.DefaultVisibleTimeoutMs });
283+
260284
private static async Task<LayoutBounds> GetRequiredBoundingBoxAsync(ILocator locator) =>
261285
await locator.EvaluateAsync<LayoutBounds>(
262286
"""

0 commit comments

Comments
 (0)