Skip to content

Polish Svelte event and settings UX#2240

Merged
niemyjski merged 2 commits into
mainfrom
svelte-event-settings-polish
May 18, 2026
Merged

Polish Svelte event and settings UX#2240
niemyjski merged 2 commits into
mainfrom
svelte-event-settings-polish

Conversation

@ejsmith
Copy link
Copy Markdown
Member

@ejsmith ejsmith commented May 16, 2026

Polishes the Svelte event details, session event navigation, and settings experiences.

Summary:

  • Improve event detail tabs, promote-to-tab behavior, and realistic sample extended data.
  • Add session event deep-linking/filter flows and remove stale date filtering from session filters.
  • Standardize project, organization, and system settings tabs and page headings.
  • Move table add/invite actions into toolbars and stabilize page/popover scrollbar behavior.

Validation:

  • npm run check
  • npm run build
  • dotnet build src/Exceptionless.Core/Exceptionless.Core.csproj
  • git diff --check

Note: Full solution dotnet build was attempted, but local running .NET host/debug adapter processes locked Web/Job output DLLs during copy. The changed Core project built successfully.

ejsmith added 2 commits May 16, 2026 18:11
Improve event detail tabs, session navigation, settings layouts, table actions, scrollbar stability, and generated sample extended data.
@github-actions
Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Web 60% 46% 3906
Exceptionless.AppHost 18% 9% 82
Exceptionless.Insulation 25% 23% 203
Exceptionless.Core 64% 60% 7706
Summary 61% (12341 / 20304) 54% (6234 / 11440) 11897

@niemyjski niemyjski merged commit 38a5bd8 into main May 18, 2026
11 checks passed
@niemyjski niemyjski deleted the svelte-event-settings-polish branch May 18, 2026 00:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refines the Svelte app UX around event details (tabs + session navigation), settings pages (layouts/headings/toolbars), and some global scroll/popover behavior. It also improves generated sample event data used for extended-data displays.

Changes:

  • Reworks event detail tabs (scrollable tab list + session deep-link/filter flow) and updates the event sheet scrolling behavior.
  • Standardizes multiple system/project/organization settings pages by simplifying headings and moving “add/invite” actions into data table toolbars.
  • Adjusts popover/select scroll-lock defaults and adds a global scrollbar stabilization rule; enriches server-side random event extended data.

Reviewed changes

Copilot reviewed 32 out of 32 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/Exceptionless.Web/ClientApp/src/routes/(app)/system/overview/+page.svelte Simplifies system overview header/presentation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/system/migrations/+page.svelte Simplifies migrations page header/presentation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/system/elasticsearch/+layout.svelte Simplifies Elasticsearch section header and layout.
src/Exceptionless.Web/ClientApp/src/routes/(app)/system/actions/[[category]]/+page.svelte Simplifies actions page header/presentation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/system/+layout.svelte Replaces sidebar layout with horizontal, scrollable tab-style navigation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/usage/+page.svelte Simplifies usage page header copy and punctuation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/settings/+page.svelte Removes redundant page header/separator and tweaks copy.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/manage/+page.svelte Simplifies header and improves destructive action labeling.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/integrations/+page.svelte Moves webhook actions/view options into the table toolbar.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/configure/+page.svelte Simplifies header and removes extra separator.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/configuration-values/+page.svelte Moves add/view-options controls into the table toolbar.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/api-keys/+page.svelte Moves add/view-options controls into the table toolbar.
src/Exceptionless.Web/ClientApp/src/routes/(app)/project/[projectId]/+layout.svelte Replaces sidebar layout with horizontal, scrollable tab-style navigation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/list/+page.svelte Moves add/view-options controls into the organizations table toolbar.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/[organizationId]/users/+page.svelte Moves invite/view-options controls into the users table toolbar.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/[organizationId]/usage/+page.svelte Simplifies usage page header copy and punctuation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/[organizationId]/projects/+page.svelte Moves add control into the projects table toolbar; simplifies header.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/[organizationId]/manage/+page.svelte Simplifies header and improves destructive action labeling.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/[organizationId]/features/+page.svelte Simplifies features page header/presentation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/[organizationId]/billing/+page.svelte Removes redundant billing heading/separator.
src/Exceptionless.Web/ClientApp/src/routes/(app)/organization/[organizationId]/+layout.svelte Replaces sidebar layout with horizontal, scrollable tab-style navigation.
src/Exceptionless.Web/ClientApp/src/routes/(app)/+page.svelte Adds time= handling to allow “no date filter” flows for deep links.
src/Exceptionless.Web/ClientApp/src/routes/(app)/(components)/sidebar-nav.svelte Adds orientation option plumbing to navigation container.
src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/select/select-content.svelte Changes default scroll-lock behavior for select popovers.
src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/ui/dropdown-menu/dropdown-menu-content.svelte Adds configurable scroll-lock behavior for dropdown menus.
src/Exceptionless.Web/ClientApp/src/lib/features/shared/components/navigation/nav-container.svelte Adds orientation option and horizontal scrolling behavior.
src/Exceptionless.Web/ClientApp/src/lib/features/projects/api.svelte.ts Ensures promoted-tab mutation uses JSON content-type/body.
src/Exceptionless.Web/ClientApp/src/lib/features/events/components/views/session-events.svelte Adds session event deep-link/filter button and row navigation behavior.
src/Exceptionless.Web/ClientApp/src/lib/features/events/components/events-overview.svelte Adds scrollable tab UX and session tab wiring.
src/Exceptionless.Web/ClientApp/src/lib/features/events/components/event-detail-sheet.svelte Tweaks sheet scrolling and closes sheet on session-filter navigation.
src/Exceptionless.Web/ClientApp/src/app.css Updates theme muted colors and stabilizes scrollbar behavior.
src/Exceptionless.Core/Utility/RandomEventGenerator.cs Produces more realistic extended-data payloads for sample events/errors.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +114 to 119
let filters = $state(applyTimeFilter(getFiltersFromCache(filterCacheKey(queryParams.filter), queryParams.filter), getQueryTime()));
watch(
[() => queryParams.filter, () => queryParams.time, () => filterCacheVersionNumber()],
([filter, time]) => {
filters = applyTimeFilter(getFiltersFromCache(filterCacheKey(filter), filter), time);
[() => queryParams.filter, () => queryParams.time, () => page.url.search, () => filterCacheVersionNumber()],
([filter]) => {
filters = applyTimeFilter(getFiltersFromCache(filterCacheKey(filter), filter), getQueryTime());
},
Comment on lines +176 to 186
<Table.Row
aria-label={`Open event ${sessionEvent.id}`}
class="hover:bg-muted/50 focus-visible:ring-ring/50 focus-visible:outline-ring cursor-pointer focus-visible:ring-[3px] focus-visible:outline-1"
onclick={() => openSessionEvent(sessionEvent.id)}
onkeydown={(keyboardEvent) => handleSessionEventKeydown(keyboardEvent, sessionEvent.id)}
role="link"
tabindex={0}
title="Open event details"
>
<Table.Cell>
<Summary summary={sessionEvent} showType={true} showStatus={false} />

let { children, class: className, ...props }: Props = $props();
let { children, class: className, orientation = 'responsive', ...props }: Props = $props();
// TODO: Look into having this use the sidbar menu items and a tab control on mobile.
niemyjski pushed a commit that referenced this pull request May 19, 2026
* Polish Svelte event and settings UX

Improve event detail tabs, session navigation, settings layouts, table actions, scrollbar stability, and generated sample extended data.

* Fix Svelte UI formatting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants