Add classic icon support and enhance rank calculation logic - #23
Add classic icon support and enhance rank calculation logic#23korpseluv wants to merge 5 commits into
Conversation
* Deep stats cards are now fully clickable * Update favicon links in nuxt.config.ts to use .ico format * Adjust position of event indicator in graph for improved visibility * Enhance badge styling for improved visibility and accessibility * Add tab management and URL fragment synchronization for improved navigation * Refactor URL fragment handling for tab navigation to simplify mappings and improve synchronization * Refactor chart interaction to improve SVG coordinate mapping for accurate graph hover functionality * a
* Deep stats cards are now fully clickable * Update favicon links in nuxt.config.ts to use .ico format * Adjust position of event indicator in graph for improved visibility * Enhance badge styling for improved visibility and accessibility * Add tab management and URL fragment synchronization for improved navigation * Refactor URL fragment handling for tab navigation to simplify mappings and improve synchronization * Refactor chart interaction to improve SVG coordinate mapping for accurate graph hover functionality * a
* Deep stats cards are now fully clickable * Update favicon links in nuxt.config.ts to use .ico format * Adjust position of event indicator in graph for improved visibility * Enhance badge styling for improved visibility and accessibility * Add tab management and URL fragment synchronization for improved navigation * Refactor URL fragment handling for tab navigation to simplify mappings and improve synchronization * Refactor chart interaction to improve SVG coordinate mapping for accurate graph hover functionality * a * Update environment configuration to use runtime OSU target user for fallback user * Add allowedHosts configuration for dev server tunnel preview
Added the GNU Affero General Public License version 3 to the project.
Add GNU Affero General Public License v3
There was a problem hiding this comment.
Pull request overview
Updates the app’s icon handling and UI behavior, while also introducing configuration for dev-server tunneling and adding an AGPL license.
Changes:
- Switches Nuxt head favicon references to
/favicon.icoand adds Viteserver.allowedHostsconfiguration. - Enhances the main app page with hash-synced tab navigation and improved SVG hover coordinate mapping.
- Adds an AGPL-3.0
LICENSE, updates the PR template checklist, and extends.env.example.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
nuxt.config.ts |
Updates favicon links and configures Vite dev server allowed hosts. |
app/app.vue |
Adds URL-hash tab syncing and improves rank history hover alignment; makes deep score cards keyboard-focusable/clickable. |
LICENSE |
Introduces AGPL-3.0 licensing text. |
.github/PULL_REQUEST_TEMPLATE.md |
Adds npm run typecheck to the testing checklist. |
.env.example |
Documents new NUXT_PUBLIC_OSU_TARGET_USER and NUXT_ALLOWED_HOSTS env vars. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { rel: 'icon', type: 'image/png', href: '/icon.png' }, | ||
| { rel: 'apple-touch-icon', href: '/icon.png' } | ||
| { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }, | ||
| { rel: 'apple-touch-icon', href: '/favicon.ico' } |
There was a problem hiding this comment.
rel="apple-touch-icon" points to /favicon.ico (ICO). iOS expects a PNG for Apple touch icons and may ignore ICOs, leading to missing home screen icons. Consider pointing this to a PNG (e.g., an apple-touch-icon.png in /public) and keep /favicon.ico just for the browser favicon.
| { rel: 'apple-touch-icon', href: '/favicon.ico' } | |
| { rel: 'apple-touch-icon', href: '/icon.png' } |
| GNU AFFERO GENERAL PUBLIC LICENSE | ||
| Version 3, 19 November 2007 | ||
|
|
There was a problem hiding this comment.
This PR adds an AGPL-3.0 license file, which is a significant repo-level change, but the PR title/description don’t mention a licensing change. Please confirm this license change is intentional and update the PR description (and any related docs like README) accordingly so reviewers understand the scope/impact.
| @click="score.deep_stats && openDetail(score)" | ||
| @keyup.enter="score.deep_stats && openDetail(score)" |
There was a problem hiding this comment.
The clickable deep-stats card uses role="button" + tabindex="0" but only handles Enter (@keyup.enter). For keyboard accessibility it should also activate on Space (typically on keydown.space with preventDefault), or preferably be a real <button>/<a> element. Also, deepScores is already filtered to score.deep_stats, so the score.deep_stats && guards here are redundant.
| @click="score.deep_stats && openDetail(score)" | |
| @keyup.enter="score.deep_stats && openDetail(score)" | |
| @click="openDetail(score)" | |
| @keyup.enter="openDetail(score)" | |
| @keydown.space.prevent="openDetail(score)" |
Summary
What does this PR change?
test
Why
Why is this change needed?
Testing
npm run buildSecurity / privacy
Notes
Anything reviewers should know.