import React, { ChangeEvent, FormEvent, useState } from 'react' import { Button, Card, Form } from 'react-bootstrap' import { Trans, useTranslation } from 'react-i18next' import { useSelector } from 'react-redux' import { updateDisplayName } from '../../../../../api/user' import { ApplicationState } from '../../../../../redux' import { getAndSetUser } from '../../../../../utils/apiUtils' export const ProfileDisplayName: React.FC = () => { const { t } = useTranslation() const user = useSelector((state: ApplicationState) => state.user) const [submittable, setSubmittable] = useState(false) const [error, setError] = useState(false) const [displayName, setDisplayName] = useState(user.name) const regexInvalidDisplayName = /^\s*$/ const changeNameField = (event: ChangeEvent) => { setSubmittable(!regexInvalidDisplayName.test(event.target.value)) setDisplayName(event.target.value) } const doAsyncChange = async () => { await updateDisplayName(displayName) await getAndSetUser() } const changeNameSubmit = (event: FormEvent) => { doAsyncChange().catch(() => setError(true)) event.preventDefault() } return (
) }