Repository navigation
Conversation
… results When a user searches or applies filters on the guest list and no guests match, the UI previously displayed "No households yet" — implying no guests exist at all. GuestsView is only mounted when totalGuests > 0, so sortedHouseholds.length === 0 always means active filters are hiding results, never that the list is genuinely empty. Updated the message to accurately describe the situation.
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Daily Product Improvement
📝 TLDR
Correct the guest list empty state message so it reflects active filters instead of implying guests don't exist.
📝 Description
When a user types in the guest search box or activates an RSVP, tag, or country filter and no households match, the guest list previously displayed:
This message implies the couple hasn't added any guests — potentially causing confusion or alarm. In reality, guests exist and the filter is simply hiding them.
GuestsViewis only mounted whentotalGuests > 0, sosortedHouseholds.length === 0inside that component is always caused by active filters, never by a genuinely empty guest list.This Change
AsyncStateemptyTextprop at the filter-empty branch inGuestsViewfrom'No households yet'to'No guests match your current search or filters'GuestSearchFilter) already renders a visible "Clear" button when filters are active, so users have a clear affordance to reset — the message now correctly explains why the list is emptyRecommendations Reviewed
The following areas were inspected during today's review pass. Issues without open PRs were considered as candidates.
Area: Dashboard –
planning-overview.tsxVendorsCardIssue:
isLoadingnot destructured from query; shows "No vendors added yet" empty state while data is in-flightRecommendation: Add a loading skeleton matching the BudgetCard pattern (PR #233 already covers BudgetCard)
Type: UX/UI · Priority: High · Effort: Small
Area: Dashboard –
planning-overview.tsxMilestonesCardIssue:
visibleMilestones.map()renders nothing when the array is empty — card body is completely blank for new usersRecommendation: Add a minimal placeholder with guidance text
Type: UX/UI · Priority: Medium · Effort: Small
Area: Guest list –
guests-view.tsx:680Issue: Filter/search returning zero results shows "No households yet" — incorrect and potentially alarming
Recommendation: Change message to "No guests match your current search or filters" ✅ Selected today
Type: UX/UI · Priority: High · Effort: Small
Area: Vendor panel –
vendor-detail-panel.tsx:394–403Issue: Scratchpad save uses untrimmed value:
notes: normalized ? scratchpad : nullshould benotes: normalized || null— whitespace-only notes saved verbatimRecommendation: Fix the variable reference from
scratchpadtonormalizedType: Frontend cleanup · Priority: Medium · Effort: Small
Area: Checklist –
checklist-page-client.tsx:86–88Issue:
hasActiveTasksreads unfilteredtasks, notfilteredTasks— "Everything is checked off" state never shows when a filter is hiding active itemsRecommendation: Change to read from
filteredTasksType: Frontend cleanup · Priority: Medium · Effort: Small
Area: Vendor timeline –
vendor-note-timeline.tsx:17Issue:
actorLabelhardcodes "you" for all users — collaborators see their own notes attributed to "you"Recommendation: Display the author's name/initials using the actor data
Type: Product flow · Priority: Medium · Effort: Small
Area: Settings –
settings/page.tsx:48–56Issue: Wedding details load failure shows dead-end text with no retry button or link
Recommendation: Add a Retry button matching the pattern in
OrganizationMembersSettingsCardType: UX/UI · Priority: Medium · Effort: Small
Area: Budget –
category-card.tsxIssue: Delete action button always reads "Delete" even while mutation is pending — no loading state
Recommendation: Show "Deleting..." while
deleteCategory.isPendingis trueType: UX/UI · Priority: Low · Effort: Small
Area: Settings –
organization-members-settings-card.tsx+organization-outstanding-invites-card.tsxIssue:
authGetandauthPosthelper functions are defined identically in both files (18 total occurrences)Recommendation: Extract to a shared
~/lib/auth-fetch.tsutilityType: Frontend cleanup · Priority: Low · Effort: Small
Area: Multiple components
Issue: Font sizes as small as 0.52–0.58rem (~8–9px) are used across vendor cards, task rows, checklist categories, and dashboard stats — below WCAG AA legibility thresholds
Recommendation: Audit and raise all sub-12px text to at minimum 11–12px; define minimum-size tokens
Type: UX/UI · Priority: High · Effort: Large
Selected Improvement
Fix the guest list filter empty state: change
emptyTextfrom'No households yet'to'No guests match your current search or filters'inguests-view.tsx.Why This Was Selected
GuestsViewis only rendered whentotalGuests > 0(enforced by the parentindex.tsx). Any timesortedHouseholds.length === 0inside this component, the active search or filter is hiding results — the message "No households yet" is logically impossible to be correct here. The fix is a single-line change with zero risk, immediate user clarity, and no new dependencies.Changes Made
AsyncStateemptyTextprop in thesortedHouseholds.length === 0branch ofGuestsViewFiles Changed
src/components/guest-list/guests-view.tsx🧪 Testing
tsc --noEmit— no new errors (only a pre-existingbaseUrldeprecation warning)GuestsViewmounts only when guests exist, so the emptysortedHouseholdscase is always filter-driven🧪 How to test as a user
zzz)🎨 Style and code quality
Future Recommendations
VendorsCard loading skeleton (partner to PR #233)
isLoadingcheck toVendorsCardinplanning-overview.tsxand render a skeleton instead of the empty state during initial fetchScratchpad saves untrimmed value (vendor-detail-panel.tsx)
notes: normalized ? scratchpad : nulltonotes: normalized || nullChecklist
hasActiveTasksreads unfiltered tasksfilteredTasksso the completion empty state appears correctly under filtersPervasive sub-12px font sizes failing WCAG AA
text-[0.52rem]–text-[0.58rem]to at least 11–12px; establish minimum-size design tokensGitHub Issues Created or Proposed
Proposed: One GitHub issue for the pervasive sub-12px font size problem. This issue affects vendor cards, dashboard stats, task rows, checklist category labels, and budget cells — it is too broad for a single daily PR and needs design input to establish acceptable minimums before implementation.
Generated by Claude Code