Skip to content

[FEAT] Implement modules page projects modules#35

Merged
nazarli-shabnam merged 29 commits intomainfrom
34-implement-modules-page-projects-modules
Mar 18, 2026
Merged

[FEAT] Implement modules page projects modules#35
nazarli-shabnam merged 29 commits intomainfrom
34-implement-modules-page-projects-modules

Conversation

@nazarli-shabnam
Copy link
Member

@nazarli-shabnam nazarli-shabnam commented Mar 18, 2026

This pull request introduces two main types of changes: (1) backend and API updates to support a new optional lead_id field for modules, and (2) frontend improvements, including a new modal for adding existing work items to a module and a refactor of CSS variable usage for consistency and maintainability.

Backend/API changes:

  • Added support for an optional lead_id field when updating a module, including validation and propagation through the handler and service layers. (api/internal/handler/module.go, api/internal/service/module.go) [1] [2] [3]
  • Updated the ModuleApiResponse type to include the new optional lead_id field. (ui/src/api/types.ts)

Frontend/UI changes:

  • Added a new AddExistingWorkItemModal React component, allowing users to search for and add multiple existing work items (issues) to a module with batch processing and improved UX. (ui/src/components/AddExistingWorkItemModal.tsx)
  • Refactored several components (CoverImageModal, CreateProjectModal) to use a more consistent CSS variable syntax (e.g., bg-(--bg-backdrop) instead of bg-[var(--bg-backdrop)]), improving style maintainability and readability. (ui/src/components/CoverImageModal.tsx, ui/src/components/CreateProjectModal.tsx) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

Closes #31

Copy link

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 expands the UI’s “Modules” functionality (service layer + routing + new module-related UI utilities/components), introduces shared filtering/favorites state for modules, and updates a large set of UI components to use Tailwind v4 CSS-variable utility syntax. It also adds local date-only parsing/formatting utilities to avoid UTC off-by-one issues in date pickers.

Changes:

  • Add module CRUD/service helpers (get/create/update) plus module issue ID listing to support module detail/edit flows.
  • Introduce module-focused UI building blocks: module filter context/panel, module favorites hook, module update modal, and “add existing work items” modal.
  • Refactor many UI components to a Tailwind v4-friendly CSS variable utility syntax and update the date range modal to use date-only local parsing.

Reviewed changes

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

Show a summary per file
File Description
ui/src/services/moduleService.ts Adds module get/create/update and listIssueIds helpers plus a create/update payload type.
ui/src/routes/ProtectedRoute.tsx Updates loading UI classnames; file now includes BOM.
ui/src/routes/InstanceAdminProtectedRoute.tsx Updates loading UI classnames; file now includes BOM.
ui/src/routes/index.tsx Adds lazy route for ModuleDetailPage under project routes and updates fallback styles.
ui/src/pages/ViewsPage.tsx Tailwind var-syntax refactor for view list loading/empty states.
ui/src/pages/setup/InstanceSetupWelcomePage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/setup/InstanceSetupConfigurePage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/setup/InstanceSetupCompletePage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/ProjectsListPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/ProjectHomePage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/PagesPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/NotificationsPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/LoginPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/IssueListPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/InviteSignUpPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/InviteAcceptPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminImagePage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/instance-admin/InstanceAdminAIPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/DraftsPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/CyclesPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/BoardPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/ArchivesPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/AnalyticsWorkItemsPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/pages/AnalyticsOverviewPage.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/lib/slug.ts Adds a shared slugify() helper.
ui/src/lib/dateOnly.ts Adds date-only local parsing/formatting utilities to avoid UTC date shifts.
ui/src/hooks/useModuleFavorites.ts Adds localStorage-backed module favorites hook keyed by workspace/project.
ui/src/contexts/ModulesFilterContext.tsx Adds module filter state context/provider + hooks.
ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/workspace-views/ModuleFiltersPanel.tsx New module-specific filters UI that integrates with ModulesFilterContext.
ui/src/components/workspace-views/index.ts Exports the new ModuleFiltersPanel.
ui/src/components/workspace-views/DateRangeModal.tsx Switches date handling to date-only local parse/format utils + Tailwind var-syntax refactor.
ui/src/components/workspace-views/CreateViewModal.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/work-item/SelectParentModal.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/work-item/Dropdown.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/work-item/DatePickerTrigger.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/work-item/CommentEditor.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/UploadImageModal.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/UpdateModuleModal.tsx Adds a modal for updating module fields (name/description/status/dates) using module service.
ui/src/components/ui/Skeleton.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ui/Modal.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ui/Input.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ui/Card.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ui/Button.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ui/Badge.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ui/Avatar.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/SetupGate.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/RootRedirect.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ProjectNetworkSelect.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ProjectLeadSelect.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/ProjectIconModal.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/layout/InstanceAdminLayout.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/layout/Header.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/layout/AppShell.tsx Wraps app content with ModulesFilterProvider and refactors Tailwind var-syntax usage.
ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/CreateProjectModal.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/CoverImageModal.tsx Tailwind var-syntax refactor; file now includes BOM.
ui/src/components/AddExistingWorkItemModal.tsx New modal to add existing work items to a module via per-issue API calls.
ui/src/api/types.ts Extends ModuleApiResponse with optional lead_id.

💡 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 martian56 changed the title 34 implement modules page projects modules [FEAT] Implement modules page projects modules Mar 18, 2026
Copy link

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 expands the UI’s “Modules” capabilities by adding module detail routing, richer module CRUD/service helpers, and new module-focused filtering/favorites UX; it also introduces date-only utilities and updates many components/pages to Tailwind v4 CSS-variable utility syntax.

Changes:

  • Add module API helpers (get/create/update/listIssueIds) and introduce module lead/date payload typing.
  • Add module detail route and module filter/favorites infrastructure (context, hook, filters panel) plus new module-related modals.
  • Introduce date-only parsing/formatting helpers and apply them to date-range UI.

Reviewed changes

Copilot reviewed 82 out of 83 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
ui/src/services/moduleService.ts Adds module get/create/update helpers and listIssueIds; introduces CreateModulePayload typing.
ui/src/routes/ProtectedRoute.tsx Updates loading-state styling (Tailwind v4 CSS-var syntax) and modifies file header.
ui/src/routes/InstanceAdminProtectedRoute.tsx Updates loading-state styling (Tailwind v4 CSS-var syntax) and modifies file header.
ui/src/routes/index.tsx Adds lazy-loaded ModuleDetailPage and a module detail route.
ui/src/pages/ViewsPage.tsx Tailwind v4 CSS-var utility migration and minor JSX refactors.
ui/src/pages/setup/InstanceSetupWelcomePage.tsx Tailwind v4 CSS-var utility migration.
ui/src/pages/setup/InstanceSetupConfigurePage.tsx Tailwind v4 CSS-var utility migration across setup form UI.
ui/src/pages/setup/InstanceSetupCompletePage.tsx Tailwind v4 CSS-var utility migration for completion UI.
ui/src/pages/ProjectsListPage.tsx Tailwind v4 CSS-var utility migration and minor JSX refactors.
ui/src/pages/ProjectHomePage.tsx Tailwind v4 CSS-var utility migration and minor JSX refactors.
ui/src/pages/PagesPage.tsx Tailwind v4 CSS-var utility migration across pages list UI.
ui/src/pages/NotificationsPage.tsx Tailwind v4 CSS-var utility migration across notifications UI.
ui/src/pages/LoginPage.tsx Tailwind v4 CSS-var utility migration for login layout.
ui/src/pages/IssueListPage.tsx Tailwind v4 CSS-var utility migration across issue list UI.
ui/src/pages/InviteSignUpPage.tsx Tailwind v4 CSS-var utility migration across invite signup UI.
ui/src/pages/InviteAcceptPage.tsx Tailwind v4 CSS-var utility migration across invite accept UI.
ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx Tailwind v4 CSS-var utility migration for instance admin workspace page.
ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx Tailwind v4 CSS-var utility migration for instance admin login.
ui/src/pages/instance-admin/InstanceAdminImagePage.tsx Tailwind v4 CSS-var utility migration for image settings.
ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx Tailwind v4 CSS-var utility migration for general settings.
ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx Tailwind v4 CSS-var utility migration for email settings.
ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx Tailwind v4 CSS-var utility migration for create workspace UI.
ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx Tailwind v4 CSS-var utility migration for auth settings.
ui/src/pages/instance-admin/InstanceAdminAIPage.tsx Tailwind v4 CSS-var utility migration for AI settings.
ui/src/pages/DraftsPage.tsx Tailwind v4 CSS-var utility migration and minor JSX refactor.
ui/src/pages/CyclesPage.tsx Tailwind v4 CSS-var utility migration across cycles UI.
ui/src/pages/BoardPage.tsx Tailwind v4 CSS-var utility migration across board UI.
ui/src/pages/ArchivesPage.tsx Tailwind v4 CSS-var utility migration and minor JSX refactor.
ui/src/pages/AnalyticsWorkItemsPage.tsx Tailwind v4 CSS-var utility migration across analytics UI.
ui/src/pages/AnalyticsOverviewPage.tsx Tailwind v4 CSS-var utility migration across analytics UI.
ui/src/lib/slug.ts Adds slugify helper for consistent slug generation.
ui/src/lib/dateOnly.ts Adds date-only parse/format/display utilities (local-date safe).
ui/src/hooks/useModuleFavorites.ts Adds localStorage-backed module favorites hook scoped by workspace+project.
ui/src/contexts/ModulesFilterContext.tsx Adds modules filter state context/provider and related hooks.
ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx Tailwind v4 CSS-var utility migration.
ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx Tailwind v4 CSS-var utility migration.
ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx Tailwind v4 CSS-var utility migration for shared filters panel.
ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx Tailwind v4 CSS-var utility migration for dropdown panel styling.
ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx Tailwind v4 CSS-var utility migration for filter icon styling.
ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx Tailwind v4 CSS-var utility migration for ellipsis menu UI.
ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx Tailwind v4 CSS-var utility migration for display panel UI.
ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx Tailwind v4 CSS-var utility migration for display dropdown UI.
ui/src/components/workspace-views/ModuleFiltersPanel.tsx Adds a dedicated module filters panel (status/lead/members/date presets).
ui/src/components/workspace-views/index.ts Re-exports ModuleFiltersPanel.
ui/src/components/workspace-views/DateRangeModal.tsx Switches to date-only local parsing/formatting helpers; Tailwind v4 CSS-var migration.
ui/src/components/workspace-views/CreateViewModal.tsx Tailwind v4 CSS-var utility migration.
ui/src/components/work-item/SelectParentModal.tsx Tailwind v4 CSS-var utility migration.
ui/src/components/work-item/Dropdown.tsx Tailwind v4 CSS-var utility migration for dropdown styling.
ui/src/components/work-item/DatePickerTrigger.tsx Tailwind v4 CSS-var utility migration for trigger styling.
ui/src/components/work-item/CommentEditor.tsx Tailwind v4 CSS-var utility migration for editor UI.
ui/src/components/UploadImageModal.tsx Tailwind v4 CSS-var utility migration for upload modal UI.
ui/src/components/UpdateModuleModal.tsx Adds modal UI for updating module fields (name/desc/dates/status/lead).
ui/src/components/ui/Skeleton.tsx Tailwind v4 CSS-var utility migration for skeleton color.
ui/src/components/ui/Modal.tsx Tailwind v4 CSS-var utility migration for modal base styling.
ui/src/components/ui/Input.tsx Tailwind v4 CSS-var utility migration for input base styling and error styles.
ui/src/components/ui/Card.tsx Tailwind v4 CSS-var utility migration for card styling.
ui/src/components/ui/Button.tsx Tailwind v4 CSS-var utility migration for button variants/sizes.
ui/src/components/ui/Badge.tsx Tailwind v4 CSS-var utility migration for badge variants.
ui/src/components/ui/Avatar.tsx Tailwind v4 CSS-var utility migration for avatar styling.
ui/src/components/SetupGate.tsx Tailwind v4 CSS-var utility migration for loading fallback.
ui/src/components/RootRedirect.tsx Tailwind v4 CSS-var utility migration for loading and empty-state UI.
ui/src/components/ProjectNetworkSelect.tsx Tailwind v4 CSS-var utility migration for select styling.
ui/src/components/ProjectLeadSelect.tsx Tailwind v4 CSS-var utility migration for select styling.
ui/src/components/ProjectIconModal.tsx Tailwind v4 CSS-var utility migration for modal UI.
ui/src/components/layout/InstanceAdminLayout.tsx Tailwind v4 CSS-var utility migration across instance admin layout.
ui/src/components/layout/Header.tsx Tailwind v4 CSS-var utility migration across header layout.
ui/src/components/layout/AppShell.tsx Wraps app content in ModulesFilterProvider; Tailwind v4 CSS-var utility migration.
ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx Tailwind v4 CSS-var utility migration for setup hint UI.
ui/src/components/CreateProjectModal.tsx Tailwind v4 CSS-var utility migration for create project modal.
ui/src/components/CoverImageModal.tsx Tailwind v4 CSS-var utility migration for cover image modal.
ui/src/components/AddExistingWorkItemModal.tsx Adds modal to select existing work items and link them to a module.
ui/src/api/types.ts Extends ModuleApiResponse with optional lead_id.

