diff --git a/src/pages/admin/AdminContestsList/CreateContestForm.tsx b/src/pages/admin/AdminContestsList/CreateContestForm.tsx index 69f16e0a..d4e1c6b5 100644 --- a/src/pages/admin/AdminContestsList/CreateContestForm.tsx +++ b/src/pages/admin/AdminContestsList/CreateContestForm.tsx @@ -73,6 +73,16 @@ export const CreateContestForm: React.FC = ({ const [debouncedProtocolTwitter] = useDebounce(protocolTwitter, 300) const { data: twitterAccount } = useAdminTwitterAccount(debouncedProtocolTwitter) + useEffect(() => { + const pattern = /^(?:https?:\/\/)?(?:twitter\.com\/)?(?:x\.com\/)?(\w*)(?:.*)$/ + const results = pattern.exec(debouncedProtocolTwitter) + const parsedValue = (!!results && results?.length) > 1 ? results?.[1] : null + + if (parsedValue && parsedValue !== "" && parsedValue !== debouncedProtocolTwitter) { + setProtocolTwitter(parsedValue) + } + }, [setProtocolTwitter, debouncedProtocolTwitter]) + const [contestTitle, setContestTitle] = useState("") const [contestShortDescription, setShortDescription] = useState("") const [contestNSLOC, setContestNSLOC] = useState(contest?.nSLOC?.toString() ?? "")