Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(solid-router): Add a SolidJS driver for TanStack Router #3276

Merged
merged 176 commits into from
Feb 20, 2025

Conversation

birkskyum
Copy link
Member

@birkskyum birkskyum commented Jan 29, 2025

Supersedes:

Continuation of:

This adds a solid-router package, which is a copied and modified version of the react-router.

Prerequisites

Next up

@birkskyum birkskyum force-pushed the solid-router-remake branch from ea150b8 to 0ff716a Compare January 29, 2025 23:47
Copy link

nx-cloud bot commented Jan 29, 2025

View your CI Pipeline Execution ↗ for commit 5ce0ae3.

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 6m 10s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 1m 56s View ↗

☁️ Nx Cloud last updated this comment at 2025-02-20 12:14:03 UTC

@birkskyum birkskyum changed the title WIP - feat(solid-router): Add a SolidJS driver for TanStack Router feat(solid-router): Add a SolidJS driver for TanStack Router Jan 29, 2025
@birkskyum birkskyum force-pushed the solid-router-remake branch from 16f810b to a7cddce Compare January 29, 2025 23:55
@birkskyum birkskyum force-pushed the solid-router-remake branch 2 times, most recently from b198f85 to 0ea40b5 Compare January 31, 2025 11:51
@birkskyum
Copy link
Member Author

birkskyum commented Jan 31, 2025

Most of the failing tests currently return a useless error message ( like this ), making progress hard. It'll be fixed by this PR, after which we can proceed:

@birkskyum birkskyum force-pushed the solid-router-remake branch 4 times, most recently from 6a0bc20 to 3c9f4c6 Compare February 5, 2025 13:19
@birkskyum birkskyum force-pushed the solid-router-remake branch from 2f35cf6 to 1329b8d Compare February 7, 2025 22:26
@birkskyum birkskyum marked this pull request as ready for review February 11, 2025 09:09
@birkskyum birkskyum force-pushed the solid-router-remake branch 3 times, most recently from 3049b35 to 92cce7e Compare February 18, 2025 13:26
@birkskyum
Copy link
Member Author

birkskyum commented Feb 19, 2025

This is passing all Unit and E2E tests now, so it's ready for review.

@schiller-manuel schiller-manuel merged commit ad20a68 into TanStack:main Feb 20, 2025
3 of 4 checks passed
@alfredomariamilano
Copy link

@birkskyum Holy shit, you absolute madman! I had started working on a solid port, but life happened. I'm going to test it right away!

tannerlinsley pushed a commit that referenced this pull request Feb 25, 2025
* copy react-router

* update

* Move forward branch

* cleanup

* cleanup

* add publish

* bump deps

* ci: apply automated fixes

* remove unused imports

* ci: apply automated fixes

* bump  vite plugin solid

* fix imports

* ci: apply automated fixes

* remove react lint from solid-router

* fix types

* ci: apply automated fixes

* add structuralSharing

* downgrade vite plugin solid

* fix scroll-restoration in solid-router

* fix Transitioner

* fix imports from ScrollRestoration

* Fix tests

* Fix more tests

* Remove the react $$typeof

* add accessors to useLocation

* add remountDeps

* cleanup

* remove tanstack/store

* format

* add missing call to setupScrollRestoration

* format

* add optional

* align match component

* make matches a signal

* Bump vite-plugin-solid to stable

* add missing await

* Fix unknown error

* Tweak the tests to call functions

* remove unused vars

* fix lockfile

* Down to 25 failures

* Remove .only

* call search()

* remove the structuralSharing

* fix type test

* fix structuralSharing

* comment out structured sharing validation check

* fix typings

* comment out serialization check

* comment out serialization check

* cleanup

* improve types of useSearch

* fix "when setting search params with 2 parallel navigate calls"

* fix useParams

* fix types

* fix useParams types

* cleanup debug

* fix link data loader

* fix data loader signal

* fix type test

* fix Link "when navigating away from a route with a loader that errors"

* setup on() simpler

* make initial load a createRenderEffect

* Fix some link preload tests

* add accessor to UseMatchRoute

* fix: when navigating to /posts with a beforeLoad that returns context

* call parentRouteId

* re-enable invariant

* fix when navigating from /invoices to ./invoiceId and the current route is /posts/$postId/details

* use memo for prev

* remove browserhistory  workaround

* fix  "after a navigation, should have emitted the "onResolved" event twice"

* skip remount

* add types to useSearch

* fix search middleware

* don't need a getter

* sync react-router

* solid kitchen sink

* add the example to workspace

* lockfile

* fix solid kitchensink name

* add solid template

* fix example

* rename react to solid

* work on example

* add accessor

* fix type tests

* Fix login in example

* Don't destructure

* Fix stuck on pending component

* Fix where loaderData can be undefined

* Use For component

* More refactor

* Hacky way to fix loading spinner

* Fix one test

* Better MatchRoute fix

* Down to 1 failing test

* Fix last test

* cleanup subscription

* lockfile

* eslint

* ci: apply automated fixes

* fix router-core lint

* ci: apply automated fixes

* add e2e test for solid-router

* ci: apply automated fixes

* work on solid-router e2e suites

* fix comment

* use solid-virtualizer

* work on scroll-restauration

* work on scroll-restauration

* skip react-specific useRenderEffect test

* fix errorcomponent being used before it's defined

* set solid target for esbuild

* ci: apply automated fixes

* fix rspack tests

* fix query tets

* add solid-query example

* use memo for post

* add memo for posts

* fix example

* add jsx compiler flags to esbuild commands

* add esbuild-plugin-solid

* Fix some e2e

* ci: apply automated fixes

* port #3423 from react-router

* fix useLoaderData test-d

* add codeSplitGroupings

* Scroll restoration fixes

* add asset headcontent script

* remove solid-router-copy

* fix react use

* fix scroll restoration test

* skip esbuild because it's broken in react-router

* wait for timeout

* update scroll-restoration to match react

* useLocation

* use on() in match

* align useNavigate with react-router

* lockfile

* fix Scripts test

* align __TSR_SSR__ in ScriptOnce

* remove solid-router from publish

* lint

* ci: apply automated fixes

* align to react-router

* port over "exclude props from state equality check to prevent history push for equal url and state"

* align with react-router

* add shouldThrow

* fix typePrimitives

* use searchStr to fix the search middleware

* ci: add solid-router to the labeler

* use patched vite-plugin-solid

* eslint

* ci: apply automated fixes

* use vite-plugin-solid 2.11.2

* remove only modifier

* move vite-plugin-solid peerDep to router-plugin

* use latest vite-plugin-solid

* move vitest to root

* bump vitest

* revert onRendered

* lint

* add to publish

* fix scroll restoration

* ci: apply automated fixes

* align version with react-router

* sync to react-router

* sync with react-router

* sync navigate tests to react-router

* ci: apply automated fixes

* use Solid.JSX.Element consistently instead of Solid.JSXElement

* remove irrelevant test

* ci: apply automated fixes

* remove unused suite

* lint

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Brenley Dueck <[email protected]>
Co-authored-by: SeanCassiere <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants