import { Button, Card, CardContent, Dialog, DialogActions, DialogContent, DialogTitle, Stack, Typography } from '@mui/material'; import { useState } from 'react'; function AskForPersistentStorageDialog(props: {onClose?: () => void}) { const [open, setOpen] = useState(true); const [waiting, setWaiting] = useState(false); const [granted, setGranted] = useState(undefined); const [error, setError] = useState(undefined); const close = () => { setOpen(false); if (props.onClose !== undefined) { props.onClose(); } } const persistenceSupport = navigator.storage?.persisted !== undefined; const ask = () => { setWaiting(true); navigator.storage.persist().then((granted: boolean) => { setWaiting(false); setGranted(granted); }, (reason: any) => { setWaiting(false); setError(reason); }); } return Storage for your Home { !persistenceSupport && Your browser does not support persistent storage. } { persistenceSupport && !waiting && (granted === undefined) && (error === undefined) && It'd be wise to ask your browser to use permanent storage for your Home Space.

Otherwise, you may lose the contents of yor home when you close this window.
} { waiting && Please authorize the use of persistent storage (your browser should be asking for your confirmation now). } { granted !== undefined && granted && Great! You're using persistent storage now. } { granted !== undefined && !granted && You chose to use temporary storage. You'll be prompted again the next time you open your home (if your browser hasn't deleted it!). } { error !== undefined && There was an error while trying to set up permanent storage: {error} }
{!waiting && granted === undefined && error === undefined && } {waiting && } { (granted !== undefined || error !== undefined) && }
; } export default AskForPersistentStorageDialog;