add crisp.chat support widget
This commit is contained in:
parent
1d20180c69
commit
5e32136c83
5 changed files with 27 additions and 0 deletions
11
package-lock.json
generated
11
package-lock.json
generated
|
|
@ -26,6 +26,7 @@
|
||||||
"@types/recordrtc": "^5.6.11",
|
"@types/recordrtc": "^5.6.11",
|
||||||
"@upstash/qstash": "^0.3.6",
|
"@upstash/qstash": "^0.3.6",
|
||||||
"axios": "^1.3.5",
|
"axios": "^1.3.5",
|
||||||
|
"crisp-sdk-web": "^1.0.18",
|
||||||
"dayjs": "^1.11.7",
|
"dayjs": "^1.11.7",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"fix-webm-duration": "^1.0.5",
|
"fix-webm-duration": "^1.0.5",
|
||||||
|
|
@ -3112,6 +3113,11 @@
|
||||||
"url": "https://github.com/sponsors/mesqueeb"
|
"url": "https://github.com/sponsors/mesqueeb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/crisp-sdk-web": {
|
||||||
|
"version": "1.0.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/crisp-sdk-web/-/crisp-sdk-web-1.0.18.tgz",
|
||||||
|
"integrity": "sha512-QjmtIY/GOhQenW9liswMAhzaZUKTn8JQjqLZkzMcnhdm3AlrMB83r2gIBUOxSZmSL80K3pl8U1ATadpC0ImEeA=="
|
||||||
|
},
|
||||||
"node_modules/cross-spawn": {
|
"node_modules/cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||||
|
|
@ -9438,6 +9444,11 @@
|
||||||
"is-what": "^4.1.8"
|
"is-what": "^4.1.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"crisp-sdk-web": {
|
||||||
|
"version": "1.0.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/crisp-sdk-web/-/crisp-sdk-web-1.0.18.tgz",
|
||||||
|
"integrity": "sha512-QjmtIY/GOhQenW9liswMAhzaZUKTn8JQjqLZkzMcnhdm3AlrMB83r2gIBUOxSZmSL80K3pl8U1ATadpC0ImEeA=="
|
||||||
|
},
|
||||||
"cross-spawn": {
|
"cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@
|
||||||
"@types/recordrtc": "^5.6.11",
|
"@types/recordrtc": "^5.6.11",
|
||||||
"@upstash/qstash": "^0.3.6",
|
"@upstash/qstash": "^0.3.6",
|
||||||
"axios": "^1.3.5",
|
"axios": "^1.3.5",
|
||||||
|
"crisp-sdk-web": "^1.0.18",
|
||||||
"dayjs": "^1.11.7",
|
"dayjs": "^1.11.7",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"fix-webm-duration": "^1.0.5",
|
"fix-webm-duration": "^1.0.5",
|
||||||
|
|
|
||||||
11
src/components/CrispChat.tsx
Normal file
11
src/components/CrispChat.tsx
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { useEffect } from "react";
|
||||||
|
import { Crisp } from "crisp-sdk-web";
|
||||||
|
import { env } from "~/env.mjs";
|
||||||
|
|
||||||
|
export default function CrispChat() {
|
||||||
|
useEffect(() => {
|
||||||
|
Crisp.configure(env.NEXT_PUBLIC_CRISP_WEBSITE_ID);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
@ -41,6 +41,7 @@ const server = z.object({
|
||||||
const client = z.object({
|
const client = z.object({
|
||||||
// NEXT_PUBLIC_CLIENTVAR: z.string().min(1),
|
// NEXT_PUBLIC_CLIENTVAR: z.string().min(1),
|
||||||
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: z.string(),
|
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: z.string(),
|
||||||
|
NEXT_PUBLIC_CRISP_WEBSITE_ID: z.string(),
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -70,6 +71,7 @@ const processEnv = {
|
||||||
STRIPE_WEBHOOK_SECRET: process.env.STRIPE_WEBHOOK_SECRET,
|
STRIPE_WEBHOOK_SECRET: process.env.STRIPE_WEBHOOK_SECRET,
|
||||||
STRIPE_MONTHLY_PRICE_ID: process.env.STRIPE_MONTHLY_PRICE_ID,
|
STRIPE_MONTHLY_PRICE_ID: process.env.STRIPE_MONTHLY_PRICE_ID,
|
||||||
STRIPE_ANNUAL_PRICE_ID: process.env.STRIPE_ANNUAL_PRICE_ID,
|
STRIPE_ANNUAL_PRICE_ID: process.env.STRIPE_ANNUAL_PRICE_ID,
|
||||||
|
NEXT_PUBLIC_CRISP_WEBSITE_ID: process.env.NEXT_PUBLIC_CRISP_WEBSITE_ID,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Don't touch the part below
|
// Don't touch the part below
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { SessionProvider } from "next-auth/react";
|
||||||
import { api } from "~/utils/api";
|
import { api } from "~/utils/api";
|
||||||
|
|
||||||
import "~/styles/globals.css";
|
import "~/styles/globals.css";
|
||||||
|
import CrispChat from "~/components/CrispChat";
|
||||||
|
|
||||||
const MyApp: AppType<{ session: Session | null }> = ({
|
const MyApp: AppType<{ session: Session | null }> = ({
|
||||||
Component,
|
Component,
|
||||||
|
|
@ -13,6 +14,7 @@ const MyApp: AppType<{ session: Session | null }> = ({
|
||||||
return (
|
return (
|
||||||
<SessionProvider session={session}>
|
<SessionProvider session={session}>
|
||||||
<Component {...pageProps} />
|
<Component {...pageProps} />
|
||||||
|
<CrispChat />
|
||||||
</SessionProvider>
|
</SessionProvider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue