Skip to content

Commit

Permalink
fix: added images as reusable component, tweaked rating (formbricks#1672
Browse files Browse the repository at this point in the history
)
  • Loading branch information
jobenjada authored Nov 23, 2023
1 parent 3391957 commit a3fd664
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 53 deletions.
13 changes: 13 additions & 0 deletions packages/surveys/src/components/general/QuestionImage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
interface QuestionImageProps {
imgUrl: string;
altText?: string;
}

export default function QuestionImage({ imgUrl, altText = "Image" }: QuestionImageProps) {
return (
<div className="mb-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={imgUrl} alt={altText} className="mb-4 rounded-md" />
</div>
);
}
8 changes: 2 additions & 6 deletions packages/surveys/src/components/questions/CTAQuestion.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import HtmlBody from "@/components/general/HtmlBody";
import { TResponseData } from "@formbricks/types/responses";
Expand All @@ -24,12 +25,7 @@ export default function CTAQuestion({
}: CTAQuestionProps) {
return (
<div>
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<HtmlBody htmlString={question.html} questionId={question.id} />

Expand Down
12 changes: 4 additions & 8 deletions packages/surveys/src/components/questions/ConsentQuestion.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { TResponseData } from "@formbricks/types/responses";
import type { TSurveyConsentQuestion } from "@formbricks/types/surveys";
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import HtmlBody from "@/components/general/HtmlBody";
import { TResponseData } from "@formbricks/types/responses";
import type { TSurveyConsentQuestion } from "@formbricks/types/surveys";

interface ConsentQuestionProps {
question: TSurveyConsentQuestion;
Expand All @@ -26,12 +27,7 @@ export default function ConsentQuestion({
}: ConsentQuestionProps) {
return (
<div>
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<HtmlBody htmlString={question.html || ""} questionId={question.id} />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import Subheader from "@/components/general/Subheader";
import { cn, shuffleQuestions } from "@/lib/utils";
Expand Down Expand Up @@ -91,12 +92,7 @@ export default function MultipleChoiceMultiQuestion({
onSubmit({ [question.id]: newValue });
}}
className="w-full">
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<Subheader subheader={question.subheader} questionId={question.id} />
<div className="mt-4">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import Subheader from "@/components/general/Subheader";
import { cn, shuffleQuestions } from "@/lib/utils";
Expand Down Expand Up @@ -60,12 +61,7 @@ export default function MultipleChoiceSingleQuestion({
onSubmit({ [question.id]: value });
}}
className="w-full">
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<Subheader subheader={question.subheader} questionId={question.id} />
<div className="mt-4">
Expand Down
8 changes: 2 additions & 6 deletions packages/surveys/src/components/questions/NPSQuestion.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import Subheader from "@/components/general/Subheader";
import { cn } from "@/lib/utils";
Expand Down Expand Up @@ -31,12 +32,7 @@ export default function NPSQuestion({
e.preventDefault();
onSubmit({ [question.id]: value });
}}>
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<Subheader subheader={question.subheader} questionId={question.id} />
<div className="my-4">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import Subheader from "@/components/general/Subheader";
import { TResponseData } from "@formbricks/types/responses";
Expand Down Expand Up @@ -53,12 +54,7 @@ export default function OpenTextQuestion({
// }
}}
className="w-full">
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<Subheader subheader={question.subheader} questionId={question.id} />
<div className="mt-4">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import Subheader from "@/components/general/Subheader";
import { cn } from "@/lib/utils";
Expand Down Expand Up @@ -82,12 +83,7 @@ export default function PictureSelectionQuestion({
onSubmit({ [question.id]: value });
}}
className="w-full">
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<Subheader subheader={question.subheader} questionId={question.id} />
<div className="mt-4">
Expand Down
14 changes: 5 additions & 9 deletions packages/surveys/src/components/questions/RatingQuestion.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BackButton } from "@/components/buttons/BackButton";
import SubmitButton from "@/components/buttons/SubmitButton";
import QuestionImage from "@/components/general/QuestionImage";
import Headline from "@/components/general/Headline";
import { cn } from "@/lib/utils";
import { TResponseData } from "@formbricks/types/responses";
Expand Down Expand Up @@ -68,15 +69,10 @@ export default function RatingQuestion({
onSubmit({ [question.id]: value });
}}
className="w-full">
{question.imageUrl && (
<div className="my-4 rounded-md">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src={question.imageUrl} alt="question-image" className={"my-4 rounded-md"} />
</div>
)}
{question.imageUrl && <QuestionImage imgUrl={question.imageUrl} />}
<Headline headline={question.headline} questionId={question.id} required={question.required} />
<Subheader subheader={question.subheader} questionId={question.id} />
<div className="my-4">
<div className="mb-4 mt-8">
<fieldset>
<legend className="sr-only">Choices</legend>
<div className="flex">
Expand Down Expand Up @@ -124,7 +120,7 @@ export default function RatingQuestion({
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
className="h-6 max-h-full w-6 ">
className="h-8 max-h-full w-8 ">
<path
fillRule="evenodd"
d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z"
Expand All @@ -139,7 +135,7 @@ export default function RatingQuestion({
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
className="h-6 max-h-full w-6">
className="h-8 max-h-full w-8">
<path
stroke-linecap="round"
stroke-linejoin="round"
Expand Down

0 comments on commit a3fd664

Please sign in to comment.