Draft
Conversation
Ensure tracked frame instances are disposed before node removal during diffing so nested frame cleanup still runs on non-document-root navigations. Made-with: Cursor
This introduces navigation state handling for targeted frame reloads and adds `rmx-target`/`rmx-src` anchor attributes so declarative links can direct updates into named frames. Made-with: Cursor
Use a single parameterized dashboard shell route and one shell handler to select nested content, removing duplicated shell route/action definitions while preserving permalink behavior. Made-with: Cursor
Replace the old multi-frame scaffold with a single main controller and a shared LMS layout, while keeping frame resolution wiring in place for future frame routes. Made-with: Cursor
…ted settings nav Split settings into its own route/controller with LMS-specific sections and render a secondary settings sidebar inside the main app shell so each settings action has a focused content pane. Made-with: Cursor
…s layout Move settings-specific frame navigation and sidebar concerns out of the shared app layout and into a dedicated settings layout with explicit settings frame routes. Made-with: Cursor
Accept either a single mixin descriptor or an array of descriptors in component runtime paths, and simplify the frame-navigation demo to use direct mix values for one-off styles. Made-with: Cursor
Expose frame identity to resolveFrame callbacks and re-export the shared callback types so consumers can branch on named vs top-level frame reloads without annotating handler parameters. Made-with: Cursor
Refetch the full settings shell inside the named settings frame while keeping top-level navigation as full-page loads, so deep settings URLs still render correctly on refresh. Made-with: Cursor
Make frame context mandatory throughout the resolveFrame abstraction so callers can rely on top-vs-named frame metadata without optional checks. Made-with: Cursor
Replace the resolveFrame metadata object with an optional target string so frame reloads carry only the named frame identity that callers actually branch on. Made-with: Cursor
Align the demo's frame fetches with the simplified resolveFrame API by always marking frame requests and only sending a target header for named frame reloads. Made-with: Cursor
Avoid applying partial streamed HTML to the live DOM before frame and hydration markers are complete so frame replacement doesn't leave orphaned markers during navigation. Made-with: Cursor
Rename the settings page components to local route names and move the full-page versus fragment branching into a shared settings shell component while updating the component change note for the resolveFrame target API. Made-with: Cursor
Treat incoming frame HTML as serialized defaults so reloads do not clobber browser-managed UI state for interactive elements. Add regression tests and a change note covering preserved open, checked, value, selection, and popover state. Made-with: Cursor
Expose current and top frame src values during SSR so shared components can rely on frame URL state in both server and client render trees. Made-with: Cursor
Replace layout-level active props with a shared NavLink so the demo can determine active navigation state from route and controller matching instead of controller-specific prop wiring. Made-with: Cursor
Carry the top frame URL through client and server frame requests so targeted settings navigation can resolve active route state consistently across SSR and frame reloads. Made-with: Cursor
Export demo frame names from the route config so targeted settings navigation and frame request handling stop duplicating string literals. Made-with: Cursor
Normalize `mix` to an array or undefined when elements are created so wrapper components can compose mixins without special casing single descriptors. Keep JSX accepting either a single mixin descriptor or an array for both host elements and component call sites. Made-with: Cursor
Keep tests, demos, and docs on the supported single-argument run() signature and avoid relying on ambient Navigation API typings so the monorepo typechecks cleanly. Made-with: Cursor
Surface hydration, ready(), and frame reload failures on the typed run() runtime target so apps can handle them consistently. Made-with: Cursor
Render a polished error screen for app runtime failures so the navigation demo can recover gracefully when frame loading breaks. Made-with: Cursor
Contributor
Preview Build AvailableA preview build has been created for this PR. You can install it using: pnpm install "remix-run/remix#preview/pr-11133&path:packages/remix"This preview build will be updated automatically as you push new commits. |
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.
No description provided.