import { Show, createSignal } from 'solid-js' import { PageLayout } from '../components/_shared/PageLayout' export const ConnectPage = () => { const [state, setState] = createSignal<'initial' | 'loading' | 'success' | 'error'>('initial') const formRef: { current: HTMLFormElement } = { current: null } const handleFormSubmit = async (e) => { e.preventDefault() setState('loading') // eslint-disable-next-line unicorn/prefer-spread const postData = Array.from(formRef.current.elements).reduce( (acc, element) => { const formField = element as unknown as { name: string; value: string } if (formField.name) { acc[formField.name] = formField.value } return acc }, {} as Record, ) const requestOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(postData), } const result = await fetch('/api/feedback', requestOptions) if (!result.ok) { console.error('[handleFormSubmit]', result) setState('error') return } setState('success') window.scrollTo({ top: 0, }) } // TODO: l10n return (

Предложить идею

Хотите что-то предложить, обсудить или посоветовать? Поделиться темой или идеей? Напишите нам скорее! Если укажете свою почту, мы обязательно ответим.

(formRef.current = el)}>