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",