💡 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.

Copy link

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 expands the UI’s Modules feature set (detail route, editing, filtering/favorites) and extends the backend Module update API to support setting/clearing a module lead, alongside a broad Tailwind v4 CSS-variable class migration across many UI components.

Changes:

  • Add module detail routing + module CRUD service methods, plus new modals for updating modules and adding existing work items.
  • Introduce module filter state/context and local “module favorites” storage.
  • Add date-only utilities (local parsing/formatting) and update DateRangeModal to avoid UTC off-by-one issues; backend update now supports lead_id.

Reviewed changes

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

Show a summary per file
File Description
ui/src/services/moduleService.ts Adds get/create/update/listIssueIds and a module payload type.
ui/src/routes/ProtectedRoute.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/routes/InstanceAdminProtectedRoute.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/routes/index.tsx Adds ModuleDetailPage lazy import + nested route; updates fallback styles.
ui/src/pages/ViewsPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/setup/InstanceSetupWelcomePage.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/pages/setup/InstanceSetupConfigurePage.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/pages/setup/InstanceSetupCompletePage.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/pages/ProjectsListPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/ProjectHomePage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/PagesPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/NotificationsPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/LoginPage.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/pages/IssueListPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/InviteSignUpPage.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/pages/InviteAcceptPage.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/pages/instance-admin/InstanceAdminImagePage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/instance-admin/InstanceAdminAIPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/DraftsPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/CyclesPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/BoardPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/ArchivesPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/AnalyticsWorkItemsPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/pages/AnalyticsOverviewPage.tsx Tailwind CSS-variable class migration; formatting simplification.
ui/src/lib/slug.ts New slugify() utility.
ui/src/lib/dateOnly.ts New date-only parsing/formatting helpers (local-date safe).
ui/src/hooks/useModuleFavorites.ts New hook for per-workspace/project module favorites in localStorage.
ui/src/contexts/ModulesFilterContext.tsx New context/provider + hooks for module filter state.
ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx Tailwind CSS-variable class migration.
ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/workspace-views/ModuleFiltersPanel.tsx New module-specific filters UI (status/lead/members/date presets).
ui/src/components/workspace-views/index.ts Exports the new ModuleFiltersPanel.
ui/src/components/workspace-views/DateRangeModal.tsx Switches date parsing/formatting to date-only local helpers; Tailwind migration.
ui/src/components/workspace-views/CreateViewModal.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/work-item/SelectParentModal.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/work-item/Dropdown.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/work-item/DatePickerTrigger.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/work-item/CommentEditor.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/UploadImageModal.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/UpdateModuleModal.tsx New modal for editing module fields incl. lead + date range.
ui/src/components/AddExistingWorkItemModal.tsx New modal to bulk-add existing issues to a module.
ui/src/components/ui/Skeleton.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ui/Modal.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ui/Input.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ui/Card.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ui/Button.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ui/Badge.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ui/Avatar.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/SetupGate.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/RootRedirect.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ProjectNetworkSelect.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ProjectLeadSelect.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/ProjectIconModal.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/layout/InstanceAdminLayout.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/layout/Header.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/layout/AppShell.tsx Wraps app in ModulesFilterProvider; Tailwind CSS-variable class migration.
ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/CreateProjectModal.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/components/CoverImageModal.tsx Tailwind CSS-variable class migration; file encoding change at import line.
ui/src/api/types.ts Adds optional lead_id to ModuleApiResponse.
api/internal/service/module.go Extends Module Update to optionally set/clear LeadID.
api/internal/handler/module.go Adds lead_id parsing to Update handler; passes a “lead set” flag to service.

