Skip to content

feat(ui): shared components, dialog confirms, toasts, sheet nav - #317

Merged
ajianaz merged 1 commit into
developfrom
feat/shared-ui-components
Sep 3, 2026
Merged

feat(ui): shared components, dialog confirms, toasts, sheet nav#317
ajianaz merged 1 commit into
developfrom
feat/shared-ui-components

Conversation

@ajianaz

@ajianaz ajianaz commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What

  • New EmptyState and Pagination components; replaces 5 duplicated empty-state blocks and 4 copy-pasted pagination controls (issues, transactions, release-health, issue detail events, projects)
  • AlertDialog confirmations for destructive actions: delete project, rotate DSN, delete alert rule (replaces the native confirm() and previously-unconfirmed rotate/delete)
  • svelte-sonner Toaster in the root layout, themed via mode-watcher; success/error toasts for project create/archive/unarchive/delete/rename, DSN rotate, rule create/toggle/delete, password change
  • Mobile nav rebuilt on bits-ui Sheet (left drawer): focus trap, Escape close, outside-click close for free — previously a hand-rolled accordion with none of those
  • Adds WithoutChild/WithoutChildrenOrChild type helpers to utils.ts required by the current shadcn-svelte registry; shadcn CLI added alert-dialog/sheet/sonner components

Why

Copy-pasted UI machinery drifts per page and makes consistency work harder. Destructive actions need accessible, styled confirmation; mutations need visible feedback; the mobile menu lacked basic dialog accessibility.

Testing

  • npm run check (0 errors), npm test (10/10), npm run build pass
  • Full Playwright suite: 16/16 against a live server
  • Visually validated: mobile sheet drawer (390px, Esc closes), delete-rule confirm dialog, 'Rule disabled' toast, refactored pagination/empty states on dark + light

…oasts, sheet nav

- Extract duplicated empty states (5 pages) and pagination controls
  (4 pages) into EmptyState/Pagination components
- Replace native confirm() and unconfirmed destructive actions with
  AlertDialog: delete project, rotate DSN, delete alert rule
- Add svelte-sonner Toaster (themed via mode-watcher) with success/
  error feedback for project, rule, and password mutations
- Replace hand-rolled mobile nav accordion with bits-ui Sheet drawer:
  gains focus trap, Escape close, and outside-click close
- Add WithoutChild/WithoutChildrenOrChild type helpers required by
  current shadcn-svelte registry components
@ajianaz
ajianaz merged commit eb6aee4 into develop Sep 3, 2026
17 checks passed
@ajianaz
ajianaz deleted the feat/shared-ui-components branch September 3, 2026 06:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant