From ca8a182414ef3ee5427fef1d6d9195781721738c Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 29 Oct 2025 13:21:31 -0400 Subject: [PATCH 1/2] =?UTF-8?q?Revert=20"feat:=20add=20LocationSensor=20he?= =?UTF-8?q?lper=20component=20for=20next=20AppRouter=20and=20Page=E2=80=A6?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4b888c4ef3d755bb1f86bb5d450e9107184a2fcd. --- packages/client/src/clients/guide/client.ts | 5 +-- packages/react/package.json | 7 ---- packages/react/src/index.ts | 2 - .../LocationSensor/NextAppRouter.tsx | 28 ------------- .../LocationSensor/NextPagesRouter.tsx | 41 ------------------- .../guide/components/LocationSensor/index.ts | 2 - .../src/modules/guide/components/index.ts | 4 -- packages/react/src/modules/guide/index.ts | 2 - yarn.lock | 5 --- 9 files changed, 2 insertions(+), 94 deletions(-) delete mode 100644 packages/react/src/modules/guide/components/LocationSensor/NextAppRouter.tsx delete mode 100644 packages/react/src/modules/guide/components/LocationSensor/NextPagesRouter.tsx delete mode 100644 packages/react/src/modules/guide/components/LocationSensor/index.ts diff --git a/packages/client/src/clients/guide/client.ts b/packages/client/src/clients/guide/client.ts index e661d7216..ec521ad17 100644 --- a/packages/client/src/clients/guide/client.ts +++ b/packages/client/src/clients/guide/client.ts @@ -341,7 +341,7 @@ export class KnockGuideClient { cleanup() { this.unsubscribe(); - this.removeLocationChangeEventListeners(); + this.removeEventListeners(); this.clearGroupStage(); this.clearCounterInterval(); } @@ -1144,7 +1144,6 @@ export class KnockGuideClient { // Define as an arrow func property to always bind this to the class instance. private handleLocationChange = () => { - this.knock.log(`[Guide] .handleLocationChange`); const win = checkForWindow(); if (!win?.location) return; @@ -1224,7 +1223,7 @@ export class KnockGuideClient { } } - removeLocationChangeEventListeners() { + private removeEventListeners() { const win = checkForWindow(); if (!win?.history) return; diff --git a/packages/react/package.json b/packages/react/package.json index 9edf8e920..62b43f64f 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -46,15 +46,9 @@ "url": "https://github.com/knocklabs/javascript/issues" }, "peerDependencies": { - "next": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, - "peerDependenciesMeta": { - "next": { - "optional": true - } - }, "dependencies": { "@knocklabs/client": "workspace:^", "@knocklabs/react-core": "workspace:^", @@ -85,7 +79,6 @@ "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.14", "jsdom": "^27.0.0", - "next": "15.3.3", "react": "^19.0.0", "react-dom": "^19.0.0", "rimraf": "^6.0.1", diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 18932e17a..80214ade0 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -44,8 +44,6 @@ export { CardView, KnockGuideProvider, GuideToolbar as KnockGuideToolbar, - LocationSensorNextPagesRouter as KnockGuideLocationSensorNextPagesRouter, - LocationSensorNextAppRouter as KnockGuideLocationSensorNextAppRouter, Modal, ModalView, } from "./modules/guide"; diff --git a/packages/react/src/modules/guide/components/LocationSensor/NextAppRouter.tsx b/packages/react/src/modules/guide/components/LocationSensor/NextAppRouter.tsx deleted file mode 100644 index 9a20a88c1..000000000 --- a/packages/react/src/modules/guide/components/LocationSensor/NextAppRouter.tsx +++ /dev/null @@ -1,28 +0,0 @@ -"use client"; - -import { useGuideContext } from "@knocklabs/react-core"; -import { usePathname, useSearchParams } from "next/navigation"; -import { useEffect } from "react"; - -import { checkForWindow } from "../../../core/utils"; - -export const LocationSensorNextAppRouter = () => { - const pathname = usePathname(); - const searchParams = useSearchParams(); - const queryStr = searchParams.toString(); - - const { client } = useGuideContext(); - - useEffect(() => { - client.removeLocationChangeEventListeners(); - }, [client]); - - useEffect(() => { - const win = checkForWindow(); - if (!win) return; - - client.setLocation(win.location.href); - }, [client, pathname, queryStr]); - - return null; -}; diff --git a/packages/react/src/modules/guide/components/LocationSensor/NextPagesRouter.tsx b/packages/react/src/modules/guide/components/LocationSensor/NextPagesRouter.tsx deleted file mode 100644 index 986a67c3f..000000000 --- a/packages/react/src/modules/guide/components/LocationSensor/NextPagesRouter.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { useGuideContext } from "@knocklabs/react-core"; -import { useRouter } from "next/router"; -import { useEffect } from "react"; - -import { checkForWindow } from "../../../core/utils"; - -export const LocationSensorNextPagesRouter = () => { - const router = useRouter(); - const { client } = useGuideContext(); - - useEffect(() => { - const win = checkForWindow(); - if (!win) return; - - // Set the initial location if not yet set. - if (!client.store.state.location) { - client.setLocation(win.location.href); - } - - // Remove any location chagne event listeners on the window object in case - // they are attached. - client.removeLocationChangeEventListeners(); - - // Attach a route change event listener to the nextjs router. Note, here url - // is the pathname and any query parameters of the new route but does not - // include the domain or origin. - const handleRouteChangeComplete = (url: string) => { - client.setLocation(win.location.origin + url); - }; - router.events.on("routeChangeComplete", handleRouteChangeComplete); - - return () => { - router.events.off("routeChangeComplete", handleRouteChangeComplete); - }; - // We want to run this effect once per client instance and `router` is not - // guaranteed to be referentially stable. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [client]); - - return null; -}; diff --git a/packages/react/src/modules/guide/components/LocationSensor/index.ts b/packages/react/src/modules/guide/components/LocationSensor/index.ts deleted file mode 100644 index 2cfa1c531..000000000 --- a/packages/react/src/modules/guide/components/LocationSensor/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { LocationSensorNextAppRouter } from "./NextAppRouter"; -export { LocationSensorNextPagesRouter } from "./NextPagesRouter"; diff --git a/packages/react/src/modules/guide/components/index.ts b/packages/react/src/modules/guide/components/index.ts index dc019553e..8ebbde6b6 100644 --- a/packages/react/src/modules/guide/components/index.ts +++ b/packages/react/src/modules/guide/components/index.ts @@ -1,8 +1,4 @@ export { Banner, BannerView } from "./Banner"; export { Card, CardView } from "./Card"; export { GuideToolbar } from "./GuideToolbar"; -export { - LocationSensorNextAppRouter, - LocationSensorNextPagesRouter, -} from "./LocationSensor"; export { Modal, ModalView } from "./Modal"; diff --git a/packages/react/src/modules/guide/index.ts b/packages/react/src/modules/guide/index.ts index a9517776d..ab8455a62 100644 --- a/packages/react/src/modules/guide/index.ts +++ b/packages/react/src/modules/guide/index.ts @@ -6,7 +6,5 @@ export { Modal, ModalView, GuideToolbar, - LocationSensorNextAppRouter, - LocationSensorNextPagesRouter, } from "./components"; export { KnockGuideProvider } from "./providers"; diff --git a/yarn.lock b/yarn.lock index dc90ef503..e595195df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4228,7 +4228,6 @@ __metadata: eslint-plugin-react-refresh: "npm:^0.4.14" jsdom: "npm:^27.0.0" lodash.debounce: "npm:^4.0.8" - next: "npm:15.3.3" react: "npm:^19.0.0" react-dom: "npm:^19.0.0" rimraf: "npm:^6.0.1" @@ -4241,12 +4240,8 @@ __metadata: vitest: "npm:^3.1.1" vitest-axe: "npm:^0.1.0" peerDependencies: - next: ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - next: - optional: true languageName: unknown linkType: soft From 42930be69263477917a6b5594bfe35a9ee54dca4 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 29 Oct 2025 13:29:10 -0400 Subject: [PATCH 2/2] changeset --- .changeset/cuddly-grapes-lose.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/cuddly-grapes-lose.md diff --git a/.changeset/cuddly-grapes-lose.md b/.changeset/cuddly-grapes-lose.md new file mode 100644 index 000000000..7183348d8 --- /dev/null +++ b/.changeset/cuddly-grapes-lose.md @@ -0,0 +1,6 @@ +--- +"@knocklabs/client": patch +"@knocklabs/react": patch +--- + +revert 4b888c4 to remove nextjs helper components and fix module resolution error