diff --git a/apps/formbricks-com/components/docs/DocsFeedback.tsx b/apps/formbricks-com/components/docs/DocsFeedback.tsx index 99ac645b10..719fb06be4 100644 --- a/apps/formbricks-com/components/docs/DocsFeedback.tsx +++ b/apps/formbricks-com/components/docs/DocsFeedback.tsx @@ -22,10 +22,10 @@ export const DocsFeedback: React.FC = () => { return (
{!sharedFeedback ? ( -
+
Was this page helpful? -
+
{["Yes 👍", " No 👎"].map((option) => ( = ({ children, meta }) => { )}
-

Need help?

+

Need help? 🤓

Join our Discord and ask away. We're happy to help where we can!

diff --git a/apps/formbricks-com/components/dummyUI/CTAQuestion.tsx b/apps/formbricks-com/components/dummyUI/CTAQuestion.tsx new file mode 100644 index 0000000000..a6e3f2bf43 --- /dev/null +++ b/apps/formbricks-com/components/dummyUI/CTAQuestion.tsx @@ -0,0 +1,45 @@ +import type { CTAQuestion } from "@formbricks/types/questions"; +import Headline from "./Headline"; +import HtmlBody from "./HtmlBody"; + +interface CTAQuestionProps { + question: CTAQuestion; + onSubmit: (data: { [x: string]: any }) => void; + lastQuestion: boolean; + brandColor: string; +} + +export default function CTAQuestion({ question, onSubmit, lastQuestion, brandColor }: CTAQuestionProps) { + return ( +
+ + + +
+
+ {!question.required && ( + + )} + +
+
+ ); +} diff --git a/apps/formbricks-com/components/dummyUI/ContentWrapper.tsx b/apps/formbricks-com/components/dummyUI/ContentWrapper.tsx new file mode 100644 index 0000000000..60d1b9e7c1 --- /dev/null +++ b/apps/formbricks-com/components/dummyUI/ContentWrapper.tsx @@ -0,0 +1,10 @@ +import clsx from "clsx"; + +interface ContentWrapperProps { + children: React.ReactNode; + className?: string; +} + +export default function ContentWrapper({ children, className }: ContentWrapperProps) { + return
{children}
; +} diff --git a/apps/formbricks-com/components/dummyUI/DemoPreview.tsx b/apps/formbricks-com/components/dummyUI/DemoPreview.tsx new file mode 100644 index 0000000000..47203d5eee --- /dev/null +++ b/apps/formbricks-com/components/dummyUI/DemoPreview.tsx @@ -0,0 +1,44 @@ +// DemoPreview.tsx +import React, { useEffect, useState } from "react"; +import PreviewSurvey from "./PreviewSurvey"; +import { findTemplateByName } from "./templates"; +import type { Template } from "@formbricks/types/templates"; + +interface DemoPreviewProps { + template: string; +} + +const DemoPreview: React.FC = ({ template }) => { + const [activeQuestionId, setActiveQuestionId] = useState(null); + const selectedTemplate: Template | undefined = findTemplateByName(template); + + useEffect(() => { + if (selectedTemplate) { + setActiveQuestionId(selectedTemplate.preset.questions[0].id); + } + }, [selectedTemplate]); + + if (!selectedTemplate) { + return
Template not found.
; + } + + return ( +
+
+

Preview

+
+ {selectedTemplate && ( + + )} +
+
+
+ ); +}; + +export default DemoPreview; diff --git a/apps/formbricks-com/components/dummyUI/DemoView.tsx b/apps/formbricks-com/components/dummyUI/DemoView.tsx new file mode 100644 index 0000000000..b9928313d2 --- /dev/null +++ b/apps/formbricks-com/components/dummyUI/DemoView.tsx @@ -0,0 +1,41 @@ +import type { Template } from "@formbricks/types/templates"; +import { useEffect, useState } from "react"; +import PreviewSurvey from "./PreviewSurvey"; +import TemplateList from "./TemplateList"; +import { templates } from "./templates"; + +export default function SurveyTemplatesPage({}) { + const [activeTemplate, setActiveTemplate] = useState