diff --git a/apps/example-react/package.json b/apps/example-react/package.json index 7e879db..2f4cc90 100644 --- a/apps/example-react/package.json +++ b/apps/example-react/package.json @@ -24,7 +24,7 @@ "eslint-plugin-react-refresh": "^0.4.5", "typescript": "^5.2.2", "vite": "^5.0.8", - "vite-plugin-posthog": "*", + "vite-plugin-posthog": "2.0.4", "react-posthog-consent": "*" } } diff --git a/apps/example-react/src/App.tsx b/apps/example-react/src/App.tsx index dfe92d7..afab751 100644 --- a/apps/example-react/src/App.tsx +++ b/apps/example-react/src/App.tsx @@ -6,13 +6,13 @@ import { useVitePostHog, useFeatureFlagEnabled, } from "vite-plugin-posthog/react"; -// import { useConsent } from "react-posthog-consent/vite"; +import { useConsent } from "react-posthog-consent/vite"; function App() { const [count, setCount] = useState(0); const posthog = useVitePostHog(); const showWelcomeMessage = useFeatureFlagEnabled("welcome-msg"); - // const { reset } = useConsent(); + const { handleReset } = useConsent(); const handleClick = () => { posthog?.capture("count incremented"); @@ -40,7 +40,7 @@ function App() {

Click on the Vite and React logos to learn more