💡 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.

Copy link

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 expands the “Modules” feature area (detail view, filtering, favorites, and editing), adds backend support for updating a module’s lead_id, and performs a broad Tailwind CSS variable-shorthand refactor across the UI.

Changes:

  • Add module detail routing + module CRUD helpers (get/create/update) and supporting UI components/modals.
  • Introduce modules filtering state (context + filters panel) and local “module favorites” hook.
  • Refactor many UI components to Tailwind v4 CSS-variable shorthand classes (e.g., text-(--var)).

Reviewed changes

Copilot reviewed 85 out of 86 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
ui/src/services/moduleService.ts Adds module get/create/update + listIssueIds client APIs.
ui/src/routes/ProtectedRoute.tsx Tailwind var-shorthand class refactor for loading state.
ui/src/routes/InstanceAdminProtectedRoute.tsx Tailwind var-shorthand class refactor for loading state.
ui/src/routes/index.tsx Adds lazy-loaded ModuleDetailPage and route modules/:moduleId; updates fallback styling.
ui/src/pages/WorkspaceHomePage.tsx Tailwind var-shorthand refactor across the page.
ui/src/pages/ViewsPage.tsx Tailwind var-shorthand refactor across the page.
ui/src/pages/setup/InstanceSetupWelcomePage.tsx Tailwind var-shorthand refactor.
ui/src/pages/setup/InstanceSetupConfigurePage.tsx Tailwind var-shorthand refactor.
ui/src/pages/setup/InstanceSetupCompletePage.tsx Tailwind var-shorthand refactor.
ui/src/pages/ProjectsListPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/ProjectHomePage.tsx Tailwind var-shorthand refactor.
ui/src/pages/PagesPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/NotificationsPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/LoginPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/IssueListPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/InviteSignUpPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/InviteAcceptPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminImagePage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/instance-admin/InstanceAdminAIPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/DraftsPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/CyclesPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/BoardPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/ArchivesPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/AnalyticsWorkItemsPage.tsx Tailwind var-shorthand refactor.
ui/src/pages/AnalyticsOverviewPage.tsx Tailwind var-shorthand refactor.
ui/src/lib/slug.ts Adds a shared slugify helper.
ui/src/lib/moduleStatuses.ts Adds module status constants used by module UI.
ui/src/lib/dateOnly.ts Adds local date-only parsing/formatting helpers.
ui/src/hooks/useModuleFavorites.ts Adds localStorage-backed module favorites hook.
ui/src/contexts/ModulesFilterContext.tsx Adds modules filter state context + provider/hooks.
ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx Tailwind var-shorthand refactor.
ui/src/components/workspace-views/ModuleFiltersPanel.tsx Adds new modules-specific filters UI hooked to ModulesFilterContext.
ui/src/components/workspace-views/index.ts Exports ModuleFiltersPanel.
ui/src/components/workspace-views/DateRangeModal.tsx Uses new date-only local parsing/formatting helpers + Tailwind refactor.
ui/src/components/workspace-views/CreateViewModal.tsx Tailwind var-shorthand refactor.
ui/src/components/work-item/SelectParentModal.tsx Tailwind var-shorthand refactor.
ui/src/components/work-item/Dropdown.tsx Tailwind var-shorthand refactor.
ui/src/components/work-item/DatePickerTrigger.tsx Tailwind var-shorthand refactor.
ui/src/components/work-item/CommentEditor.tsx Tailwind var-shorthand refactor.
ui/src/components/UploadImageModal.tsx Tailwind var-shorthand refactor.
ui/src/components/UpdateModuleModal.tsx Adds module update UI including lead selection + date/status dropdowns.
ui/src/components/ui/Skeleton.tsx Tailwind var-shorthand refactor.
ui/src/components/ui/Modal.tsx Tailwind var-shorthand refactor.
ui/src/components/ui/Input.tsx Tailwind var-shorthand refactor.
ui/src/components/ui/Card.tsx Tailwind var-shorthand refactor.
ui/src/components/ui/Button.tsx Tailwind var-shorthand refactor.
ui/src/components/ui/Badge.tsx Tailwind var-shorthand refactor.
ui/src/components/ui/Avatar.tsx Tailwind var-shorthand refactor.
ui/src/components/SetupGate.tsx Tailwind var-shorthand refactor.
ui/src/components/RootRedirect.tsx Tailwind var-shorthand refactor.
ui/src/components/ProjectNetworkSelect.tsx Tailwind var-shorthand refactor.
ui/src/components/ProjectLeadSelect.tsx Tailwind var-shorthand refactor.
ui/src/components/ProjectIconModal.tsx Tailwind var-shorthand refactor.
ui/src/components/layout/InstanceAdminLayout.tsx Tailwind var-shorthand refactor.
ui/src/components/layout/Header.tsx Tailwind var-shorthand refactor (incl. variable-driven height).
ui/src/components/layout/AppShell.tsx Wraps app in ModulesFilterProvider + Tailwind var-shorthand refactor.
ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx Tailwind var-shorthand refactor.
ui/src/components/CreateProjectModal.tsx Tailwind var-shorthand refactor.
ui/src/components/CoverImageModal.tsx Tailwind var-shorthand refactor.
ui/src/components/AddExistingWorkItemModal.tsx Adds modal to add existing work items to a module.
ui/src/api/types.ts Extends ModuleApiResponse with optional nullable lead_id.
api/internal/service/module.go Extends module update service to optionally set/clear lead_id.
api/internal/handler/module.go Accepts lead_id on module PATCH update and validates UUID when provided.

