@mui/material#Backdrop TypeScript Examples
The following examples show how to use
@mui/material#Backdrop.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: SideDialogDrawer.tsx From firecms with MIT License | 5 votes |
SideDialogDrawer = React.forwardRef<HTMLDivElement, EntityDrawerProps>(function EntityDrawer(props, ref) {
const {
children,
onClose,
open,
offsetPosition,
onExitAnimation
} = props;
const classes = useStyles({ offsetPosition });
const drawer = (
<Paper
elevation={1}
square
style={{
transition: "transform 1000ms cubic-bezier(0.33, 1, 0.68, 1)",
transform: `translateX(-${(offsetPosition) * 240}px)`
}}
className={clsx(
classes.paper,
classes.paperAnchorRight
)}
>
{children}
</Paper>
);
const slidingDrawer = (
<SlideFade
in={open}
timeout={defaultTransitionDuration}
onExitAnimation={onExitAnimation}
>
{drawer}
</SlideFade>
);
return (
<Modal
BackdropProps={{
transitionDuration: defaultTransitionDuration
}}
BackdropComponent={Backdrop}
className={clsx(classes.root, classes.modal)}
open={open}
onClose={onClose}
ref={ref}
keepMounted={true}
// disableEnforceFocus related to https://github.com/Camberi/firecms/issues/50
disableEnforceFocus={true}
>
{slidingDrawer}
</Modal>
);
})
Example #2
Source File: MessageAttachmentImage.tsx From airmessage-web with Apache License 2.0 | 5 votes |
export default function MessageAttachmentImage(props: {data: ArrayBuffer | Blob, name: string, type: string, partProps: MessagePartProps, tapbacks?: TapbackItem[], stickers?: StickerItem[]}) {
const [imageURL, setImageURL] = useState<string | undefined>(undefined);
const [previewOpen, setPreviewOpen] = useState(false);
const theme = createTheme({
palette: {
mode: "dark",
messageIncoming: undefined,
messageOutgoing: undefined,
messageOutgoingTextMessage: undefined
}
});
useEffect(() => {
//Creating a new image URL
const imageURL = URL.createObjectURL(props.data instanceof Blob ? props.data : new Blob([props.data], {type: props.type}));
//Setting the image URL
setImageURL(imageURL);
//Cleaning up the URL
return () => URL.revokeObjectURL(imageURL);
}, [props.data, props.type, setImageURL]);
function downloadFile(event: React.MouseEvent<HTMLButtonElement, MouseEvent>) {
//So that we don't dismiss the backdrop
event.stopPropagation();
if(!imageURL) return;
downloadURL(imageURL, props.type, props.name);
}
//All of the styles, without the border radius
const buttonStyle: Partial<MessagePartProps> = {...props.partProps};
delete buttonStyle["borderRadius"];
return (
<React.Fragment>
<ThemeProvider theme={theme}>
<Backdrop className={stylesImage.lightboxBackdrop} open={previewOpen} onClick={() => setPreviewOpen(false)}>
<Toolbar className={stylesImage.lightboxToolbar}>
<IconButton edge="start">
<ArrowBack />
</IconButton>
<Typography variant="h6" color="textPrimary" style={{flexGrow: 1}}>{props.name}</Typography>
<Tooltip title="Save">
<IconButton onClick={downloadFile}>
<SaveAlt />
</IconButton>
</Tooltip>
</Toolbar>
<div className={stylesImage.lightboxContainer}>
<div style={{width: "100%", height: "100%", backgroundImage: `url("${imageURL}")`, backgroundPosition: "center", backgroundRepeat: "no-repeat", backgroundSize: "contain"}} />
</div>
</Backdrop>
</ThemeProvider>
<DecorativeMessageBubble element={ButtonBase} className={styles.contentBubble} style={props.partProps} onClick={() => setPreviewOpen(true)} tapbacks={props.tapbacks} stickers={props.stickers}>
<img src={imageURL} style={{borderRadius: props.partProps.borderRadius}} alt="" />
</DecorativeMessageBubble>
{/*<ButtonBase className={styles.contentBubble} style={props.partProps} onClick={() => setPreviewOpen(true)}>*/}
{/* <img src={imageURL} style={{borderRadius: props.partProps.borderRadius}} alt="" />*/}
{/*</ButtonBase>*/}
</React.Fragment>
);
}
Example #3
Source File: Require.tsx From multi-downloader-nx with MIT License | 5 votes |
Require = <T, >(props: React.PropsWithChildren<RequireType<T>>) => {
return props.value === undefined ? <Backdrop open>
<CircularProgress />
</Backdrop> : <Box>{props.children}</Box>
}
Example #4
Source File: dialog.tsx From Search-Next with GNU General Public License v3.0 | 5 votes |
Dialog: React.FC<DialogProps> = ({
open,
title,
onOk,
onCancel,
okText,
cancelText,
children,
container,
width = 520,
showFooter = true,
}) => {
const { t } = useTranslation();
return (
<MModal
aria-labelledby="transition-modal-title"
aria-describedby="transition-modal-description"
open={open}
onClose={onCancel}
closeAfterTransition
BackdropComponent={Backdrop}
BackdropProps={{
timeout: 500,
}}
container={container}
disableAutoFocus
>
<Fade in={open}>
<div
className={classnames(
'rounded transform mx-auto relative top-28',
css`
width: ${typeof width === 'number' ? width + 'px' : width};
max-width: calc(100vw - 32px);
background-color: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(8px);
`,
)}
>
<div className="p-3 py-2 font-bold text-base flex justify-between items-center">
{title}
<IconButton size="small" onClick={onCancel}>
<Close />
</IconButton>
</div>
<div className="p-4">{children}</div>
{showFooter && (
<div className="p-2 flex justify-end gap-2">
<Button variant="text" onClick={onCancel}>
{cancelText ? cancelText : t('cancel')}
</Button>
<Button variant="text" onClick={onOk}>
{okText ? okText : t('submit')}
</Button>
</div>
)}
</div>
</Fade>
</MModal>
);
}