Skip to content

v0.2.3

Choose a tag to compare

@BCFCODE BCFCODE released this 12 Apr 17:31
· 258 commits to main since this release

We’re excited to announce the release of v0.2.3, which brings a mix of new features, enhancements, bug fixes, and dependency updates to elevate both the developer and user experience.

This release focuses on:

  • Enhancing the leaderboard functionality
  • Improving UI consistency
  • Ensuring a smoother collaboration workflow

🎉 New Features

Dynamic Footer Components

  • Added Large.tsx and Mini.tsx footer components for the dashboard layout, supporting both compact and expanded sidebar views.
  • Footer dynamically displays the current year and BCFCODE branding with responsive styling.
  • Integrated into the dashboard layout using the DashboardLayout slots API for improved modularity.

Enhanced Leaderboard Table

  • TimeAgoCell: Displays relative time (e.g., "5m ago") for completed challenges using dayjs with custom configuration.
  • StatusCell + StatusChip: Color-coded visual feedback for challenge completion status (success, info, warning, default).
  • RankCell: Uses rank-specific icons and colors to distinguish challenge difficulty.
  • NameCell: Truncates and styles long challenge names for better readability.

Challenge Filtering Hooks

  • Added useFilter.ts, useUntrackedChallenges.ts, and useMarkUntrackedChallenges.ts to manage filter logic (claimed, unclaimed, both) and untracked challenges.

Day.js Utility

  • Introduced dayjs.ts utility with relativeTime and updateLocale plugins.
  • Ensures consistent relative time formatting (e.g., “Just now”, “1h ago”).
  • Includes documentation for customization and usage.

Chart References

  • Created links.txt with references to:
    • Recharts
    • ECharts
    • MUI X Charts
      For potential future charting and data visualization implementations.

🛠 Enhancements

Leaderboard Table Improvements

  • Restructured SingleRow to incorporate new cells (TimeAgoCell, NameCell, StatusCell) and reordered columns for improved UX.
  • Updated DateCompletedCell and SolvedOnCell with consistent text alignment.
  • Added Tooltip to CollectDiamondsCell (improved interactivity, though not fully visible in diff).

Type Safety

  • Refactored codewars.ts types:
    • Modularized Ranks and CodeChallenges.
    • Added completedAt to CodewarsDiamondsRecord for better diamond tracking.
  • Consolidated user-related types:
    • Removed redundant google.ts and next-auth.d.ts.
    • Updated users.ts to define GoogleUser and AuthenticatedUser.

Version Update

  • Bumped app version from v0.2.0 to v0.2.3 in the UnderDevelopment banner.

🐛 Bug Fixes

Spelling & Config

  • Fixed typo in Guide.txt: isCollapse → isCollapsed for improved clarity.
  • Cleared cSpell.words array in .vscode/settings.json to clean up unnecessary spell check entries.

🔄 Dependency Updates

Updated several dependencies to their latest versions for improved performance, compatibility, and security:

Package From To
@typescript-eslint/* 8.28.0 8.29.1
eslint 9.23.0 9.24.0
typescript 5.8.2 5.8.3
next 15.2.4 15.3.0
react, react-dom 19.0.0 19.1.0
sharp 0.33.5 0.34.1
cypress 14.2.1 14.3.0
mongoose 8.13.0 8.13.2
...and more – see package-lock.json for complete details.

📝 Notes

  • useSetLatestUntrackedChallenge.ts is currently commented out and may be reintroduced in a future release.
  • Some console.log statements are commented in hook files (e.g., useFilter.ts, useUntrackedChallenges.ts) for debugging and will be cleaned up in future commits.
  • Deprecated components:
    • ChallengeNameCell.tsx
    • Old RankCell.tsx
      These have been removed in favor of newer, maintainable implementations.

🏷 Tagging Recommendations

  • Stable Release Tag: v0.2.3
    Suitable for production deployments. Introduces stable, tested features and fixes.

  • Pre-release Tag (optional): v0.2.3-beta.1
    Use if additional QA or testing is required before promoting to the latest.

This release is now the latest stable version.


📈 What’s Next?

  • Finalize untracked challenge logic and uncomment related hook code.
  • Implement charting features using references from links.txt.
  • Refine leaderboard UI with tooltips, sorting, and more interactivity.
  • Begin exploring internationalization (i18n) support for dayjs.

🙌 Thanks

Huge thanks to all contributors, testers, and collaborators for making this release possible. Let’s keep building an awesome platform together!


BCFCODE LOGO