💡 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.

@nazarli-shabnam nazarli-shabnam requested a review from Copilot March 18, 2026 16:42
@nazarli-shabnam nazarli-shabnam marked this pull request as ready for review March 18, 2026 16:53
Copy link

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 expands the Modules UI by adding module detail navigation and supporting module CRUD interactions, while also modernizing Tailwind CSS variable usage across multiple pages/components.

Changes:

  • Add module detail routing and supporting module API service methods (get/create/update/listIssueIds).
  • Introduce/update module filtering and module editing UI (status/dates/lead), plus supporting shared date-only helpers.
  • Refactor multiple UI routes/pages to Tailwind v4 CSS-variable shorthand classes (e.g., text-(--...)).

Reviewed changes

Copilot reviewed 85 out of 86 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
ui/src/services/moduleService.ts Adds module get/create/update and module issue-id listing helpers.
ui/src/routes/index.tsx Adds lazy-loaded ModuleDetailPage and a modules/:moduleId route.
ui/src/routes/ProtectedRoute.tsx Converts loading-state text color class to Tailwind CSS-variable shorthand.
ui/src/routes/InstanceAdminProtectedRoute.tsx Converts loading-state text color class to Tailwind CSS-variable shorthand.
ui/src/pages/WorkspaceHomePage.tsx Broad conversion to Tailwind CSS-variable shorthand across the page.
ui/src/pages/ViewsPage.tsx Converts loading/not-found and other text/UI classes to Tailwind CSS-variable shorthand.
ui/src/pages/ModulesPage.tsx Implements module filtering/sorting/date filtering logic and module list rendering.
ui/src/components/UpdateModuleModal.tsx Adds/updates module editing UI including date-range and lead selection.

