Skip to content

Conversation

@theospears
Copy link
Collaborator

@theospears theospears commented Jan 6, 2026

Summary

  • When filtering goals in the gallery and no goals match the filter, the app now shows a helpful message indicating how many goals are hidden
  • Previously, the generic "You have no Beeminder goals!" message was shown, which was confusing when a filter was active

Fixes #604

Test plan

  • Open the gallery with some goals
  • Tap the search button and enter a filter that matches no goals
  • Verify the message shows "No goals match your filter. X goals hidden." instead of "You have no Beeminder goals!"
  • Clear the filter and verify goals reappear
  • With no goals at all, verify the original "You have no Beeminder goals!" message still appears

🤖 Generated with Claude Code

When filtering goals in the gallery, if no goals match the search term,
the app now shows a helpful message indicating that goals are hidden
due to the filter, rather than the generic "You have no Beeminder goals"
message.

Fixes #604

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@theospears theospears requested a review from a team as a code owner January 6, 2026 06:01
theospears and others added 7 commits January 5, 2026 22:03
Wrap noGoalsLabel in a container view with 20pt horizontal insets
for better visual appearance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use the standard UICollectionView backgroundView property to display
the empty state message. This is cleaner than managing a separate
view in the stack and toggling visibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove the totalGoalsCount class variable and compute it directly
where needed, simplifying the code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When the search keyboard is visible, a centered label would be hidden.
Position it 100pt from the top instead so it remains visible.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use UILayoutGuide constrained to keyboardLayoutGuide to center the
label in the available space above the keyboard. The label will
automatically animate when the keyboard appears/disappears.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The container must be in the view hierarchy before we can constrain
it to keyboardLayoutGuide. Set backgroundView first, then add the
layout guide and constraints.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@theospears theospears merged commit 3dba201 into master Jan 7, 2026
6 checks passed
@theospears theospears deleted the fix-604-filter-empty-state branch January 7, 2026 02:48

if self.filteredGoals.isEmpty {
self.noGoalsLabel.isHidden = false
self.collectionContainer.isHidden = true
Copy link
Contributor

Choose a reason for hiding this comment

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

like #506, this also fixes #226

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.

gallery list is merely empty when no goals match filter

3 participants