toaster refactoring
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user