diff --git a/packages/next/src/client/components/router-reducer/reducers/server-action-reducer.ts b/packages/next/src/client/components/router-reducer/reducers/server-action-reducer.ts index 7d8e314b848ad..4784cfbdee5f7 100644 --- a/packages/next/src/client/components/router-reducer/reducers/server-action-reducer.ts +++ b/packages/next/src/client/components/router-reducer/reducers/server-action-reducer.ts @@ -225,7 +225,9 @@ export function serverActionReducer( [''], currentTree, treePatch, - href + redirectLocation + ? createHrefFromUrl(redirectLocation) + : state.canonicalUrl ) if (newTree === null) { diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/actions.ts b/test/e2e/app-dir/parallel-routes-revalidation/app/actions.ts index 465a4c417b0f4..dc194b76a78ef 100644 --- a/test/e2e/app-dir/parallel-routes-revalidation/app/actions.ts +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/actions.ts @@ -1,7 +1,8 @@ 'use server' +import { revalidatePath } from 'next/cache' import { redirect } from 'next/navigation' -const data = [] +let data = [] export async function addData(newData: string) { // sleep 1s @@ -21,3 +22,8 @@ export async function redirectAction() { await new Promise((res) => setTimeout(res, 1000)) redirect('/') } + +export async function clearData() { + data = [] + revalidatePath('/') +} diff --git a/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx b/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx index b8f647cca09e0..3ef8e78993572 100644 --- a/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx +++ b/test/e2e/app-dir/parallel-routes-revalidation/app/page.tsx @@ -1,5 +1,5 @@ import Link from 'next/link' -import { getData } from './actions' +import { clearData, getData } from './actions' export default async function Home() { const data = await getData() @@ -14,6 +14,9 @@ export default async function Home() { Open Redirect Modal Intercepted Detail Page
{randomNumber}
+
+ +

Current Data