diff --git a/src/components/support/RequestInstitution.js b/src/components/support/RequestInstitution.js deleted file mode 100644 index dbf5eab530..0000000000 --- a/src/components/support/RequestInstitution.js +++ /dev/null @@ -1,278 +0,0 @@ -import React, { useState, useEffect, useRef } from 'react' -import PropTypes from 'prop-types' -import _isEmpty from 'lodash/isEmpty' - -import { useTokens } from '@kyper/tokenprovider' -import { Text } from '@mxenabled/mxui' -import { TextField } from 'src/privacy/input' -import { Button } from '@mui/material' - -import { __ } from 'src/utilities/Intl' - -import { SlideDown } from 'src/components/SlideDown' -import { PrivateAndSecure } from 'src/components/PrivateAndSecure' - -import { getDelay } from 'src/utilities/getDelay' -import { fadeOut } from 'src/utilities/Animation' -import { AriaLive } from 'src/components/AriaLive' -import { useForm } from 'src/hooks/useForm' -import useAnalyticsPath from 'src/hooks/useAnalyticsPath' -import { PageviewInfo } from 'src/const/Analytics' -import { useApi } from 'src/context/ApiContext' -import RequiredFieldNote from 'src/components/RequiredFieldNote' - -export const RequestInstitution = React.forwardRef((props, requestInstitutionRef) => { - const { handleClose, handleTicketSuccess, user } = props - useAnalyticsPath(...PageviewInfo.CONNECT_SUPPORT_REQUEST_INSTITUTION) - const { api } = useApi() - const [submitting, setSubmitting] = useState(false) - const initialForm = { - email: user.email ?? '', - institutionName: '', - institutionWebsite: '', - institutionLogin: '', - } - const schema = { - email: { - label: __('Your email address'), - required: true, - pattern: 'email', - }, - institutionName: { - label: __('Institution name'), - required: true, - }, - institutionWebsite: { - label: __('Institution website'), - required: true, - pattern: 'url', - }, - institutionLogin: { - label: __('Institution login page (optional)'), - required: false, - pattern: 'url', - }, - } - const { handleTextInputChange, handleSubmit, values, errors } = useForm( - () => setSubmitting(true), - schema, - initialForm, - ) - - const tokens = useTokens() - const styles = getStyles(tokens) - const getNextDelay = getDelay() - - const emailInputRef = useRef(null) - const institutionNameInputRef = useRef(null) - const institutionWebsiteInputRef = useRef(null) - const institutionLoginInputRef = useRef(null) - - useEffect(() => { - if (errors.email) { - emailInputRef.current?.focus() - } else if (errors.institutionName) { - institutionNameInputRef.current?.focus() - } else if (errors.institutionWebsite) { - institutionWebsiteInputRef.current?.focus() - } else if (errors.institutionLogin) { - institutionLoginInputRef.current?.focus() - } - }, [errors]) - - useEffect(() => { - if (submitting) { - const ticket = { - email: values.email, - message: `Institution Website : ${values.institutionWebsite} Institution Login Page : ${values.institutionLogin}`, - title: `Institution Request: ${values.institutionName}`, - } - - api - .createSupportTicket(ticket) - .then(() => - fadeOut(requestInstitutionRef.current, 'up', 300).then(() => - handleTicketSuccess(values.email), - ), - ) - } - }, [submitting]) - - const handleCancel = () => { - fadeOut(requestInstitutionRef.current, 'up', 300).then(() => handleClose()) - } - - return ( -