import React, { Ref, ExoticComponent, ReactElement } from 'react'; // material-ui import { Collapse, Fade, Box, Grow, Slide, Zoom } from '@mui/material'; // ==============================|| TRANSITIONS ||============================== // export interface TSProps { children?: ReactElement; position?: string; sx?: React.CSSProperties; in?: boolean; type?: string; direction?: 'up' | 'right' | 'left' | 'down'; [others: string]: any; } const Transitions = React.forwardRef(({ children, position, sx, type, direction, ...others }: TSProps, ref: Ref) => { let positionSX = { transformOrigin: '0 0 0' }; switch (position) { case 'top-right': positionSX = { transformOrigin: 'top right' }; break; case 'top': positionSX = { transformOrigin: 'top' }; break; case 'bottom-left': positionSX = { transformOrigin: 'bottom left' }; break; case 'bottom-right': positionSX = { transformOrigin: 'bottom right' }; break; case 'bottom': positionSX = { transformOrigin: 'bottom' }; break; case 'top-left': default: positionSX = { transformOrigin: '0 0 0' }; break; } return ( {type === 'grow' && ( {children} )} {type === 'collapse' && ( {children} )} {type === 'fade' && ( {children} )} {type === 'slide' && ( {children} )} {type === 'zoom' && ( {children} )} ); }); Transitions.defaultProps = { type: 'grow', position: 'top-left', direction: 'up' }; export default Transitions;