toaster refactoring

This commit is contained in:
2023-10-20 18:42:48 +02:00
parent d64303ccfa
commit d100092f35
3 changed files with 10 additions and 6 deletions

View File

@@ -52,7 +52,7 @@ const Transition = forwardRef(function Transition(
type Props = {
open: boolean
onClose: () => void
onDownloadStart: () => void
onDownloadStart: (url: string) => void
}
export default function DownloadDialog({
@@ -120,7 +120,7 @@ export default function DownloadDialog({
setTimeout(() => {
resetInput()
setDownloadFormats(undefined)
onDownloadStart()
onDownloadStart(url)
}, 250)
}

View File

@@ -3,11 +3,14 @@ import { useRecoilState } from 'recoil'
import { loadingAtom } from '../atoms/ui'
import DownloadDialog from './DownloadDialog'
import HomeSpeedDial from './HomeSpeedDial'
import { useToast } from '../hooks/toast'
const HomeActions: React.FC = () => {
const [, setIsLoading] = useRecoilState(loadingAtom)
const [openDialog, setOpenDialog] = useState(false)
const { pushMessage } = useToast()
return (
<>
<HomeSpeedDial
@@ -19,7 +22,8 @@ const HomeActions: React.FC = () => {
setOpenDialog(false)
setIsLoading(true)
}}
onDownloadStart={() => {
onDownloadStart={(url) => {
pushMessage(`Requested ${url}`, 'info',)
setOpenDialog(false)
setIsLoading(true)
}}

View File

@@ -10,11 +10,11 @@ const Toaster: React.FC = () => {
if (toasts.length > 0) {
const closer = setInterval(() => {
setToasts(t => t.map(t => ({ ...t, open: false })))
}, 1500)
}, 2000)
const cleaner = setInterval(() => {
setToasts(t => t.filter((x) => (Date.now() - x.createdAt) < 1500))
}, 1750)
setToasts(t => t.filter((x) => (Date.now() - x.createdAt) < 2000))
}, 2250)
return () => {
clearInterval(closer)