diff --git a/packages/app-store/apps.browser.generated.tsx b/packages/app-store/apps.browser.generated.tsx index e623dbc919..69926275a2 100644 --- a/packages/app-store/apps.browser.generated.tsx +++ b/packages/app-store/apps.browser.generated.tsx @@ -28,6 +28,7 @@ export const EventTypeAddonMap = { giphy: dynamic(() => import("./giphy/components/EventTypeAppCardInterface")), gtm: dynamic(() => import("./gtm/components/EventTypeAppCardInterface")), hubspot: dynamic(() => import("./hubspot/components/EventTypeAppCardInterface")), + insihts: dynamic(() => import("./insihts/components/EventTypeAppCardInterface")), matomo: dynamic(() => import("./matomo/components/EventTypeAppCardInterface")), metapixel: dynamic(() => import("./metapixel/components/EventTypeAppCardInterface")), "mock-payment-app": dynamic(() => import("./mock-payment-app/components/EventTypeAppCardInterface")), diff --git a/packages/app-store/apps.keys-schemas.generated.ts b/packages/app-store/apps.keys-schemas.generated.ts index ddb2df9c83..316bb0b434 100644 --- a/packages/app-store/apps.keys-schemas.generated.ts +++ b/packages/app-store/apps.keys-schemas.generated.ts @@ -15,6 +15,7 @@ import { appKeysSchema as googlecalendar_zod_ts } from "./googlecalendar/zod"; import { appKeysSchema as googlevideo_zod_ts } from "./googlevideo/zod"; import { appKeysSchema as gtm_zod_ts } from "./gtm/zod"; import { appKeysSchema as hubspot_zod_ts } from "./hubspot/zod"; +import { appKeysSchema as insihts_zod_ts } from "./insihts/zod"; import { appKeysSchema as intercom_zod_ts } from "./intercom/zod"; import { appKeysSchema as jelly_zod_ts } from "./jelly/zod"; import { appKeysSchema as jitsivideo_zod_ts } from "./jitsivideo/zod"; @@ -63,6 +64,7 @@ export const appKeysSchemas = { googlevideo: googlevideo_zod_ts, gtm: gtm_zod_ts, hubspot: hubspot_zod_ts, + insihts: insihts_zod_ts, intercom: intercom_zod_ts, jelly: jelly_zod_ts, jitsivideo: jitsivideo_zod_ts, diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index 85f73b831c..0a50a22e07 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -39,6 +39,7 @@ import horizon_workrooms_config_json from "./horizon-workrooms/config.json"; import { metadata as hubspot__metadata_ts } from "./hubspot/_metadata"; import { metadata as huddle01video__metadata_ts } from "./huddle01video/_metadata"; import ics_feedcalendar_config_json from "./ics-feedcalendar/config.json"; +import insihts_config_json from "./insihts/config.json"; import intercom_config_json from "./intercom/config.json"; import jelly_config_json from "./jelly/config.json"; import { metadata as jitsivideo__metadata_ts } from "./jitsivideo/_metadata"; @@ -139,6 +140,7 @@ export const appStoreMetadata = { hubspot: hubspot__metadata_ts, huddle01video: huddle01video__metadata_ts, "ics-feedcalendar": ics_feedcalendar_config_json, + insihts: insihts_config_json, intercom: intercom_config_json, jelly: jelly_config_json, jitsivideo: jitsivideo__metadata_ts, diff --git a/packages/app-store/apps.schemas.generated.ts b/packages/app-store/apps.schemas.generated.ts index 69b6f7c09e..1a5cd93dcf 100644 --- a/packages/app-store/apps.schemas.generated.ts +++ b/packages/app-store/apps.schemas.generated.ts @@ -15,6 +15,7 @@ import { appDataSchema as googlecalendar_zod_ts } from "./googlecalendar/zod"; import { appDataSchema as googlevideo_zod_ts } from "./googlevideo/zod"; import { appDataSchema as gtm_zod_ts } from "./gtm/zod"; import { appDataSchema as hubspot_zod_ts } from "./hubspot/zod"; +import { appDataSchema as insihts_zod_ts } from "./insihts/zod"; import { appDataSchema as intercom_zod_ts } from "./intercom/zod"; import { appDataSchema as jelly_zod_ts } from "./jelly/zod"; import { appDataSchema as jitsivideo_zod_ts } from "./jitsivideo/zod"; @@ -63,6 +64,7 @@ export const appDataSchemas = { googlevideo: googlevideo_zod_ts, gtm: gtm_zod_ts, hubspot: hubspot_zod_ts, + insihts: insihts_zod_ts, intercom: intercom_zod_ts, jelly: jelly_zod_ts, jitsivideo: jitsivideo_zod_ts, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index 20c8b158e4..5e7fda0edf 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -39,6 +39,7 @@ export const apiHandlers = { hubspot: import("./hubspot/api"), huddle01video: import("./huddle01video/api"), "ics-feedcalendar": import("./ics-feedcalendar/api"), + insihts: import("./insihts/api"), intercom: import("./intercom/api"), jelly: import("./jelly/api"), jitsivideo: import("./jitsivideo/api"), diff --git a/packages/app-store/bookerApps.metadata.generated.ts b/packages/app-store/bookerApps.metadata.generated.ts index acd6bf8dc6..061c3a216b 100644 --- a/packages/app-store/bookerApps.metadata.generated.ts +++ b/packages/app-store/bookerApps.metadata.generated.ts @@ -18,6 +18,7 @@ import { metadata as googlevideo__metadata_ts } from "./googlevideo/_metadata"; import gtm_config_json from "./gtm/config.json"; import horizon_workrooms_config_json from "./horizon-workrooms/config.json"; import { metadata as huddle01video__metadata_ts } from "./huddle01video/_metadata"; +import insihts_config_json from "./insihts/config.json"; import jelly_config_json from "./jelly/config.json"; import { metadata as jitsivideo__metadata_ts } from "./jitsivideo/_metadata"; import matomo_config_json from "./matomo/config.json"; @@ -64,6 +65,7 @@ export const appStoreMetadata = { gtm: gtm_config_json, "horizon-workrooms": horizon_workrooms_config_json, huddle01video: huddle01video__metadata_ts, + insihts: insihts_config_json, jelly: jelly_config_json, jitsivideo: jitsivideo__metadata_ts, matomo: matomo_config_json, diff --git a/packages/app-store/insihts/DESCRIPTION.md b/packages/app-store/insihts/DESCRIPTION.md new file mode 100644 index 0000000000..d07280ea4c --- /dev/null +++ b/packages/app-store/insihts/DESCRIPTION.md @@ -0,0 +1,6 @@ +--- +items: + - 1.png +--- + +{DESCRIPTION} diff --git a/packages/app-store/insihts/api/add.ts b/packages/app-store/insihts/api/add.ts new file mode 100644 index 0000000000..7603de54da --- /dev/null +++ b/packages/app-store/insihts/api/add.ts @@ -0,0 +1,16 @@ +import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; +import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; + +import appConfig from "../config.json"; + +const handler: AppDeclarativeHandler = { + appType: appConfig.type, + variant: appConfig.variant, + slug: appConfig.slug, + supportsMultipleInstalls: false, + handlerType: "add", + createCredential: ({ appType, user, slug, teamId }) => + createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), +}; + +export default handler; diff --git a/packages/app-store/insihts/api/index.ts b/packages/app-store/insihts/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/insihts/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/insihts/components/EventTypeAppCardInterface.tsx b/packages/app-store/insihts/components/EventTypeAppCardInterface.tsx new file mode 100644 index 0000000000..7fa7a7048e --- /dev/null +++ b/packages/app-store/insihts/components/EventTypeAppCardInterface.tsx @@ -0,0 +1,37 @@ +import { useAppContextWithSchema } from "@calcom/app-store/EventTypeAppContext"; +import AppCard from "@calcom/app-store/_components/AppCard"; +import useIsAppEnabled from "@calcom/app-store/_utils/useIsAppEnabled"; +import type { EventTypeAppCardComponent } from "@calcom/app-store/types"; +import { TextField } from "@calcom/ui"; + +import type { appDataSchema } from "../zod"; + +const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app, eventType }) { + const { getAppData, setAppData, disabled } = useAppContextWithSchema(); + const siteId = getAppData("SITE_ID"); + const { enabled, updateEnabled } = useIsAppEnabled(app); + + return ( + { + updateEnabled(e); + }} + switchChecked={enabled} + teamId={eventType.team?.id || undefined}> +
+ { + setAppData("SITE_ID", e.target.value); + }} + /> +
+
+ ); +}; + +export default EventTypeAppCard; diff --git a/packages/app-store/insihts/config.json b/packages/app-store/insihts/config.json new file mode 100644 index 0000000000..19dc95d1fd --- /dev/null +++ b/packages/app-store/insihts/config.json @@ -0,0 +1,28 @@ +{ + "name": "Insihts", + "slug": "insihts", + "type": "insihts_analytics", + "logo": "icon.svg", + "url": "https://cal.com/", + "variant": "analytics", + "categories": ["analytics"], + "publisher": "Cal.com, Inc.", + "email": "help@cal.com", + "description": "Insihts is an all-in-one platform for businesses looking to track user behavior, optimize workflows, and make data-driven decisions. Whether you are a marketer, product manager, or part of a customer success team, Insihts provides the tools you need to succeed.", + "extendsFeature": "EventType", + "appData": { + "tag": { + "scripts": [ + { + "src": "https://collector.insihts.com/script.js", + "attrs": { + "data-website-id": "{SITE_ID}" + } + } + ] + } + }, + "isTemplate": false, + "__createdUsingCli": true, + "__template": "booking-pages-tag" +} diff --git a/packages/app-store/insihts/index.ts b/packages/app-store/insihts/index.ts new file mode 100644 index 0000000000..d7f3602204 --- /dev/null +++ b/packages/app-store/insihts/index.ts @@ -0,0 +1 @@ +export * as api from "./api"; diff --git a/packages/app-store/insihts/package.json b/packages/app-store/insihts/package.json new file mode 100644 index 0000000000..fa7e6bdadd --- /dev/null +++ b/packages/app-store/insihts/package.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "private": true, + "name": "@calcom/insihts", + "version": "0.0.0", + "main": "./index.ts", + "dependencies": { + "@calcom/lib": "*" + }, + "devDependencies": { + "@calcom/types": "*" + }, + "description": "Insihts is an all-in-one platform for businesses looking to track user behavior, optimize workflows, and make data-driven decisions. Whether you are a marketer, product manager, or part of a customer success team, Insihts provides the tools you need to succeed." +} diff --git a/packages/app-store/insihts/static/1.png b/packages/app-store/insihts/static/1.png new file mode 100644 index 0000000000..d3ee852bbc Binary files /dev/null and b/packages/app-store/insihts/static/1.png differ diff --git a/packages/app-store/insihts/static/icon.svg b/packages/app-store/insihts/static/icon.svg new file mode 100644 index 0000000000..d27f747f88 --- /dev/null +++ b/packages/app-store/insihts/static/icon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/app-store/insihts/zod.ts b/packages/app-store/insihts/zod.ts new file mode 100644 index 0000000000..83716cb0a5 --- /dev/null +++ b/packages/app-store/insihts/zod.ts @@ -0,0 +1,12 @@ +import { z } from "zod"; + +import { eventTypeAppCardZod } from "@calcom/app-store/eventTypeAppCardZod"; + +export const appDataSchema = eventTypeAppCardZod.merge( + z.object({ + SITE_ID: z.string().optional(), + SCRIPT_URL: z.string().optional(), + }) +); + +export const appKeysSchema = z.object({});