New design changes for the dashboard - #10
Merged
ekoslow1-creator merged 20 commits intoAug 19, 2026
Merged
Conversation
Addresses gaps found in the final whole-branch review of the flip-card -> click-to-expand modal work: keyboard focusability and activation on the project card, focus management and body-scroll lock in the detail modal, scheme-checking on outbound links (isSafeUrl), consistent hasValue gating so empty sections stay hidden, a type guard on rendered tool tags, and a UTC-anchored formatDate so submission dates don't shift with viewer timezone.
Card front now shows only the project name; project_desc is already shown in the detail modal on click.
Reuse isSafeUrl to reject non-http(s) URLs (e.g. javascript:) before the GitHub hostname check, and widen the GitHub hostname check to cover www.github.com, gist.github.com, and *.githubusercontent.com, which serve X-Frame-Options: DENY and would otherwise render as a blank blocked box. Also remove loading="lazy" from the preview iframe since it fights the 6-second load timeout. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Replace disabled attribute with aria-disabled for keyboard accessibility; buttons remain focusable at boundaries, preventing focus loss - Guard onClick handlers to no-op at boundaries instead of relying on disabled - Update CSS to use aria-disabled attribute selectors - Convert pagination container to nav element with aria-label landmark - Add aria-live="polite" to status span for screen reader announcements Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…hanges-for-the-dashboard # Conflicts: # src/index.css
…ls-row overflow Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The panel opened flush with the button's left edge, which ran off the right side of the viewport since the sort control is the rightmost item in the controls row. Anchoring to the right edge keeps the panel on-screen.
📊 Code Quality Score: 63/100
Was this score accurate? 👍 Yes · 👎 No Scored by GitVelocity · How are scores calculated? |
yitzhakc
requested changes
Aug 17, 2026
yitzhakc
left a comment
There was a problem hiding this comment.
Please add doc strings and documentation
| const matchesCategory = | ||
| selectedCategory === 'All' || project.categories.includes(selectedCategory) | ||
| const matchesCategory = | ||
| selectedCategory === 'All' || project.categories.includes(selectedCategory) |
There was a problem hiding this comment.
'All' - turn it into a constant instead of a magic string
| @@ -0,0 +1,27 @@ | |||
| function Pagination({ currentPage, totalPages, onPageChange }) { | |||
| if (totalPages <= 1) return null | |||
…t/category magic strings Add readability comments explaining non-obvious behavior (focus trap, preview timeout, iframe sandboxing, outside-click listener lifecycle). Replace duplicated 'All'/'alphabetical'/'newest'/'oldest' string literals with named constants (ALL_CATEGORIES, SORT_ALPHABETICAL, SORT_NEWEST, SORT_OLDEST) to avoid drift across files. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
📊 Code Quality Score: 63/100
Was this score accurate? 👍 Yes · 👎 No Scored by GitVelocity · How are scores calculated? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ProjectDetailModal) showing every populated field from/api/powered-by(dates, tech used, Sefaria tools, experience, reach, badges, links), plus a live<iframe>preview of the project's own site with graceful loading/timeout fallback. Card front is now just the centered project name.origin/main's design-feedback PR (Design feedback: subheader, controls layout, pie chart legend spacing #9) partway through, resolving conflicts inindex.css.Dropped from scope per explicit privacy decision:
creator_email,is_developer,job_title,found_sefaria— none of these are in the live public API; the only source is a local CSV containing real people's email addresses, so nothing PII-bearing ships.Test plan
npm test— 68/68 passingnpm run lint— clean🤖 Generated with Claude Code