fix: Validate button link input to only accept URLs #3258 (#3268)

Co-authored-by: Dhruwang <dhruwangjariwala18@gmail.com>
This commit is contained in:
Satyanarayan Prashar
2024-10-03 12:09:01 +05:30
committed by GitHub
parent 0b9d76e243
commit 1c10679b71
2 changed files with 7 additions and 3 deletions

View File

@@ -178,6 +178,11 @@ export const isEndingCardValid = (
surveyLanguages: TSurveyLanguage[]
) => {
if (card.type === "endScreen") {
const parseResult = z.string().url().safeParse(card.buttonLink);
if (card.buttonLabel !== undefined && !parseResult.success) {
return false;
}
return (
isContentValid(card.headline, surveyLanguages) &&
isContentValid(card.subheader, surveyLanguages) &&
@@ -188,7 +193,6 @@ export const isEndingCardValid = (
if (parseResult.success) {
return card.label?.trim() !== "";
} else {
toast.error("Invalid Redirect Url in Ending card");
return false;
}
}

View File

@@ -29,7 +29,7 @@ export const ZSurveyEndScreenCard = ZSurveyEndingBase.extend({
headline: ZI18nString.optional(),
subheader: ZI18nString.optional(),
buttonLabel: ZI18nString.optional(),
buttonLink: z.string().optional(),
buttonLink: z.string().url("Invalid Button Url in Ending card").optional(),
imageUrl: z.string().optional(),
videoUrl: z.string().optional(),
});
@@ -38,7 +38,7 @@ export type TSurveyEndScreenCard = z.infer<typeof ZSurveyEndScreenCard>;
export const ZSurveyRedirectUrlCard = ZSurveyEndingBase.extend({
type: z.literal("redirectToUrl"),
url: z.string().url("Invalid redirect Url in Ending card").optional(),
url: z.string().url("Invalid Redirect Url in Ending card").optional(),
label: z.string().optional(),
});