Skip to content

fix(dashboard): rework the venue picker dropdown - #453

Merged
harshtandiya merged 1 commit into
developfrom
fix/venue-picker-dropdown
Sep 9, 2026
Merged

fix(dashboard): rework the venue picker dropdown#453
harshtandiya merged 1 commit into
developfrom
fix/venue-picker-dropdown

Conversation

@harshtandiya

@harshtandiya harshtandiya commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Popover sized itself to its widest row, so a Maps/Zoom URL address stretched it across the viewport — rows now cap at the trigger width.
  • Add Manually and Create Zoom Meeting moved out of the scrolling list into a static footer, so neither scrolls away.
  • A query no venue answers to arms Add Manually and Enter takes it, carrying the typed text in as the venue name; "No results" is gone.
  • New ZoomLogo.vue with a color prop — brand blue by default, grey in the dropdown.
  • WHERE section space-y-3 to space-y-1.5; the label was floating away from its field.

Two things that look odd on purpose:

  • !justify-start and !bg-surface-gray-3 need the ! — Button hardcodes justify-center and bg-transparent, and there is no class merge.
  • @keydown.enter.prevent. Without .prevent, Enter's default action clicks whatever the dialog focuses as it mounts, and the dialog closes again ~150ms later.

The Zoom row stays out of the list but comes back while selected, because the trigger reads its display label from a matching option.

Demo

Before
image

After

demo-locationui.mp4

Testing

Driven manually in Chromium against the local bench, with the venue list stubbed to long-URL addresses: popover width, static footer, armed Add Manually, Enter with and without a match, and Enter on a matching query still selecting the row. oxlint and oxfmt pass; vue-tsc reports nothing in src/. No new tests — nothing here is logic worth a test that a screenshot does not already show.

The popover sized itself to its widest row, so a venue whose address is a
Google Maps or Zoom URL stretched the panel across the viewport. Rows now cap
at the trigger width and the existing truncation does the rest.

Add venue and Create Zoom meeting move out of the scrolling list into a static
footer, so both stay reachable however long the venue list gets. Typing
something no venue answers to arms Add Manually and Enter takes it, with the
typed text carried in as the venue name; the "No results" line is gone, since
the armed button already says what happens next.

Enter is prevented on the trigger: its default action clicks whatever the
dialog focuses as it opens, which closed the dialog again.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

UI Demo Check — a screenshot or demo is attached.

@greptile-apps

greptile-apps Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 4/5

The PR appears safe to merge after addressing the non-blocking venue-loading edge case in the Enter shortcut.

Fix All in Claude CodeFindings

  1. P2 Loading Arms Manual Creation

Summary

  • Adds a reusable, color-configurable Zoom logo.
  • Keeps a selected Zoom option available for trigger-label resolution.
  • Tightens spacing around the event location field.
  • One loading-state edge case can incorrectly activate the manual-add shortcut.

// pre-armed, and Enter takes it.
const unmatched = computed(() => {
const text = query.value.trim().toLowerCase()
return Boolean(text) && !(venues.data ?? []).some((row) => row.name.toLowerCase().includes(text))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Loading Arms Manual Creation

While the team's venues are still loading, venues.data ?? [] treats the missing data as a completed empty list. Any non-empty query is therefore marked as unmatched, and pressing Enter opens the Add Venue dialog even if that venue already exists. This can lead the organizer into a duplicate-name insert that fails instead of selecting the venue after loading completes. Only arm the shortcut after the venue resource has finished loading.

Knowledge Base Used: Dashboard event management

Prompt To Fix With AI
This is a comment left during a code review.
Path: dashboard/src/components/dashboard/events/EventLocation.vue
Line: 48

Comment:
**Loading Arms Manual Creation**

While the team's venues are still loading, `venues.data ?? []` treats the missing data as a completed empty list. Any non-empty query is therefore marked as unmatched, and pressing Enter opens the Add Venue dialog even if that venue already exists. This can lead the organizer into a duplicate-name insert that fails instead of selecting the venue after loading completes. Only arm the shortcut after the venue resource has finished loading.

**Knowledge Base Used:** [Dashboard event management](https://app.greptile.com/bwh-tech/-/custom-context/knowledge-base/bwhtech/buzz/-/docs/dashboard-event-management.md)

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code Fix in Codex

@harshtandiya
harshtandiya merged commit f20a07f into develop Sep 9, 2026
11 of 13 checks passed
@harshtandiya
harshtandiya deleted the fix/venue-picker-dropdown branch September 9, 2026 05:18
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