Skip to content

80 fix views buttons#99

Merged
nazarli-shabnam merged 4 commits into
mainfrom
80-fix-create-views-buttons
May 5, 2026
Merged

80 fix views buttons#99
nazarli-shabnam merged 4 commits into
mainfrom
80-fix-create-views-buttons

Conversation

@nazarli-shabnam
Copy link
Copy Markdown
Member

Summary

Linked issues

Closes #

Type of change

  • Feature (feat:) — user-visible new capability
  • Bug fix (fix:) — corrects broken behavior
  • Refactor (refactor:) — no behavior change, internal only
  • Performance (perf:) — measurable improvement
  • Documentation (docs:) — README / CLAUDE.md / planning docs only
  • Tests (test:) — adds or corrects tests
  • Chore (chore:) — deps, tooling, CI, formatting
  • Style (style:) — visual / theming polish only

Surface

  • API (api/)
  • UI (ui/)
  • Database migration (api/migrations/)
  • Background jobs (RabbitMQ / queue)
  • Instance settings / Admin UI
  • Infra / Docker / CI

What changed

Why this approach

Database / migrations

  • Added api/migrations/NNNNNN_<name>.up.sql AND matching .down.sql
  • Migration is idempotent / safe to re-run on a fresh DB
  • Migration applied cleanly via database.RunMigrations on startup

Breaking changes

  • No
  • Yes — described below

Test plan

  • npm run validate (root) — typecheck + lint + prettier + go vet + go test
  • [ ] Manual smoke test of the affected flow:

Screenshots / recordings (UI changes)

Before After

Rollout notes

Checklist

closes #80

  • PR title follows Conventional Commits and is ≤ 100 chars
  • Hooks ran cleanly (no --no-verify bypass)
  • Trailing slashes on new routes match the surrounding pattern
  • New env vars added to internal/config/config.go and documented above
  • No secrets, tokens, or .env values committed

@nazarli-shabnam nazarli-shabnam added this to the Deadline milestone May 5, 2026
@nazarli-shabnam nazarli-shabnam self-assigned this May 5, 2026
Copilot AI review requested due to automatic review settings May 5, 2026 11:43
@nazarli-shabnam nazarli-shabnam added bug Something isn't working enhancement New feature or request labels May 5, 2026
@nazarli-shabnam nazarli-shabnam linked an issue May 5, 2026 that may be closed by this pull request
@nazarli-shabnam nazarli-shabnam requested a review from Javenn0 May 5, 2026 11:43
@nazarli-shabnam nazarli-shabnam changed the title 80 fix create views buttons 80 fix views buttons May 5, 2026
Copy link
Copy Markdown
Member Author

@nazarli-shabnam nazarli-shabnam left a comment

Choose a reason for hiding this comment

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

done

Copy link
Copy Markdown
Member

@Javenn0 Javenn0 left a comment

Choose a reason for hiding this comment

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

Well done

@nazarli-shabnam nazarli-shabnam merged commit e9c8f78 into main May 5, 2026
9 checks passed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the Workspace Views “Filters/Display/Add view” toolbar and related dropdown panels to behave better in constrained viewports (especially inside modals), addressing Issue #80 around the “Create views” buttons and panels.

Changes:

  • Adjusts Filters/Display dropdown panel sizing to be more responsive (viewport-width aware + smaller default max heights).
  • Updates dropdown positioning/z-index behavior to work above modal overlays and adds attempted viewport-constrained positioning.
  • Simplifies Workspace Views header dropdown-open state so only one toolbar dropdown is open at a time, and closes toolbar dropdowns when opening “Add view”.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx Removes per-panel maxHeight style in favor of dropdown panel constraints.
ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx Updates dropdown panel sizing (responsive width + new max-height).
ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx Raises z-index and adds attempted vertical flipping/maxHeight behavior for the ellipsis menu panel.
ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx Adds scrolling behavior for display-property buttons within constrained panels.
ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx Updates dropdown panel sizing (responsive width + new max-height).
ui/src/components/workspace-views/CreateViewModal.tsx Resets open dropdown panel state when the modal opens/closes; updates panel sizing.
ui/src/components/work-item/Dropdown.tsx Raises dropdown z-index and adds attempted viewport-aware positioning and maxHeight constraints.
ui/src/components/layout/PageHeader.tsx Consolidates Filters/Display open state and closes toolbar dropdowns before opening Create View modal.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +70 to +73
const triggerRect = triggerRef.current.getBoundingClientRect();
const panelRect = panelRef.current?.getBoundingClientRect();
const panelHeight = panelRect?.height ?? 0;
const panelWidth = panelRect?.width ?? 0;
Comment on lines 73 to +82
const rect = triggerRef.current.getBoundingClientRect();
const panelRect = panelRef.current?.getBoundingClientRect();
const panelHeight = panelRect?.height ?? 0;
const availableBelow = window.innerHeight - rect.bottom - VIEWPORT_PADDING - PANEL_GAP;
const availableAbove = rect.top - VIEWPORT_PADDING - PANEL_GAP;
let top = rect.bottom + PANEL_GAP;
if (panelHeight > 0 && availableBelow < panelHeight && availableAbove > availableBelow) {
top = Math.max(VIEWPORT_PADDING, rect.top - panelHeight - PANEL_GAP);
}
const maxHeight = Math.max(120, Math.max(availableBelow, availableAbove));
Comment on lines 27 to 33
<div className="flex flex-col">
<div className="border-b border-(--border-subtle) bg-(--bg-surface-1) p-3">
<p className="text-xs font-medium text-(--txt-secondary)">Display Properties</p>
</div>
<div className="flex flex-1 flex-wrap gap-2 p-3">
<div className="flex flex-1 flex-wrap content-start gap-2 overflow-y-auto p-3">
{DISPLAY_PROPERTY_KEYS.map((key) => {
const selected = display.properties.includes(key);
top: position.top,
...(position.left !== undefined && { left: position.left }),
...(position.right !== undefined && { right: position.right }),
...(position.maxHeight !== undefined && { maxHeight: position.maxHeight }),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request UI UX

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create views buttons

3 participants