chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

chore: minor improvments - #591

Merged
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation
Dec 11, 2025
Merged

chore: minor improvments#591
coodos merged 1 commit into
mainfrom
chore/minor-ux-fixes-evoting-and-ereputation

Conversation

@coodos

@coodoscoodos commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Description of change

Issue Number

Type of change

  • Breaking (any change that would cause existing functionality to not work as expected)
  • New (a change which implements a new feature)
  • Update (a change which updates existing functionality)
  • Fix (a change which fixes an issue)
  • Docs (changes to the documentation)
  • Chore (refactoring, build scripts or anything else that isn't user-facing)

How the change has been tested

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

  • Improvements
    • Extended the character limit for reference text input from 500 to 5,000 characters, with updated validation messages and character counter display.
    • Modified default poll listing sort order to display most recently created polls first, replacing the previous deadline-based sorting.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates character limits for reference text input from 500 to 5000 characters across validation and UI display, and modifies default sorting behavior in the eVoting platform from deadline-based ascending order to creation-date-based descending order across frontend and backend components.

Changes

Cohort / File(s)Summary
Reference Text Character Limit Update
platforms/eReputation/client/src/components/modals/reference-modal.tsx
Increased maximum character length from 500 to 5000 in validation rules, user-facing error messages, textarea maxLength attribute, and character count threshold indicator.
eVoting Sorting Defaults
platforms/eVoting/src/app/(app)/page.tsx, platforms/evoting-api/src/controllers/PollController.ts, platforms/evoting-api/src/services/PollService.ts
Changed default sort field from "deadline" to "createdAt" and default sort direction from "asc" to "desc" across frontend and backend. Added "createdAt" case to sorting switch logic in PollService.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Reference modal changes are straightforward constant/attribute updates with consistent messaging.
  • Sorting defaults are configuration-level changes across three cohesive files with no algorithmic logic modifications.
  • Verify that "createdAt" sorting is correctly implemented in PollService switch case and aligns with database schema.

Possibly related PRs

Suggested reviewers

  • xPathin
  • ananyayaya129

Poem

🐰 A rabbit hops through polling lists so fine,
Now sorted fresh by the date they align,
References grow from five-hundred to five grand,
With createdAt leading—a much better plan! 📝✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check nameStatusExplanationResolution
Description check⚠️ WarningThe PR description contains only the template structure with no actual content filled in—Issue Number, testing details, and Type of change are all blank or unchecked, making it impossible to understand the author's intent and validation approach.Complete the description by filling in Issue Number, selecting Type of change, documenting how changes were tested, and explaining the rationale for the modifications across multiple components.
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe PR title 'chore: minor improvments' is vague and does not clearly convey the specific changes made, using the generic term 'minor improvments' without meaningful detail about what was actually changed.Replace 'minor improvments' with specific change summary (e.g., 'chore: update default sorting and increase reference text limit' or similar).
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/minor-ux-fixes-evoting-and-ereputation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (2)

318-325: 5000‑char validation and messaging look consistent; consider de‑duplicating the magic number

The new referenceText.length > 5000 check and the toast message line up with the maxLength and counter below. To reduce drift if this ever changes again, consider extracting 5000 into a shared MAX_REFERENCE_LENGTH constant and reusing it in the validation, toast copy, maxLength, and the counter text.


581-585: > 5000 threshold is unreachable with maxLength={5000}

Because the Textarea enforces maxLength={5000}, referenceText.length will never exceed 5000 via normal UI input, so the "text-apple-red" branch in the counter will not be hit. If you want a visual warning near the limit, consider switching to a lower threshold (e.g. 0.9 * max) or using >= and slightly lowering maxLength.

platforms/eVoting/src/app/(app)/page.tsx (1)

22-25: Front‑end sort defaults correctly switched to createdAt/DESC; consider whether to surface this in the UI

Initializing sortField to "createdAt" and sortDirection to "desc" (with localStorage overrides) keeps the client in sync with the API’s new defaults and naturally promotes the newest polls. Since there’s no column keyed as "createdAt", the initial sort won’t show a sort icon on any header; if you ever want users to see the default ordering explicitly, you might map one of the existing columns (e.g. Deadline or a new “Created” column) to "createdAt" for the sort icon only.

Also applies to: 28-31

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 91f97eb and 02fab90.

📒 Files selected for processing (4)
  • platforms/eReputation/client/src/components/modals/reference-modal.tsx (2 hunks)
  • platforms/eVoting/src/app/(app)/page.tsx (1 hunks)
  • platforms/evoting-api/src/controllers/PollController.ts (1 hunks)
  • platforms/evoting-api/src/services/PollService.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
platforms/eReputation/client/src/components/modals/reference-modal.tsx (1)
platforms/eReputation/client/src/hooks/use-toast.ts (1)
  • toast (191-191)
platforms/evoting-api/src/services/PollService.ts (1)
platforms/eVoting/src/lib/pollApi.ts (1)
  • Poll (3-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (2)
platforms/evoting-api/src/controllers/PollController.ts (1)

16-17: API sort defaults now align with service and UI (createdAt/DESC)

Using "createdAt" with "desc" as fallbacks here matches the PollService.getAllPolls defaults and the eVoting frontend, so new polls will surface first even when the client omits sort parameters.

platforms/evoting-api/src/services/PollService.ts (1)

21-21: New createdAt/DESC default and sort branch are consistent and correct

The updated getAllPolls signature defaults (sortField = "createdAt", sortDirection = "desc") and the new "createdAt" switch case (new Date(...).getTime() diff + direction flip) correctly implement “newest first” as the base behavior. This lines up with PollController.getAllPolls and the eVoting Home page defaults, so ordering is now coherent across API and UI.

Also applies to: 116-118

@coodos
coodos merged commit b60b246 into mainDec 11, 2025
4 checks passed
@coodos
coodos deleted the chore/minor-ux-fixes-evoting-and-ereputation branch December 11, 2025 19:20
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@coodos@ananyayaya129