- + ); diff --git a/package-lock.json b/package-lock.json index 5a6135c..f81733d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "react-posthog-consent": "*", "typescript": "^5.2.2", "vite": "^5.0.8", - "vite-plugin-posthog": "*" + "vite-plugin-posthog": "2.0.4" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -4412,7 +4412,7 @@ "react-posthog-consent": "*", "typescript": "^5.2.2", "vite": "^5.0.8", - "vite-plugin-posthog": "*" + "vite-plugin-posthog": "2.0.4" } }, "fast-deep-equal": { diff --git a/packages/react-posthog-consent/package.json b/packages/react-posthog-consent/package.json index dc44903..218b48e 100644 --- a/packages/react-posthog-consent/package.json +++ b/packages/react-posthog-consent/package.json @@ -26,8 +26,8 @@ "import": "./dist/vite/index.js" } }, - "types": "src/core/types.d.ts", - "typings": "src/core/types.d.ts", + "types": "src/core/index.d.ts", + "typings": "src/core/index.d.ts", "files": [ "dist", "package.json", diff --git a/packages/react-posthog-consent/rollup.config.mjs b/packages/react-posthog-consent/rollup.config.mjs index 1c35b14..a20a205 100644 --- a/packages/react-posthog-consent/rollup.config.mjs +++ b/packages/react-posthog-consent/rollup.config.mjs @@ -5,47 +5,52 @@ import cjs from "@rollup/plugin-commonjs"; const config = defineConfig([ { - input: "src/core/index.ts", + input: { + "core/index": "src/core/index.ts", + "vite/index": "src/vite/index.ts", + }, output: { - dir: "dist/core", + dir: "dist", format: "es", }, plugins: [ typescript({ - outDir: "dist/core", - include: [ - "src/core/**/*", - "src/shared/**/*", - "src/utils/**/*", - "src/types.ts", - ], + outDir: "dist", + include: ["src/**/*"], + declaration: true, }), nodeResolve(), cjs(), ], - external: ["react", "react-dom", "posthog-js", "vite-plugin-posthog"], - }, - { - input: "src/vite/index.ts", - output: { - dir: "dist/vite", - format: "es", - }, - plugins: [ - typescript({ - outDir: "dist/vite", - include: [ - "src/vite/**/*", - "src/shared/**/*", - "src/utils/**/*", - "src/types.ts", - ], - }), - cjs(), - nodeResolve(), + external: [ + "react", + "react-dom", + "posthog-js", + "vite-plugin-posthog", + "react/jsx-runtime", ], - external: ["react", "react-dom", "vite-plugin-posthog"], }, + // { + // input: "src/vite/index.ts", + // output: { + // dir: "dist/vite", + // format: "es", + // }, + // plugins: [ + // typescript({ + // outDir: "dist/vite", + // include: [ + // "src/vite/**/*", + // "src/shared/**/*", + // "src/utils/**/*", + // "src/types.ts", + // ], + // }), + // cjs(), + // nodeResolve(), + // ], + // external: ["react", "react-dom", "vite-plugin-posthog"], + // }, ]); export default config; diff --git a/packages/react-posthog-consent/src/core/ConsentProvider.tsx b/packages/react-posthog-consent/src/core/ConsentProvider.tsx index 451b430..b18f09f 100644 --- a/packages/react-posthog-consent/src/core/ConsentProvider.tsx +++ b/packages/react-posthog-consent/src/core/ConsentProvider.tsx @@ -1,11 +1,11 @@ -import React, { +import { ReactNode, PropsWithChildren, createContext, useEffect, useState, } from "react"; -import { ConsentConfig, ConsentContextType } from "../types"; +import { ConsentConfig, ConsentContextType } from "../shared/types"; import { usePostHogConsent } from "./usePostHogConsent"; export const ConsentContext = createContext({ diff --git a/packages/react-posthog-consent/src/core/index.ts b/packages/react-posthog-consent/src/core/index.ts index b7e206b..5010cd6 100644 --- a/packages/react-posthog-consent/src/core/index.ts +++ b/packages/react-posthog-consent/src/core/index.ts @@ -1,4 +1,4 @@ -export { PostHog } from "../types"; +export * from "../shared/types"; export * from "./ConsentProvider"; export * from "./usePostHogConsent"; export * from "./useConsent"; diff --git a/packages/react-posthog-consent/src/core/usePostHogConsent.ts b/packages/react-posthog-consent/src/core/usePostHogConsent.ts index 35d2231..b10ed2f 100644 --- a/packages/react-posthog-consent/src/core/usePostHogConsent.ts +++ b/packages/react-posthog-consent/src/core/usePostHogConsent.ts @@ -5,7 +5,7 @@ import { getCookie } from "../shared/getCookie"; import { rejectConsent } from "../shared/rejectConsent"; import { triggerOptIn } from "../shared/triggerOptIn"; import { triggerReset } from "../shared/triggerReset"; -import { ConsentConfig } from "../types"; +import { ConsentConfig } from "../shared/types"; export const usePostHogConsent = (config: ConsentConfig) => { const posthog = usePostHog(); diff --git a/packages/react-posthog-consent/src/shared/acceptConsent.ts b/packages/react-posthog-consent/src/shared/acceptConsent.ts index fb5277f..a2f6f2b 100644 --- a/packages/react-posthog-consent/src/shared/acceptConsent.ts +++ b/packages/react-posthog-consent/src/shared/acceptConsent.ts @@ -1,11 +1,12 @@ -import { ConsentConfig, PostHog } from "../types"; -import { getCookiePrefix } from "../utils/getCookiePrefix"; +import { ConsentConfig, PostHog } from "./types"; +import { getCookiePrefix } from "./utils/getCookiePrefix"; import { configureCookies } from "./configureCookies"; export const acceptConsent = ( posthog: PostHog | null, config: ConsentConfig ) => { + // TODO: COnfigure Opt-in capturing posthog?.opt_in_capturing(); const cookies = configureCookies(config); cookies.set(`${getCookiePrefix(config.cookiePrefix)}_consent`, { diff --git a/packages/react-posthog-consent/src/shared/checkHasConsent.ts b/packages/react-posthog-consent/src/shared/checkHasConsent.ts index ac2705c..e161fe9 100644 --- a/packages/react-posthog-consent/src/shared/checkHasConsent.ts +++ b/packages/react-posthog-consent/src/shared/checkHasConsent.ts @@ -1,5 +1,5 @@ -import { ConsentConfig } from "../types"; -import { getCookiePrefix } from "../utils/getCookiePrefix"; +import { ConsentConfig } from "./types"; +import { getCookiePrefix } from "./utils/getCookiePrefix"; import { configureCookies } from "./configureCookies"; export const checkHasConsent = (config: ConsentConfig) => { diff --git a/packages/react-posthog-consent/src/shared/configureCookies.ts b/packages/react-posthog-consent/src/shared/configureCookies.ts index 90f33ce..4639f88 100644 --- a/packages/react-posthog-consent/src/shared/configureCookies.ts +++ b/packages/react-posthog-consent/src/shared/configureCookies.ts @@ -1,6 +1,6 @@ import Cookies from "universal-cookie"; -import { ConsentConfig } from "../types"; -import { addDays } from "../utils/addDays"; +import { ConsentConfig } from "./types"; +import { addDays } from "./utils/addDays"; export const configureCookies = (config: ConsentConfig) => { const requestedDate = addDays(config.cookie_expiration || 30); diff --git a/packages/react-posthog-consent/src/shared/getCookie.ts b/packages/react-posthog-consent/src/shared/getCookie.ts index a182d1b..1e8114e 100644 --- a/packages/react-posthog-consent/src/shared/getCookie.ts +++ b/packages/react-posthog-consent/src/shared/getCookie.ts @@ -1,5 +1,5 @@ -import { ConsentConfig, CookiePayload } from "../types"; -import { getCookiePrefix } from "../utils/getCookiePrefix"; +import { ConsentConfig, CookiePayload } from "./types"; +import { getCookiePrefix } from "./utils/getCookiePrefix"; import { configureCookies } from "./configureCookies"; export const getCookie = (config: ConsentConfig) => { diff --git a/packages/react-posthog-consent/src/shared/rejectConsent.ts b/packages/react-posthog-consent/src/shared/rejectConsent.ts index b6d9cf0..fffd9da 100644 --- a/packages/react-posthog-consent/src/shared/rejectConsent.ts +++ b/packages/react-posthog-consent/src/shared/rejectConsent.ts @@ -1,12 +1,12 @@ -import { ConsentConfig } from "../types"; -import { getCookiePrefix } from "../utils/getCookiePrefix"; +import { ConsentConfig } from "./types"; +import { getCookiePrefix } from "./utils/getCookiePrefix"; import { configureCookies } from "./configureCookies"; export const rejectConsent = (config: ConsentConfig) => { + //TODO: Add in Posthog Opt out, just incase const cookies = configureCookies(config); - cookies.set(`${getCookiePrefix(config.cookiePrefix)}_consent`, { - status: true, + status: false, timestamp: Date.now(), }); }; diff --git a/packages/react-posthog-consent/src/shared/triggerOptIn.ts b/packages/react-posthog-consent/src/shared/triggerOptIn.ts index ac2cef0..acc195e 100644 --- a/packages/react-posthog-consent/src/shared/triggerOptIn.ts +++ b/packages/react-posthog-consent/src/shared/triggerOptIn.ts @@ -1,9 +1,10 @@ -import { ConsentConfig, PostHog } from "../types"; +import { ConsentConfig, PostHog } from "./types"; export const triggerOptIn = ( posthog: PostHog | null, config: ConsentConfig ) => { + //TODO: Re-trigger opt-in capturing, with days left posthog?.opt_in_capturing(); if (config.enable_session_recording) { posthog?.startSessionRecording(); diff --git a/packages/react-posthog-consent/src/shared/triggerReset.ts b/packages/react-posthog-consent/src/shared/triggerReset.ts index 7c4648f..0e22e07 100644 --- a/packages/react-posthog-consent/src/shared/triggerReset.ts +++ b/packages/react-posthog-consent/src/shared/triggerReset.ts @@ -1,4 +1,4 @@ -import { ConsentConfig, PostHog } from "../types"; +import { ConsentConfig, PostHog } from "./types"; import { checkHasConsent } from "./checkHasConsent"; export const triggerReset = ( diff --git a/packages/react-posthog-consent/src/types.ts b/packages/react-posthog-consent/src/shared/types.ts similarity index 100% rename from packages/react-posthog-consent/src/types.ts rename to packages/react-posthog-consent/src/shared/types.ts diff --git a/packages/react-posthog-consent/src/utils/addDays.ts b/packages/react-posthog-consent/src/shared/utils/addDays.ts similarity index 100% rename from packages/react-posthog-consent/src/utils/addDays.ts rename to packages/react-posthog-consent/src/shared/utils/addDays.ts diff --git a/packages/react-posthog-consent/src/utils/getCookiePrefix.ts b/packages/react-posthog-consent/src/shared/utils/getCookiePrefix.ts similarity index 100% rename from packages/react-posthog-consent/src/utils/getCookiePrefix.ts rename to packages/react-posthog-consent/src/shared/utils/getCookiePrefix.ts diff --git a/packages/react-posthog-consent/src/vite/ConsentProvider.tsx b/packages/react-posthog-consent/src/vite/ConsentProvider.tsx index 451b430..b18f09f 100644 --- a/packages/react-posthog-consent/src/vite/ConsentProvider.tsx +++ b/packages/react-posthog-consent/src/vite/ConsentProvider.tsx @@ -1,11 +1,11 @@ -import React, { +import { ReactNode, PropsWithChildren, createContext, useEffect, useState, } from "react"; -import { ConsentConfig, ConsentContextType } from "../types"; +import { ConsentConfig, ConsentContextType } from "../shared/types"; import { usePostHogConsent } from "./usePostHogConsent"; export const ConsentContext = createContext({ diff --git a/packages/react-posthog-consent/src/vite/index.ts b/packages/react-posthog-consent/src/vite/index.ts index 2b5066b..e23a26d 100644 --- a/packages/react-posthog-consent/src/vite/index.ts +++ b/packages/react-posthog-consent/src/vite/index.ts @@ -1,3 +1,4 @@ export * from "./usePostHogConsent"; export * from "./ConsentProvider"; export * from "./useConsent"; +export * from "../shared/types"; diff --git a/packages/react-posthog-consent/src/vite/usePostHogConsent.ts b/packages/react-posthog-consent/src/vite/usePostHogConsent.ts index 4711a38..a3b5b31 100644 --- a/packages/react-posthog-consent/src/vite/usePostHogConsent.ts +++ b/packages/react-posthog-consent/src/vite/usePostHogConsent.ts @@ -1,5 +1,5 @@ import { useVitePostHog } from "vite-plugin-posthog/react"; -import { ConsentConfig } from "../types"; +import { ConsentConfig } from "../shared/types"; import { acceptConsent } from "../shared/acceptConsent"; import { checkHasConsent } from "../shared/checkHasConsent"; import { getCookie } from "../shared/getCookie"; diff --git a/packages/react-posthog-consent/tsconfig.json b/packages/react-posthog-consent/tsconfig.json index 0c4ae71..2d5f3cb 100644 --- a/packages/react-posthog-consent/tsconfig.json +++ b/packages/react-posthog-consent/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "jsx": "react", + "jsx": "react-jsx", "module": "ESNext", "target": "esnext", "moduleResolution": "Bundler",