From ba0c62e8a0c50e05231718ac8cd6ce9f40aaf4a9 Mon Sep 17 00:00:00 2001 From: Gabe Kangas Date: Wed, 14 Dec 2022 11:53:13 -0800 Subject: [PATCH] Support different link validation methods for platforms. Closes #2449 --- web/components/config/EditSocialLinks.tsx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/web/components/config/EditSocialLinks.tsx b/web/components/config/EditSocialLinks.tsx index a7c516923..a9eb39869 100644 --- a/web/components/config/EditSocialLinks.tsx +++ b/web/components/config/EditSocialLinks.tsx @@ -13,7 +13,12 @@ import { OTHER_SOCIAL_HANDLE_OPTION, } from '../../utils/config-constants'; import { SocialHandle, UpdateArgs } from '../../types/config-section'; -import isValidUrl, { DEFAULT_TEXTFIELD_URL_PATTERN } from '../../utils/urls'; +import { + isValidMatrixAccount, + isValidAccount, + isValidUrl, + DEFAULT_TEXTFIELD_URL_PATTERN, +} from '../../utils/urls'; import { TextField } from './TextField'; import { createInputStatus, STATUS_ERROR, STATUS_SUCCESS } from '../../utils/input-statuses'; import { FormStatusIndicator } from './FormStatusIndicator'; @@ -270,8 +275,19 @@ export const EditSocialLinks: FC = () => { }, ]; + const isValid = (url: string, platform: string) => { + if (platform === 'xmpp') { + return isValidAccount(url, 'xmpp'); + } + if (platform === 'matrix') { + return isValidMatrixAccount(url); + } + + return isValidUrl(url); + }; + const okButtonProps = { - disabled: !isValidUrl(modalDataState.url), + disabled: !isValid(modalDataState.url, modalDataState.platform), }; const otherField = (