-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: date range picker on cycles and modules list #6676
Conversation
WalkthroughThe changes update various components to improve date handling by replacing the single range selector with separate date dropdowns. New icons from Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant DateDropdown
participant Controller
participant handleDateChange
participant FormState
User->>DateDropdown: Select start/end date
DateDropdown->>Controller: Trigger onChange event
Controller->>handleDateChange: Call with payload { start_date, end_date }
handleDateChange-->>Controller: Return validation result
Controller->>FormState: Update form state if valid
sequenceDiagram
participant User
participant DateDropdown
participant ModuleComponent
participant handleDateChange
User->>DateDropdown: Select start/target date
DateDropdown->>ModuleComponent: Trigger onChange event
ModuleComponent->>handleDateChange: Call with payload { start_date/target_date }
handleDateChange-->>ModuleComponent: Return validation status
ModuleComponent->>User: Reflect updated module details
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
web/core/components/modules/analytics-sidebar/root.tsx (1)
427-427
: Remove console.log statement.There's an unnecessary console.log statement that should be removed before merging.
- console.log(val);
web/core/components/cycles/list/cycle-list-item-action.tsx (2)
300-334
: Properly implemented end date input with min date constraintThe end date dropdown correctly applies minimum date validation based on the start date, preventing users from selecting invalid date ranges. The UI is consistent with the start date dropdown and provides appropriate feedback.
Minor inconsistency: The start date uses
value ?? null
(line 268) while the end date usesgetDate(value) ?? null
(line 307). This difference in value handling might lead to unexpected behavior.- value={getDate(value) ?? null} + value={value ?? null}
261-337
: Potential refactoring opportunity for date inputsWhile the implementation is functionally correct, there's some code duplication between the start and end date components that could be refactored into a shared component.
Consider creating a reusable date component that accepts parameters for:
- Field name (start_date/end_date)
- Placeholder text
- Icon component
- Min/max date constraints
- Other specific behavior
This would reduce code duplication and make future modifications easier to maintain.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
web/core/components/cycles/analytics-sidebar/sidebar-header.tsx
(5 hunks)web/core/components/cycles/list/cycle-list-item-action.tsx
(6 hunks)web/core/components/modules/analytics-sidebar/root.tsx
(5 hunks)web/core/components/modules/module-card-item.tsx
(5 hunks)web/core/components/modules/module-list-item-action.tsx
(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: Analyze (javascript)
- GitHub Check: Analyze (python)
🔇 Additional comments (17)
web/core/components/modules/module-card-item.tsx (3)
7-7
: Added appropriate icons for new date pickers.The addition of
CalendarCheck2
andCalendarClock
icons provides clear visual distinction between start and due date pickers, enhancing usability.
30-30
: Good replacement of DateRangeDropdown with DateDropdown.Switching from a single range picker to individual date pickers aligns well with the PR objective of improving the date selection UI.
239-272
: Well-implemented separate date pickers for start and target dates.The implementation of separate date pickers provides a clearer interface for users to select individual dates. The code includes:
- Proper validation with
maxDate
andminDate
to ensure logical date sequencing- Consistent styling and behavior between both pickers
- Appropriate icons to distinguish between start and due dates
- Tooltip support for better usability
- Correct handling of disabled states
web/core/components/modules/module-list-item-action.tsx (2)
7-7
: Added appropriate icons for date pickers.The addition of
CalendarCheck2
andCalendarClock
icons provides clear visual distinction between start and due date inputs.
141-172
: Well-implemented separate date pickers with appropriate validation.The replacement of the date range dropdown with two separate date pickers is well executed with:
- Proper date constraints (start date can't exceed target date and vice versa)
- Consistent styling and behavior
- Clear placeholders with proper translation
- Appropriate tooltips for improved usability
This change aligns with the PR objective of enhancing the date selection interface.
web/core/components/cycles/analytics-sidebar/sidebar-header.tsx (4)
7-15
: Icons added for improved date picker UI.The addition of specialized calendar icons helps distinguish between different date types in the UI.
66-66
: Enhanced form handling with getValues.Adding
getValues
to the useForm hook's destructured return improves form capabilities by allowing access to current form values without triggering re-renders.
157-183
: Improved date change handler.The refactored
handleDateChange
function now accepts a single payload object containing optional date properties, which simplifies the API and improves maintainability. The function also now returns the validation result, allowing consumers to react accordingly.
291-363
: Replaced date range with separate date pickers and enhanced validation.The implementation of separate date pickers with form controllers is well-executed. Each picker includes appropriate:
- Validation for date range logic
- Consistent styling
- Error handling
- Proper handling of disabled states
This approach aligns with the PR objective and improves the overall user experience.
web/core/components/modules/analytics-sidebar/root.tsx (4)
9-9
: Added CalendarCheck2 icon for date dropdown.The icon addition enhances visual distinction between different date types.
108-108
: Enhanced form capabilities with getValues.Adding
getValues
to the useForm hook improves access to current form values without triggering re-renders.
198-205
: Simplified date change handler.The refactored function now accepts a more flexible payload object instead of separate parameters, improving maintainability.
412-473
: Improved date input UI with separate components.The replacement of a single date range picker with two separate date inputs is well-implemented with:
- Clear section headers ("Start date" and "Due date")
- Consistent styling and behavior
- Proper validation for date sequencing
- Appropriate icons for visual distinction
This change aligns with the PR objective of improving date selection UI.
web/core/components/cycles/list/cycle-list-item-action.tsx (4)
7-7
: Updated imports to align with new date picker approachThe change from a likely
DateRangeDropdown
to separateDateDropdown
components with specialized calendar icons (CalendarCheck2
andCalendarClock
) aligns well with the PR objective of replacing the date range picker with individual date controls.Also applies to: 26-26
79-79
: Good addition ofgetValues
to useForm hookAdding
getValues
is appropriate here as it allows for efficiently accessing form values without relying on the more resource-intensivewatch
method, which is especially important when dealing with date dependencies.
172-198
: Improved date handling function with better return valueThe refactoring of
handleDateChange
to accept a single payload object makes the function more flexible and maintainable. Adding a return value to indicate validation success is an important improvement that allows the UI components to respond accordingly.
261-296
: Enhanced start date input with better validation and UXThe implementation of a dedicated start date dropdown with clear validation rules and proper UI feedback (icons, tooltips, placeholders) improves user experience. The conditional logic to set both dates when only one is selected helps maintain data consistency.
One small observation: If a user selects only a start date, the end date is automatically set to the same value. Please verify this is the intended behavior rather than keeping the end date empty or setting it to a default offset (e.g., start date + 1 week).
* fix: issue activity for project id validation (#6668) * fix: work item attachment count mutation (#6670) * updated the action to modify the release build assets (#6669) * feat: russian translation (#6666) * chore: ru translation updated (#6672) * fix: state drop down refactor * fix: intake work item creation refactor * fix: cleanup for deprecated functions * fix: date range picker on cycles and modules list (#6676) * fix: Handled workspace switcher closing on click * fix: replaced date range picker with date picker at some places * chore: add common translation keys (#6688) * chore: add missing translation keys * chore: add russian translation keys * fix: issue activity task (#6689) * changed github workflow action ubuntu version to `ubuntu-22.04` (#6683) * chore: update russian translation (#6682) * chore: update russian translation * chore: rename issues to work items in russian translation * [PE-275] chore: editor line spacing variables (#6678) * chore: variable editor line spacing * chore: variable list spacing --------- Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> * [WEB-3475] fix: cycle dates dropdown (#6690) * fix: Handled workspace switcher closing on click * fix: Cycle date picker * fix: Made onSelect optional in range range component * fix: module date picker (#6691) * fix: Handled workspace switcher closing on click * fix: reverted module date picker changes * chore: extended sidebar improvement (#6693) * feat: italian translations (#6692) * Create translations.json - ITALIAN translation (#6667) * chore: italian translation updated * feat: italian translation added * fix: module end date translation --------- Co-authored-by: Nicolas Bossi <nicolasbossi@gmail.com> Co-authored-by: gakshita <akshitagoyal1516@gmail.com> * fix: attachment item created by (#6695) * fix: module flicker issue on property updation (#6699) * [WEB-3477] fix: mutation issue on moving work items for a manually ended cycle (#6696) * fix: package version update * fix: esbuild version fix * fix: package license repliation * [WEB-3488] improvement: assignee validation for work item creation (#6701) * fix: work item assignee update validation (#6704) --------- Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Co-authored-by: Manish Gupta <59428681+mguptahub@users.noreply.github.com> Co-authored-by: Nikita Mitasov <32384814+ch4og@users.noreply.github.com> Co-authored-by: Akshita Goyal <36129505+gakshita@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Co-authored-by: Akshat Jain <akshatjain9782@gmail.com> Co-authored-by: Lakhan Baheti <94619783+1akhanBaheti@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> Co-authored-by: Nicolas Bossi <nicolasbossi@gmail.com> Co-authored-by: gakshita <akshitagoyal1516@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Description
This PR replaces the date range picker with a day picker for cycles and module layouts and details sidebar
Summary by CodeRabbit
New Features
Refactor
UI Improvements