Skip to content

Fix UI\UX problems for address book. SPEK-155#5658

Draft
stepanLav wants to merge 20 commits intodevfrom
screenshots/SPEK-155
Draft

Fix UI\UX problems for address book. SPEK-155#5658
stepanLav wants to merge 20 commits intodevfrom
screenshots/SPEK-155

Conversation

@stepanLav
Copy link
Member

@stepanLav stepanLav commented Feb 27, 2026

Description

Integration branch that merges all Address Book UI/UX fixes (SPEK-155 through SPEK-168) and adds Storybook stories + Playwright screenshot infrastructure for visual regression testing.

This PR depends on all the individual feature PRs (#5650#5657) being merged first. It adds:

  • 14 Storybook story files for Address Book components (entity + feature layers)
  • Effector fork decorator for connected component stories
  • Playwright screenshot config and test spec capturing 31 screenshots across 12 components
  • pnpm test:screenshots script in package.json

Related Issues

SPEK-155

Changes Made

  • Added story files for: ContactSkeleton, BackendErrorView, EmptyBackendView, ContactRow, SyncStatusBadge, AuthStatus, BackendConfigurationModal, BackendSyncSettings, BackendContactRow, CachedWithErrorView, BackendConnectionCard, BackendLoadingView
  • Added playwright.screenshots.config.ts pointing at Storybook on localhost:6006
  • Added tests/screenshots/address-book.spec.ts with component-keyed test structure
  • Screenshot output uses Playwright's toHaveScreenshot for baseline comparison
  • Fixed ESM compatibility, circular dependency TDZ, and derived store fork issues

Checklist

  • I have performed a self-review of my own code
  • I have tested the changes and verified the happy path works as expected
  • I have provided screenshot of the working feature (if applicable)
  • I have provided description of the changes and any additional context that might help reviewers perform more accurate review
  • I have added tests that cover the base logic (if applicable)
  • My code follows the project's coding standards and style guidelines

Extract ContactSkeleton, BackendLoadingView, BackendErrorView, and
EmptyBackendView into separate files under entities/contact/ui.
Remove orphaned i18n keys (removeConfirm, unused auth keys,
backendContact labels, actions.edit).
… (SPEK-158)

Replace custom globe-in-circle with Graphics emptyList component to
match other empty states. Add contextual guidance description text.
Add lock icon and "Synced" label to BackendContactRow with tooltip
explaining the contact is managed by the backend server.
Add debounced URL health check with inline indicator showing
checking/reachable/unreachable states next to the URL input in
BackendConfigurationModal.
…EK-164)

Add "Address Book Sync" section showing current backend status with
configure/add backend buttons to open the configuration modal.
Add aria-labels to all IconButtons in ContactRow, BackendContactRow, and
Contacts. Wrap contact list in aria-live region with aria-busy for loading
state to announce content changes to screen readers.
…SPEK-160)

Add $lastSyncTime and $syncStatus stores to backend-contacts-model.
Create SyncStatusBadge component showing relative time since last sync
with tooltip for exact time. Replace raw refresh IconButton in Contacts
page with the new badge.
… (SPEK-162)

Add $isSessionExpired store and periodic session health check every 5
minutes using patronum interval. When session expires, AuthStatus shows
a warning icon with "Session expired" text instead of the account name.
…rd (SPEK-167)

Show "Disconnected" label when not authenticated instead of hiding the
status. Add warning border to BackendConnectionCard when disconnected or
session expired. Globe icon turns warning color on session expiry.
… (SPEK-166)

When a backend sync fails but cached contacts are available, display
them with a warning alert banner instead of showing a full error screen.
This provides a better experience when the server is temporarily
unavailable.
@stepanLav stepanLav changed the title Screenshots/spek 155 Fix UI\UX problems for address book. SPEK-155 Feb 27, 2026
@stepanLav stepanLav marked this pull request as draft February 27, 2026 09:56
@stepanLav stepanLav marked this pull request as draft February 27, 2026 09:56
@github-actions
Copy link
Contributor

github-actions bot commented Feb 27, 2026

Unit Test Results

  1 files  169 suites   33s ⏱️
956 tests 945 ✅ 10 💤 1 ❌
997 runs  986 ✅ 10 💤 1 ❌

For more details on these failures, see this check.

Results for commit b29353b.

♻️ This comment has been updated with latest results.

@stepanLav stepanLav force-pushed the screenshots/SPEK-155 branch from c8bc162 to 4e579d3 Compare February 27, 2026 10:07
@stepanLav stepanLav force-pushed the screenshots/SPEK-155 branch from 4e579d3 to d8ba2e5 Compare February 27, 2026 10:23
@stepanLav stepanLav force-pushed the screenshots/SPEK-155 branch from d8ba2e5 to b29353b Compare February 27, 2026 10:28
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