import { ModalProps } from '../../types/modal' import Modal from '../shared/Modal' import Button, { LinkButton } from '../shared/Button' import { useTranslation } from 'next-i18next' import useLocalStorageState from 'hooks/useLocalStorageState' import { SOUND_SETTINGS_KEY, TRADE_VOLUME_ALERT_KEY } from 'utils/constants' import Label from '@components/forms/Label' import { useState } from 'react' import Switch from '@components/forms/Switch' import { INITIAL_SOUND_SETTINGS } from '@components/settings/SoundSettings' import NumberFormat, { NumberFormatValues } from 'react-number-format' import { Howl } from 'howler' import { PlayIcon } from '@heroicons/react/20/solid' const volumeAlertSound = new Howl({ src: ['/sounds/trade-buy.mp3'], volume: 0.8, }) export const DEFAULT_VOLUME_ALERT_SETTINGS = { seconds: 30, value: 10000 } export const INPUT_CLASSES = 'h-12 w-full rounded-md border border-th-input-border bg-th-input-bkg px-3 font-mono text-base text-th-fgd-1 focus:border-th-fgd-4 focus:outline-none md:hover:border-th-input-border-hover' const TradeVolumeAlertModal = ({ isOpen, onClose }: ModalProps) => { const { t } = useTranslation(['common', 'trade']) const [soundSettings, setSoundSettings] = useLocalStorageState( SOUND_SETTINGS_KEY, INITIAL_SOUND_SETTINGS, ) const [alertSettings, setAlertSettings] = useLocalStorageState( TRADE_VOLUME_ALERT_KEY, DEFAULT_VOLUME_ALERT_SETTINGS, ) const [formValues, setFormValues] = useState(alertSettings) const handleSave = () => { setAlertSettings(formValues) onClose() } return (

{t('trade:volume-alert')}

{t('trade:volume-alert-desc')}.{' '} Warning: this is an experimental feature.

volumeAlertSound.play()} > {t('trade:preview-sound')}

{t('trade:activate-volume-alert')}

setSoundSettings({ ...soundSettings, 'recent-trades': !soundSettings['recent-trades'], }) } />
{soundSettings['recent-trades'] ? ( <>
) : null}
) } export default TradeVolumeAlertModal