[FEAT] Implement view page functionalities#29
Conversation
… layout rendering in WorkspaceViewsPage. Adding sort to the display type
There was a problem hiding this comment.
Pull request overview
Implements “workspace views” functionality in the UI, adding Plane-style view routing plus URL-driven filters/display configuration and saved view creation/loading.
Changes:
- Added URL <-> state parsing/serialization for workspace view filters and display settings.
- Expanded Workspace Views page to support dynamic view IDs, apply saved view config to the URL, and filter/sort/render issues accordingly.
- Added workspace-views header controls (layout selector, filters/display dropdowns, create-view modal, ellipsis menu) and updated navigation/routes to use
/views/:viewId.
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/types/workspaceViewFilters.ts | Introduces filter enums/types + URL parsing/serialization for view filters. |
| ui/src/types/workspaceViewDisplay.ts | Adds display/layout/sort types + URL parsing/serialization for view display controls. |
| ui/src/services/viewService.ts | Adds get + create endpoints and request typing for views API. |
| ui/src/routes/index.tsx | Adds /views redirect and /views/:viewId route to support per-view pages. |
| ui/src/pages/WorkspaceViewsPage.tsx | Applies saved views to URL, filters/sorts issues based on URL params, supports multiple layouts. |
| ui/src/components/workspace-views/index.ts | Exports new workspace-views UI components. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Layout toggle wired to URL search params. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Adds filters dropdown UI wired to URL search params. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Adds display-properties + “show sub-items” controls wired to URL search params. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Adds “open in new tab” and “copy link” actions for views. |
| ui/src/components/workspace-views/DateRangeModal.tsx | Adds custom date-range picker modal for start/due filtering. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Adds modal to create and persist a view from current URL state. |
| ui/src/components/layout/Sidebar.tsx | Updates Views nav link to new canonical /views/all-issues route and active-state logic. |
| ui/src/components/layout/PageHeader.tsx | Reworks Workspace Views header to include view selector + new controls and view creation. |
| ui/src/components/CreateWorkItemModal.tsx | Adds inline label creation flow in the label dropdown. |
| ui/package-lock.json | Updates lockfile with additional Tailwind-related optional dependencies. |
Files not reviewed (1)
- ui/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx
Outdated
Show resolved
Hide resolved
martian56
left a comment
There was a problem hiding this comment.
Please resolve all copilot warnings
There was a problem hiding this comment.
Pull request overview
This PR upgrades the workspace-level “Views” experience in the UI by introducing URL-driven filter/display state, dynamic loading of saved views from the backend, and richer view controls (filters, display properties, layouts), plus label creation from the work item modal.
Changes:
- Added typed parsing/serialization for workspace view filters and display options via URL search params.
- Implemented dynamic workspace Views dropdown (backend-backed) with navigation updates (
/views→/views/all-issues,/views/:viewId). - Added new workspace views UI controls (filters/display/layout, create view modal, ellipsis menu) and label creation from the work item modal.
Reviewed changes
Copilot reviewed 15 out of 17 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/types/workspaceViewFilters.ts | Defines workspace view filter types + URL param parse/serialize helpers. |
| ui/src/types/workspaceViewDisplay.ts | Defines display/layout/sort types + URL param parse/serialize helpers. |
| ui/src/services/viewService.ts | Adds get and create endpoints for saved views. |
| ui/src/routes/index.tsx | Adds workspace views routing (views redirect + views/:viewId). |
| ui/src/pages/WorkspaceViewsPage.tsx | Applies URL-driven filtering/sorting and loads saved views to apply params. |
| ui/src/components/workspace-views/index.ts | Barrel exports for new workspace-views components. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Layout selector that persists to URL search params. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Filters dropdown that persists selections (and custom ranges) to URL. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Adds “open in new tab” + “copy link” menu for views. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Display properties + “show sub-work items” persisted to URL. |
| ui/src/components/workspace-views/DateRangeModal.tsx | Custom date-range picker modal used by filters dropdown. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Modal to create a saved view from current URL-configured state. |
| ui/src/components/layout/Sidebar.tsx | Updates Views nav link + active state for any /views/* path. |
| ui/src/components/layout/PageHeader.tsx | Replaces static views dropdown with backend-backed workspace views controls. |
| ui/src/components/CreateWorkItemModal.tsx | Adds “create label” action from the label dropdown with loading/error UI. |
| ui/package-lock.json | Adds Tailwind oxide wasm32-wasi transitive deps (build tooling). |
| package-lock.json | Adds a root lockfile (empty packages). |
Files not reviewed (1)
- ui/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Implements richer workspace “Views” functionality in the UI by introducing URL-driven filters/display options, dynamic view selection/creation backed by the API, and enhancing label management from the work item modal.
Changes:
- Adds workspace view filter/display type systems with URLSearchParams parsing/serialization.
- Updates routing + header/sidebar navigation to support
/views/:viewId(with/viewsredirect) and introduces new Views UI controls (layout, filters, display, create view, share menu). - Enhances
CreateWorkItemModalto allow creating labels directly from the label dropdown.
Reviewed changes
Copilot reviewed 15 out of 17 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/types/workspaceViewFilters.ts | Defines filter enums/types + URL param parse/serialize helpers. |
| ui/src/types/workspaceViewDisplay.ts | Defines display/layout/sort types + URL param parse/serialize helpers. |
| ui/src/services/viewService.ts | Adds get and create APIs for workspace views. |
| ui/src/routes/index.tsx | Redirects /views → /views/all-issues and adds /views/:viewId route. |
| ui/src/pages/WorkspaceViewsPage.tsx | Implements view loading, URL-applied filters/display, sorting, and new table/list layouts. |
| ui/src/components/workspace-views/index.ts | Exports new workspace views UI components. |
| ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx | Adds layout toggle that persists to URL. |
| ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx | Adds filter dropdown with members/projects/labels/date presets. |
| ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx | Adds display-properties + “show sub-work items” dropdown. |
| ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx | Adds share actions (open in new tab / copy link). |
| ui/src/components/workspace-views/DateRangeModal.tsx | Adds custom date range picker modal for filters. |
| ui/src/components/workspace-views/CreateViewModal.tsx | Adds modal to create/save a view from current URL settings. |
| ui/src/components/layout/Sidebar.tsx | Routes Views link to /views/all-issues and improves active-state matching. |
| ui/src/components/layout/PageHeader.tsx | Reworks Workspace Views header to use API-driven view dropdown and new controls. |
| ui/src/components/CreateWorkItemModal.tsx | Adds “Create label …” flow with loading/error handling. |
| ui/package-lock.json | Adds Tailwind oxide-wasm32-wasi related dependencies. |
| package-lock.json | Adds a new root lockfile. |
Files not reviewed (1)
- ui/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
This PR upgrades the UI “Workspace Views” experience by introducing Plane-style view navigation (default + custom views), URL-driven filters/display/layout controls, and in-modal label creation to streamline work item management.
Changes:
- Add URL-serializable workspace view filter + display models and new workspace-views UI controls (filters, display properties, layout selector, ellipsis menu, create-view modal).
- Update routing/header/sidebar to support
/views/:viewId(with/viewsredirecting toall-issues) and dynamically load custom views from the backend. - Enhance
CreateWorkItemModalto allow creating a new label from the label dropdown.
Reviewed changes
Copilot reviewed 15 out of 17 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/types/workspaceViewFilters.ts | New filter enums/types + (de)serialization to/from URL search params. |
| ui/src/types/workspaceViewDisplay.ts | New display/layout/sort model + URL (de)serialization. |
| ui/src/services/viewService.ts | Add get + create APIs and request typing for views. |
| ui/src/routes/index.tsx | Redirect /views → all-issues; add /views/:viewId route. |
| ui/src/pages/WorkspaceViewsPage.tsx | Apply saved view settings into URL; filter/sort/render issues based on search params. |
| ui/src/components/workspace-views/* | New header controls (filters/display/layout/ellipsis) + date range + create view modal. |
| ui/src/components/layout/Sidebar.tsx | Sidebar “Views” points to /views/all-issues and improves active highlighting. |
| ui/src/components/layout/PageHeader.tsx | Dynamic views dropdown + new controls wired into header for workspace views routes. |
| ui/src/components/CreateWorkItemModal.tsx | Add create-label flow from label dropdown with loading/error UI. |
| ui/package-lock.json | Adds Tailwind oxide wasm32-wasi related dependencies. |
| package-lock.json | Adds a new root lockfile. |
Files not reviewed (1)
- ui/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
martian56
left a comment
There was a problem hiding this comment.
UI has irrelevant elements on Views page, +Table should be horizontally scrollable starting from "Priority" column
Description
This pull request introduces several improvements to the workspace "Views" feature in the UI, including a more robust and dynamic views dropdown, enhanced navigation, and a more consistent user experience. The changes also add support for creating labels directly from the work item modal. Below are the most important updates:
Workspace Views Improvements:
viewService, supports searching, and uses improved navigation logic. The default views have been updated, and the dropdown UI is more consistent and accessible. [1] [2] [3] [4]/views/all-issuesby default, and active state logic is improved for better highlighting when any view is selected./viewspath.Label Creation Enhancement:
CreateWorkItemModal. The UI provides feedback for loading and error states, and the new label is added to the selection upon creation. [1] [2] [3] [4]Dependency Updates:
@tailwindcss/oxide-wasm32-wasiand its sub-dependencies are added inpackage-lock.jsonto support build tooling.These changes collectively make workspace views more dynamic, user-friendly, and visually consistent, while also improving the label management experience.
Type of Change
Screenshots and Media (if applicable)
Test Scenarios
References