| import React, { useState, useRef, useEffect, useMemo } from "react"; | 
| import { Button, useTranslate } from "react-admin"; | 
| import { Fab, useMediaQuery } from "@mui/material"; | 
| import ContentAdd from "@mui/icons-material/Add"; | 
| import { styled } from "@mui/material/styles"; | 
| import { Link } from "react-router-dom"; | 
|   | 
| const MyCreateButton = (props) => { | 
|   const translate = useTranslate(); | 
|   const isSmall = useMediaQuery((theme) => theme.breakpoints.down("md")); | 
|   | 
|   return isSmall ? ( | 
|     <StyledFab | 
|       color="primary" | 
|       className={CreateButtonClasses.floating} | 
|       aria-label={label && translate(label)} | 
|       onClick={props.onClick} | 
|       {...props} | 
|     > | 
|       {defaultIcon} | 
|     </StyledFab> | 
|   ) : ( | 
|     <StyledButton | 
|       className={CreateButtonClasses.floating} | 
|       label={label} | 
|       onClick={props.onClick} | 
|       {...props} | 
|     > | 
|       {defaultIcon} | 
|     </StyledButton> | 
|   ); | 
| }; | 
|   | 
| const label = "ra.action.create"; | 
| const PREFIX = "RaCreateButton"; | 
| const defaultIcon = <ContentAdd />; | 
|   | 
| export const CreateButtonClasses = { | 
|   root: `${PREFIX}-root`, | 
|   floating: `${PREFIX}-floating`, | 
| }; | 
|   | 
| const StyledFab = styled(Fab, { | 
|   name: PREFIX, | 
|   overridesResolver: (_props, styles) => styles.root, | 
| })(({ theme }) => ({ | 
|   [`&.${CreateButtonClasses.floating}`]: { | 
|     color: theme.palette.getContrastText(theme.palette.primary.main), | 
|     margin: 0, | 
|     top: "auto", | 
|     right: 20, | 
|     bottom: 60, | 
|     left: "auto", | 
|     position: "fixed", | 
|     zIndex: 1000, | 
|   }, | 
| })); | 
|   | 
| const StyledButton = styled(Button, { | 
|   name: PREFIX, | 
|   overridesResolver: (_props, styles) => styles.root, | 
| })({}); | 
|   | 
| export default MyCreateButton; |