-
-
Notifications
You must be signed in to change notification settings - Fork 33
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
Sort rounds in project page #4813
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
WalkthroughThe changes in this pull request modify the sorting logic of the Changes
Possibly related PRs
Poem
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
🧹 Outside diff range and nitpick comments (3)
src/components/views/project/projectDonations/QfRoundSelector.tsx (3)
40-46
: Improved sorting logic looks good!The updated sorting logic correctly prioritizes active rounds and then sorts by
beginDate
in descending order. This aligns well with the PR objective.Consider a minor optimization:
sortedRounds = projectData?.qfRounds?.sort((a: IQFRound, b: IQFRound) => { const activeFirstCompare = Number(b.isActive) - Number(a.isActive); if (activeFirstCompare === 0) { - return new Date(b.beginDate) > new Date(a.beginDate) ? 1 : -1; + return new Date(b.beginDate).getTime() - new Date(a.beginDate).getTime(); } return activeFirstCompare; }) || [];This change avoids creating unnecessary
Date
objects and usesgetTime()
for a more efficient comparison.
Line range hint
114-118
: Improved rendering logic for "Recurring Donations" tabThe simplified condition for rendering the "Recurring Donations" label is correct and more intuitive.
For consistency with the QF round tabs, consider updating the rendering logic for both "All Donations" and "Recurring Donations" tabs:
<SwiperSlide style={{ width: 'auto' }}> <TabItem $alignItems='center' gap='4px' onClick={() => { setIsRecurringSelected(false); setSelectedQF(null); }} $isSelected={ selectedQF === null && isRecurringSelected === false } > - {selectedQF === null && - isRecurringSelected === false ? ( + {selectedQF === null && !isRecurringSelected ? ( <B> {formatMessage({ id: 'label.all_donations' })} </B> ) : ( <P> {formatMessage({ id: 'label.all_donations' })} </P> )} </TabItem> </SwiperSlide> <SwiperSlide style={{ width: 'auto' }}> <TabItem $alignItems='center' gap='4px' onClick={() => { setSelectedQF(null); setIsRecurringSelected(true); }} $isSelected={isRecurringSelected === true} > - {(projectDonationSwiperState.selectedQF === null) === - null ? ( + {isRecurringSelected ? ( <B>Recurring Donations</B> ) : ( <P>Recurring Donations</P> )} </TabItem> </SwiperSlide>This change makes the rendering logic consistent across all tabs and simplifies the conditions.
Issue Detected: Unintended Condition
projectDonationSwiperState.selectedQF === null
The condition
projectDonationSwiperState.selectedQF === null
is still present in theQfRoundSelector.tsx
component. This may lead to inconsistent behavior and should be reviewed to ensure all outdated conditions are properly handled.
- File: src/components/views/project/projectDonations/QfRoundSelector.tsx
- Condition:
projectDonationSwiperState.selectedQF === null
🔗 Analysis chain
Line range hint
1-190
: Overall, the changes look good and align with the PR objectiveThe sorting logic for rounds has been improved, and the rendering of tabs has been simplified. These changes should effectively sort the rounds on the project page as intended.
To ensure the changes work as expected, please run the following verification steps:
These tests will help ensure that the sorting logic is applied correctly, the
isRecurringSelected
state is used consistently, and there are no remnants of the old rendering condition.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the changes in QfRoundSelector component # Test 1: Check if the sorting logic is used correctly echo "Test 1: Verifying sorting logic usage" rg --type typescript "projectData\?\.qfRounds\?\.sort\(" src/components/views/project/projectDonations/QfRoundSelector.tsx # Test 2: Check if isRecurringSelected is used consistently echo "Test 2: Verifying isRecurringSelected usage" rg --type typescript "isRecurringSelected" src/components/views/project/projectDonations/QfRoundSelector.tsx # Test 3: Look for any remaining instances of the old condition echo "Test 3: Checking for old condition remnants" rg --type typescript "projectDonationSwiperState\.selectedQF === null" src/components/views/project/projectDonations/QfRoundSelector.tsxLength of output: 756
Script:
#!/bin/bash # Description: Re-verify the changes in QfRoundSelector component with corrected rg commands # Test 1: Check if the sorting logic is used correctly echo "Test 1: Verifying sorting logic usage" rg "projectData\?\.qfRounds\?\.sort\(" --type-add 'tsx:*.tsx' --type tsx src/components/views/project/projectDonations/QfRoundSelector.tsx # Test 2: Check if isRecurringSelected is used consistently echo "Test 2: Verifying isRecurringSelected usage" rg "isRecurringSelected" --type-add 'tsx:*.tsx' --type tsx src/components/views/project/projectDonations/QfRoundSelector.tsx # Test 3: Look for any remaining instances of the old condition echo "Test 3: Checking for old condition remnants" rg "projectDonationSwiperState\.selectedQF === null" --type-add 'tsx:*.tsx' --type tsx src/components/views/project/projectDonations/QfRoundSelector.tsxLength of output: 1137
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.
Nice job @HrithikSampson now we have rounds by date sorted ;)
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.
LGTM thanks!
relates to #4289
Summary by CodeRabbit