💡 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.

Copy link

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 expands the UI + API surface around “Modules” (detail route, filters, favorites, update flows) and standardizes UI styling to Tailwind v4 CSS-variable shorthand classes, while adding backend support for updating a module’s lead_id.

Changes:

  • Add module service helpers + UI components (module detail route, filter context/panel, favorites hook, update & add-existing-work-item modals).
  • Add date-only parsing/formatting utilities and module status constants to support module date/filter UX.
  • Refactor many UI components/pages to use Tailwind CSS-variable shorthand utilities (e.g. text-(--token)).

Reviewed changes

Copilot reviewed 85 out of 86 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
ui/src/services/moduleService.ts Adds module get/create/update and module issue-id listing helpers.
ui/src/routes/ProtectedRoute.tsx Updates Tailwind token class syntax for loading state.
ui/src/routes/InstanceAdminProtectedRoute.tsx Updates Tailwind token class syntax for loading state.
ui/src/routes/index.tsx Adds lazy-loaded ModuleDetailPage route and updates fallback styling tokens.
ui/src/pages/WorkspaceHomePage.tsx Tailwind token shorthand refactor across workspace home UI.
ui/src/pages/ViewsPage.tsx Tailwind token shorthand refactor for views list UI.
ui/src/pages/setup/InstanceSetupWelcomePage.tsx Tailwind token shorthand refactor for setup welcome UI.
ui/src/pages/setup/InstanceSetupConfigurePage.tsx Tailwind token shorthand refactor for setup configure UI.
ui/src/pages/setup/InstanceSetupCompletePage.tsx Tailwind token shorthand refactor for setup completion UI.
ui/src/pages/ProjectsListPage.tsx Tailwind token shorthand refactor for projects list UI.
ui/src/pages/ProjectHomePage.tsx Tailwind token shorthand refactor for project home UI.
ui/src/pages/PagesPage.tsx Tailwind token shorthand refactor for pages UI.
ui/src/pages/NotificationsPage.tsx Tailwind token shorthand refactor for notifications UI.
ui/src/pages/LoginPage.tsx Tailwind token shorthand refactor for login UI.
ui/src/pages/IssueListPage.tsx Tailwind token shorthand refactor for issue list UI.
ui/src/pages/InviteSignUpPage.tsx Tailwind token shorthand refactor for invite signup UI.
ui/src/pages/InviteAcceptPage.tsx Tailwind token shorthand refactor for invite accept UI.
ui/src/pages/instance-admin/InstanceAdminWorkspacePage.tsx Tailwind token shorthand refactor for instance admin workspaces UI.
ui/src/pages/instance-admin/InstanceAdminLoginPage.tsx Tailwind token shorthand refactor for instance admin login UI.
ui/src/pages/instance-admin/InstanceAdminImagePage.tsx Tailwind token shorthand refactor for instance admin image UI.
ui/src/pages/instance-admin/InstanceAdminGeneralPage.tsx Tailwind token shorthand refactor for instance admin general UI.
ui/src/pages/instance-admin/InstanceAdminEmailPage.tsx Tailwind token shorthand refactor for instance admin email UI.
ui/src/pages/instance-admin/InstanceAdminCreateWorkspacePage.tsx Tailwind token shorthand refactor for instance admin create-workspace UI.
ui/src/pages/instance-admin/InstanceAdminAuthenticationPage.tsx Tailwind token shorthand refactor for instance admin auth UI.
ui/src/pages/instance-admin/InstanceAdminAIPage.tsx Tailwind token shorthand refactor for instance admin AI UI.
ui/src/pages/DraftsPage.tsx Tailwind token shorthand refactor for drafts placeholder page.
ui/src/pages/CyclesPage.tsx Tailwind token shorthand refactor for cycles UI.
ui/src/pages/BoardPage.tsx Tailwind token shorthand refactor for board UI.
ui/src/pages/ArchivesPage.tsx Tailwind token shorthand refactor for archives placeholder page.
ui/src/pages/AnalyticsWorkItemsPage.tsx Tailwind token shorthand refactor for analytics work-items UI.
ui/src/pages/AnalyticsOverviewPage.tsx Tailwind token shorthand refactor for analytics overview UI.
ui/src/lib/slug.ts Adds shared slugify helper.
ui/src/lib/moduleStatuses.ts Adds MODULE_STATUSES constant list for module status UI.
ui/src/lib/dateOnly.ts Adds local date-only parse/format helpers to avoid UTC off-by-one.
ui/src/hooks/useModuleFavorites.ts Adds localStorage-backed module favorites hook.
ui/src/contexts/ModulesFilterContext.tsx Adds modules filter state context/provider + hooks.
ui/src/components/workspace-views/WorkspaceViewsLayoutSelector.tsx Tailwind token shorthand refactor for layout selector.
ui/src/components/workspace-views/WorkspaceViewsFiltersShared.tsx Tailwind token shorthand refactor for shared filters UI.
ui/src/components/workspace-views/WorkspaceViewsFiltersPanel.tsx Tailwind token shorthand refactor for filters panel.
ui/src/components/workspace-views/WorkspaceViewsFiltersDropdown.tsx Tailwind token shorthand refactor for dropdown panel styling.
ui/src/components/workspace-views/WorkspaceViewsFiltersData.tsx Tailwind token shorthand refactor for filter icons/styles.
ui/src/components/workspace-views/WorkspaceViewsEllipsisMenu.tsx Tailwind token shorthand refactor for ellipsis menu panel.
ui/src/components/workspace-views/WorkspaceViewsDisplayPanel.tsx Tailwind token shorthand refactor for display panel.
ui/src/components/workspace-views/WorkspaceViewsDisplayDropdown.tsx Tailwind token shorthand refactor for display dropdown panel.
ui/src/components/workspace-views/ModuleFiltersPanel.tsx Adds module-specific filters UI integrated with ModulesFilterContext.
ui/src/components/workspace-views/index.ts Exports newly added ModuleFiltersPanel.
ui/src/components/workspace-views/DateRangeModal.tsx Uses local date-only helpers for parsing/formatting in date range UI.
ui/src/components/workspace-views/CreateViewModal.tsx Tailwind token shorthand refactor for modal styles/errors.
ui/src/components/work-item/SelectParentModal.tsx Tailwind token shorthand refactor for modal UI.
ui/src/components/work-item/Dropdown.tsx Tailwind token shorthand refactor for dropdown UI.
ui/src/components/work-item/DatePickerTrigger.tsx Tailwind token shorthand refactor for date trigger UI.
ui/src/components/work-item/CommentEditor.tsx Tailwind token shorthand refactor for editor UI.
ui/src/components/UploadImageModal.tsx Tailwind token shorthand refactor for upload modal UI.
ui/src/components/UpdateModuleModal.tsx Adds module update modal (dates/status/lead) using moduleService + date modal.
ui/src/components/ui/Skeleton.tsx Tailwind token shorthand refactor for skeleton background token.
ui/src/components/ui/Modal.tsx Tailwind token shorthand refactor for modal container tokens.
ui/src/components/ui/Input.tsx Tailwind token shorthand refactor for input tokens + error styling.
ui/src/components/ui/Card.tsx Tailwind token shorthand refactor for card tokens (border/shadow).
ui/src/components/ui/Button.tsx Tailwind token shorthand refactor for button variant/size tokens.
ui/src/components/ui/Badge.tsx Tailwind token shorthand refactor for badge variants.
ui/src/components/ui/Avatar.tsx Tailwind token shorthand refactor for avatar default styling.
ui/src/components/SetupGate.tsx Tailwind token shorthand refactor for loading fallback.
ui/src/components/RootRedirect.tsx Tailwind token shorthand refactor for fallback + empty state text.
ui/src/components/ProjectNetworkSelect.tsx Tailwind token shorthand refactor for select styling.
ui/src/components/ProjectLeadSelect.tsx Tailwind token shorthand refactor for select styling.
ui/src/components/ProjectIconModal.tsx Tailwind token shorthand refactor for icon modal styling.
ui/src/components/layout/InstanceAdminLayout.tsx Tailwind token shorthand refactor for instance admin layout styling.
ui/src/components/layout/Header.tsx Tailwind token shorthand refactor (including CSS-var height token utility).
ui/src/components/layout/AppShell.tsx Wraps app in ModulesFilterProvider and refactors shell token utilities.
ui/src/components/instance-admin/CreateWorkspaceSetupHint.tsx Tailwind token shorthand refactor for setup hint card.
ui/src/components/CreateProjectModal.tsx Tailwind token shorthand refactor for create-project modal UI.
ui/src/components/CoverImageModal.tsx Tailwind token shorthand refactor for cover image modal UI.
ui/src/components/AddExistingWorkItemModal.tsx Adds modal to add existing work items to a module via moduleService.
ui/src/api/types.ts Extends ModuleApiResponse to include optional lead_id.
api/internal/service/module.go Extends ModuleService.Update to optionally set/clear LeadID.
api/internal/handler/module.go Parses/validates lead_id in module update handler and passes set intent to service.

💡 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.

Copy link

@Rafetikus Rafetikus left a comment

Choose a reason for hiding this comment

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

Good job!

Copy link
Member

@martian56 martian56 left a comment

Choose a reason for hiding this comment

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

Nice job!

@nazarli-shabnam nazarli-shabnam merged commit bc8e267 into main Mar 18, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request UI UX

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Modules page (Projects > Modules)

4 participants