From bf6ed3576c7cbfe2d01e6522804e2b98e892e3ed Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Fri, 8 Sep 2023 14:01:56 +0900 Subject: [PATCH] feat: Add option to customize link survey url using NEXT_PUBLIC_SURVEY_BASE_URL (#787) --- apps/formbricks-com/next.config.mjs | 12 +++++++++++ apps/formbricks-com/tailwind.config.ts | 12 ++++++++++- .../surveys/SurveyDropDownMenu.tsx | 9 ++++---- .../(analysis)/summary/LinkSurveyModal.tsx | 21 ++++++++++--------- apps/web/env.mjs | 1 + apps/web/next.config.mjs | 3 +++ packages/lib/constants.ts | 4 ++++ turbo.json | 1 + 8 files changed, 48 insertions(+), 15 deletions(-) diff --git a/apps/formbricks-com/next.config.mjs b/apps/formbricks-com/next.config.mjs index db00c053ce..d88e099cfd 100644 --- a/apps/formbricks-com/next.config.mjs +++ b/apps/formbricks-com/next.config.mjs @@ -132,6 +132,18 @@ const nextConfig = { }, ]; }, + async rewrites() { + return { + fallback: [ + // These rewrites are checked after both pages/public files + // and dynamic routes are checked + { + source: "/:path*", + destination: `https://app.formbricks.com/s/:path*`, + }, + ], + }; + }, }; export default withPlausibleProxy({ customDomain: "https://plausible.formbricks.com" })( diff --git a/apps/formbricks-com/tailwind.config.ts b/apps/formbricks-com/tailwind.config.ts index c23c2c0de5..8ed8a85ae8 100644 --- a/apps/formbricks-com/tailwind.config.ts +++ b/apps/formbricks-com/tailwind.config.ts @@ -6,7 +6,17 @@ import defaultTheme from "tailwindcss/defaultTheme"; import typographyStyles from "./typography"; export default { - content: ["./**/*.{js,mjs,jsx,ts,tsx,mdx}"], + trailingSlash: true, + content: [ + // app content + "./app/**/*.{js,mjs,jsx,ts,tsx,mdx}", // Note the addition of the `app` directory. + "./pages/**/*.{js,mjs,jsx,ts,tsx,mdx}", + "./components/**/*.{js,mjs,jsx,ts,tsx,mdx}", + "./lib/**/*.{js,mjs,jsx,ts,tsx,mdx}", + "./mdx/**/*.{js,mjs,jsx,ts,tsx,mdx}", + // include packages if not transpiling + "../../packages/ui/components/**/*.{js,ts,jsx,tsx}", + ], darkMode: "class", theme: { fontSize: { diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/SurveyDropDownMenu.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/SurveyDropDownMenu.tsx index 5b008a787c..047317a96a 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/SurveyDropDownMenu.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/SurveyDropDownMenu.tsx @@ -14,6 +14,7 @@ import { DropdownMenuTrigger, } from "@/components/shared/DropdownMenu"; import LoadingSpinner from "@/components/shared/LoadingSpinner"; +import { SURVEY_BASE_URL } from "@formbricks/lib/constants"; import type { TEnvironment } from "@formbricks/types/v1/environment"; import type { TSurveyWithAnalytics } from "@formbricks/types/v1/surveys"; import { @@ -27,7 +28,7 @@ import { } from "@heroicons/react/24/solid"; import Link from "next/link"; import { useRouter } from "next/navigation"; -import { useState } from "react"; +import { useMemo, useState } from "react"; import toast from "react-hot-toast"; interface SurveyDropDownMenuProps { @@ -47,6 +48,8 @@ export default function SurveyDropDownMenu({ const [loading, setLoading] = useState(false); const router = useRouter(); + const surveyUrl = useMemo(() => SURVEY_BASE_URL + survey.id, [survey]); + const handleDeleteSurvey = async (survey) => { setLoading(true); try { @@ -161,9 +164,7 @@ export default function SurveyDropDownMenu({