Skip to content

Fix UI stack filters and pagination#2284

Draft
ejsmith wants to merge 19 commits into
mainfrom
codex/fix-ui-stack-filters-pagination
Draft

Fix UI stack filters and pagination#2284
ejsmith wants to merge 19 commits into
mainfrom
codex/fix-ui-stack-filters-pagination

Conversation

@ejsmith
Copy link
Copy Markdown
Member

@ejsmith ejsmith commented Jun 2, 2026

What changed

  • Added shared navigation helpers for Events and Stacks pages that preserve exact serialized filter controls and derive the API filter expression from them.
  • Fixed stack "show all events" navigation so explicit all-time links clear the date filter instead of silently reusing the current range.
  • Cleared selected stack/details state after stack deletion and routed full stack detail pages back to their list after deletion.
  • Fixed table pagination sync so page-size changes reset cursor/page state and browser navigation keeps TanStack pagination aligned.
  • Gave the system overview all-time charts enough left padding so y-axis labels do not clip.

Why

User feedback surfaced several high-priority UI failures around stack deletion, event navigation, pagination, and chart rendering. The root cause for the event links was that route-level date/filter state was being recreated from partial query params; serialized filter controls now act as the source of truth, with the filter expression generated from them.

Impact

  • Users can deep-link to Events or Stacks with exact filter controls.
  • Stack-to-events links can intentionally show all-time events.
  • Removing the currently selected stack no longer leaves the UI stuck in a loading state.
  • Page-size and next/previous behavior should stay consistent.

Breaking changes

None.

Validation

  • npm run check
  • npm run test:unit -- --run src/lib/features/events/components/filters/helpers.svelte.test.ts

@ejsmith ejsmith changed the title [codex] Fix UI stack filters and pagination Fix UI stack filters and pagination Jun 2, 2026
Comment on lines +114 to +127
const previousPageInfo = pagination();
const previousPageIndex = previousPageInfo.pageIndex;

setPagination(updaterOrValue);
const currentPageInfo = pagination();
let currentPageInfo = pagination();
const pageSizeChanged = previousPageInfo.pageSize !== currentPageInfo.pageSize;

if (pageSizeChanged && currentPageInfo.pageIndex !== 0) {
currentPageInfo = {
...currentPageInfo,
pageIndex: 0
};
setPagination(currentPageInfo);
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels a bit hacky. this was working. We have three different table pagination strategies.


async function filterChanged(addedOrUpdated: IFilter) {
await redirectToEventsWithFilter(organization.current, addedOrUpdated);
const options = addedOrUpdated.type === 'string' && addedOrUpdated.key === 'string-stack' ? { time: null } : undefined;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can this be a function that's documented, a lot of this stuff was hard to track down.

@ejsmith
Copy link
Copy Markdown
Member Author

ejsmith commented Jun 3, 2026

/preview

1 similar comment
@ejsmith
Copy link
Copy Markdown
Member Author

ejsmith commented Jun 3, 2026

/preview

@github-actions github-actions Bot added the dev-preview Deploy this pull request to the shared dev environment. label Jun 3, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

Preview deployed

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Insulation 25% 23% 203
Exceptionless.Web 73% 62% 3938
Exceptionless.AppHost 18% 9% 82
Exceptionless.Core 69% 63% 7903
Summary 68% (13676 / 20010) 62% (7201 / 11672) 12126

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev-preview Deploy this pull request to the shared dev environment.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants