Skip to content

Use Inertia links, paginate projects, drop unused shadcn packages - #6

Merged
kv4u merged 2 commits into
mainfrom
feat/web-navigation
Oct 13, 2026
Merged

kv4u merged 2 commits into
mainfrom
feat/web-navigation

Conversation

@kv4u

@kv4u kv4u commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Stacked on kv4u/MoveZ#2 (dashboard login), because both change the same Vue pages. Merge #2 first and GitHub retargets this PR to main.

Summary

  • No more full-page reloads: internal links were plain <a> tags, so every click reloaded the whole app. They are now Inertia <Link>s.
  • Projects past the first 20 are reachable: the list was paginated server-side (20 per page) but showed no page links. A new Pagination component renders Laravel's paginator links.
  • Smaller bundle: removed radix-vue, class-variance-authority, clsx, tailwind-merge and lucide-vue-next. They were installed for shadcn-vue but never imported (25 packages removed).
  • Test database fix: web tests could wipe a real database. phpunit.xml set DB_DATABASE=:memory: as a plain <env>, and Laravel reads $_SERVER first, so a DB_DATABASE set in the shell won. That made php artisan test run RefreshDatabase against the real database. I reproduced it with a seeded SQLite file, which was emptied. The test settings are now forced, with <server> entries added. This fix is also cherry-picked into kv4u/MoveZ#5 so it doesn't wait on Add dashboard login and per-user data scoping #2.

Test plan

  • php artisan test: 39 passed. Ran it with DB_DATABASE pointing at a seeded SQLite file; afterwards the file still has 3 users and 25 projects (before the fix it was emptied).
  • npm run type-check and npm run build are clean
  • Playwright: 14 passed
  • In the browser, signed in as the demo user with 25 projects:
    • Dashboard → Projects doesn't reload the page (a JS marker survives the navigation).
    • Page 1 shows 20 projects and page 2 shows 5, with the current page highlighted.
    • No console errors.

🤖 Generated with Claude Code

kv4u and others added 2 commits October 13, 2026 11:37
phpunit.xml set DB_DATABASE=:memory: as a plain <env>, which loses to an
existing environment variable, and Laravel reads $_SERVER before $_ENV
anyway. With DB_DATABASE set in the shell (as on a server), `php artisan
test` ran RefreshDatabase against the real database and emptied it —
reproduced locally against a seeded SQLite file.

Force the test env and add matching <server> entries so the tests always
use the in-memory database.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Internal links were plain <a> tags, so every click reloaded the whole
  app; they are now Inertia <Link>s
- The projects list was paginated server-side (20 per page) but showed no
  page links, so anything past the first 20 projects was unreachable
- Remove radix-vue, class-variance-authority, clsx, tailwind-merge and
  lucide-vue-next: installed for shadcn-vue but never imported

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kv4u
kv4u changed the base branch from feat/dashboard-auth to main October 13, 2026 16:05
@kv4u
kv4u merged commit 1e81b04 into main Oct 13, 2026
5 checks passed
Sign up for free to 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.

1 participant