webapp/src/components/Discours/Subscribe.tsx

27 lines
808 B
TypeScript
Raw Normal View History

2022-11-10 12:50:47 +00:00
import { createSignal } from 'solid-js'
2022-10-19 22:16:17 +00:00
import styles from './Subscribe.module.scss'
2022-09-09 11:53:35 +00:00
import { t } from '../../utils/intl'
2022-11-02 21:43:38 +00:00
import { clsx } from 'clsx'
2022-09-09 11:53:35 +00:00
export default () => {
let emailElement: HTMLInputElement | undefined
const [title, setTitle] = createSignal('')
const subscribe = async () => {
setTitle(t('...subscribing'))
const r = await fetch(`/maillist?email=${emailElement?.value}`)
2022-10-19 22:16:17 +00:00
setTitle(r.ok ? t('You are subscribed') : '')
2022-09-09 11:53:35 +00:00
}
2022-10-19 22:16:17 +00:00
2022-09-09 11:53:35 +00:00
return (
2022-10-19 22:16:17 +00:00
<div class={styles.subscribeForm}>
<input type="email" name="email" ref={emailElement} placeholder={t('Fill email')} value={title()} />
2022-11-02 21:43:38 +00:00
<button
class={clsx(styles.button, 'button--light')}
onClick={() => emailElement?.value && subscribe()}
>
2022-09-09 11:53:35 +00:00
{t('Subscribe')}
</button>
</div>
)
}