From e79b8931fe36dcc75ac4b08dd4592debd6ffd82e Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Fri, 26 Jun 2026 08:10:06 +0000 Subject: [PATCH] fix: preserve css readd reload state --- src/dev-generation.ts | 6 ++++-- tests/dev-generation.test.ts | 13 +++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/dev-generation.ts b/src/dev-generation.ts index c4d30b6c..5cf1c51b 100644 --- a/src/dev-generation.ts +++ b/src/dev-generation.ts @@ -494,9 +494,11 @@ export const createReactRouterDevRuntime = ({ if (cssAssetsRemoved) { reloadAfterCssRemoval = !cssAssetsAdded; notifyCssAssetOwnershipChanged(); - } else if (webChanged && reloadAfterCssRemoval) { + } else if (cssAssetsAdded) { + if (reloadAfterCssRemoval) { + notifyCssAssetOwnershipChanged(); + } reloadAfterCssRemoval = false; - notifyCssAssetOwnershipChanged(); } } catch (cause) { rejectAttempt( diff --git a/tests/dev-generation.test.ts b/tests/dev-generation.test.ts index 500adfee..6a129382 100644 --- a/tests/dev-generation.test.ts +++ b/tests/dev-generation.test.ts @@ -406,6 +406,19 @@ describe('React Router development runtime', () => { cssOnlyChange, graphIdentity(removedCssWeb, node) ); + expect(onCssAssetOwnershipChanged).toHaveBeenCalledOnce(); + + const contentOnlyWeb = createCompilation('web'); + runtime.beginAttempt(); + captureWeb(runtime, contentOnlyWeb, 'without-css-content-edit', { + routes: { 'routes/about': [] }, + }); + await runtime.finishAttempt( + createGraphStats(contentOnlyWeb, node), + cssOnlyChange, + graphIdentity(contentOnlyWeb, node) + ); + expect(onCssAssetOwnershipChanged).toHaveBeenCalledOnce(); const readdedCssWeb = createCompilation('web'); runtime.beginAttempt();