diff --git a/src/Pages/StatusPage/Create/Components/Tabs/Settings.jsx b/src/Pages/StatusPage/Create/Components/Tabs/Settings.jsx index 14f7ac20c..0fdf1a9b8 100644 --- a/src/Pages/StatusPage/Create/Components/Tabs/Settings.jsx +++ b/src/Pages/StatusPage/Create/Components/Tabs/Settings.jsx @@ -73,6 +73,8 @@ const TabSettings = ({ label="Your status page address" value={form.url} onChange={handleFormChange} + helperText={errors["url"]} + error={errors["url"] ? true : false} /> diff --git a/src/Validation/validation.js b/src/Validation/validation.js index a243b37e8..ed0aaf6b8 100644 --- a/src/Validation/validation.js +++ b/src/Validation/validation.js @@ -222,7 +222,14 @@ const statusPageValidation = joi.object({ .string() .trim() .messages({ "string.empty": "Company name is required." }), - url: joi.string().trim().messages({ "string.empty": "URL is required." }), + url: joi + .string() + .pattern(/^[a-zA-Z0-9_-]+$/) // Only allow alphanumeric, underscore, and hyphen + .required() + .messages({ + "string.pattern.base": + "URL can only contain letters, numbers, underscores, and hyphens", + }), timezone: joi.string().trim().messages({ "string.empty": "Timezone is required." }), color: joi.string().trim().messages({ "string.empty": "Color is required." }), theme: joi.string(),