Skip to content

feat(home): sort projects by updated, created, or title - #1396

Open
bobbyquantum wants to merge 4 commits into
mainfrom
feat/home-project-sort
Open

feat(home): sort projects by updated, created, or title#1396
bobbyquantum wants to merge 4 commits into
mainfrom
feat/home-project-sort

Conversation

@bobbyquantum

Copy link
Copy Markdown
Owner

What

Adds a sort menu to the home page header so the project grid can be ordered by:

  • Recently updated (default)
  • Recently created
  • Title (A–Z)

The chosen order is persisted in localStorage (inkweld-home-project-sort) and restored on the next visit. Unknown or unreadable stored values fall back to the default.

Why

The home page had search but no way to change project order. The server already returned owned projects newest-updated first, but shared projects were simply appended after them, and local mode had no defined order at all. Shared projects are now interleaved with owned projects according to the selected sort, and local mode consistently shows newest-updated first.

Reviewer notes

  • Sorting lives in a pure sortProjectItems helper in home.component.ts; ties fall back to a case-insensitive title compare so results are stable.
  • New i18n strings under home.sort in home.json.
  • Seven new unit tests cover the default order, each mode, shared-project interleaving, persistence, restore, and invalid stored values. Full home spec passes (86 tests); ESLint and Prettier clean.
  • Existing e2e tests that click project-card .first() create a single project per test, so the new default ordering does not affect them.

Add a sort menu to the home header so writers can order the project
grid by recently updated (default), recently created, or title. Shared
projects are now interleaved with owned projects instead of appended.
The choice is persisted in localStorage.
@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 081e15fa-e7d7-4f5c-bf49-f7d181d0c1bb


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.

@bobbyquantum
bobbyquantum deployed to sonarcloud-analysis September 3, 2026 22:23 — with GitHub Actions Active
@bobbyquantum bobbyquantum added the deploy:preview:frontend Deploy a frontend preview for this PR to Cloudflare Pages label Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

🚀 Frontend preview deployed for #1396

This is a frontend-only preview (no backend). It runs in local/offline mode; point it at an existing server at runtime through the setup flow if needed. On PR close or label removal, the cleanup workflow attempts to delete this branch's Pages deployments; note that Cloudflare keeps the latest deployment for a branch, so the preview URL may remain reachable after cleanup.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

🚀 Frontend preview deployed for #1396

This is a frontend-only preview (no backend). It runs in local/offline mode; point it at an existing server at runtime through the setup flow if needed. On PR close or label removal, the cleanup workflow attempts to delete this branch's Pages deployments; note that Cloudflare keeps the latest deployment for a branch, so the preview URL may remain reachable after cleanup.

@bobbyquantum
bobbyquantum deployed to sonarcloud-analysis September 3, 2026 22:40 — with GitHub Actions Active
V8 numbers branch blocks per process, so shards that never executed a
file report its branches under different block ids than the shard that
did. Summing them invented zero-hit branches and halved SonarCloud's
new-code condition coverage. Skip BRDA entries from records with no
line hits.
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

🚀 Frontend preview deployed for #1396

This is a frontend-only preview (no backend). It runs in local/offline mode; point it at an existing server at runtime through the setup flow if needed. On PR close or label removal, the cleanup workflow attempts to delete this branch's Pages deployments; note that Cloudflare keeps the latest deployment for a branch, so the preview URL may remain reachable after cleanup.

@bobbyquantum
bobbyquantum deployed to sonarcloud-analysis September 3, 2026 23:00 — with GitHub Actions Active
Shards that only import a file still record module-level line hits, so
skipping branch records from zero-hit shards was not enough. Match
branch entries on the same line by sorted position instead of by V8
block id, which differs between processes.
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

🚀 Frontend preview deployed for #1396

This is a frontend-only preview (no backend). It runs in local/offline mode; point it at an existing server at runtime through the setup flow if needed. On PR close or label removal, the cleanup workflow attempts to delete this branch's Pages deployments; note that Cloudflare keeps the latest deployment for a branch, so the preview URL may remain reachable after cleanup.

@bobbyquantum
bobbyquantum deployed to sonarcloud-analysis September 3, 2026 23:21 — with GitHub Actions Active
@sonarqubecloud

sonarqubecloud Bot commented Sep 3, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deploy:preview:frontend Deploy a frontend preview for this PR to Cloudflare Pages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant