XS✔ ◾ Replace stop emoji and remove dash in My Shaves empty state#993
XS✔ ◾ Replace stop emoji and remove dash in My Shaves empty state#993tomek-i wants to merge 1 commit into
Conversation
…mpty state The empty state used a stop-sign emoji with a dash before the message, which reads as harsh for a first-run/no-data state. Swap in a sad face emoji and drop the dash so it reads naturally. Closes #966
PR Metrics✔ Thanks for keeping your pull request small.
Metrics computed by PR Metrics. Add it to your Azure DevOps and GitHub PRs! |
There was a problem hiding this comment.
Pull request overview
Updates the “My shaves” empty state to be less visually harsh for first-run users by changing the leading emoji and removing the dash formatting, and adds a colocated UI test to lock in the acceptance criteria from #966.
Changes:
- Replace the stop-sign emoji + dash with a sad-face emoji (no dash) in the empty-state title.
- Add
NoShaves.test.tsxto assert the new emoji is present and no dash appears before the message.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| src/ui/src/components/shaves/NoShaves.tsx | Updates the empty-state EmptyTitle text to use 😢 and remove the dash. |
| src/ui/src/components/shaves/NoShaves.test.tsx | Adds UI tests validating emoji replacement and “no dash” formatting. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -10,7 +10,7 @@ export function NoShaves() { | |||
| return ( | |||
| <Empty> | |||
| <EmptyHeader className="gap-6 items-start!"> | |||
| const title = screen.getByText(/You don't have any YakShaves yet!/i); | ||
| expect(title.textContent).toContain("😢"); | ||
| expect(title.textContent).not.toContain("⛔️"); | ||
| }); |
| const title = screen.getByText(/You don't have any YakShaves yet!/i); | ||
| expect(title.textContent).toBe("😢 You don't have any YakShaves yet!"); | ||
| expect(title.textContent).not.toMatch(/-\s*You don't have any YakShaves yet!/); | ||
| }); |
|
🚀 Pre-release build is available for this PR: |
|
🔭 crows-nest: picked up by ARMADA — dispatching to muster for review. |
🔭 muster review — PR #993Lenses: code-review + codex-rescue (both ran)
Nit
Both lenses agreed the change itself is correct, in scope, and adequately tested. No further action needed on this PR. |
|
✅ reviewed, addressed, green — awaiting human merge (auto-merge off). |
|
🔭 crows-nest: ready-PR pipeline started — review → address → re-validate → gated merge. |
🔭 muster review — PR #993Verdict: 0 blocking, 0 major, 0 minor, 0 nit — no findings.
code-review lens findings: none. The diff is a tiny, well-scoped copy change (stop-sign emoji + dash → sad-face emoji in the "My Shaves" empty state) with a matching colocated test that correctly asserts both acceptance criteria. No stale references to the old string elsewhere in the codebase, no encoding/textContent gotchas (single-codepoint emoji), test logic is sound. Non-blocking observation (not a finding, not in scope for this PR): Bottom line: no blocking findings — review advisory only (degraded, single-lens). |
|
🔭 crows-nest: pipeline outcome — blocked. Reason: the muster review came back degraded (the This is an environment limitation, not a defect in this PR: the underlying change (code-review lens, no findings) looks clean. A human can review directly and merge, or re-run muster once a |
|
🎬 Walkthrough video: https://github.com/SSWConsulting/SSW.YakShaver.Desktop/releases/download/logbook-pr-993/walkthrough-993.mp4 walkthrough-993.mp4 |
Summary
Closes #966
Changes
src/ui/src/components/shaves/NoShaves.tsx— swapped⛔️ -for😢(no dash) in theEmptyTitle.src/ui/src/components/shaves/NoShaves.test.tsx— new colocated test asserting the sad face emoji is present, the stop-sign emoji is gone, and there is no dash between the emoji and the message text.Acceptance criteria
Testing performed
cd src/ui && npx vitest run --reporter=verbose src/components/shaves/NoShaves.test.tsx— 2/2 new tests pass.cd src/ui && npm test— full UI suite: 263/263 tests pass across 36 files.npm run lint— clean (biome check, exit 0).npm run build— clean (tsc, no errors).