Skip to content

Commit

Permalink
feat: Styled ImgInput (#1889)
Browse files Browse the repository at this point in the history
  • Loading branch information
DafyddLlyr authored Jul 4, 2023
1 parent a4e0f88 commit c994d00
Showing 1 changed file with 20 additions and 23 deletions.
43 changes: 20 additions & 23 deletions editor.planx.uk/src/ui/ImgInput.tsx
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import MoreVert from "@mui/icons-material/MoreVert";
import Box from "@mui/material/Box";
import IconButton from "@mui/material/IconButton";
import Menu from "@mui/material/Menu";
import MenuItem from "@mui/material/MenuItem";
import { styled } from "@mui/material/styles";
import Tooltip from "@mui/material/Tooltip";
import makeStyles from "@mui/styles/makeStyles";
import React, { useMemo, useState } from "react";

import PublicFileUploadButton from "./PublicFileUploadButton";

const useClasses = makeStyles((theme) => ({
imageUploadContainer: {
height: 50,
width: 50,
position: "relative",
},
menu: {
position: "absolute",
backgroundColor: "rgba(0, 0, 0, 0.5)",
color: theme.palette.common.white,
top: 0,
right: 0,
},
const ImageUploadContainer = styled(Box)(() => ({
height: 50,
width: 50,
position: "relative",
}));

const StyledIconButton = styled(IconButton)(({ theme }) => ({
position: "absolute",
backgroundColor: "rgba(0, 0, 0, 0.5)",
color: theme.palette.common.white,
top: 0,
right: 0,
}));

/** Uploads an image and returns corresponding URL */
Expand All @@ -31,8 +31,6 @@ export default function ImgInput({
img?: string;
onChange?: (newUrl?: string) => void;
}): FCReturn {
const classes = useClasses();

const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);

// Auto-generate a random ID on mount
Expand All @@ -41,19 +39,18 @@ export default function ImgInput({
}, []);

return img ? (
<div className={classes.imageUploadContainer}>
<IconButton
<ImageUploadContainer>
<StyledIconButton
id={`${menuId}-trigger`}
color="inherit"
className={classes.menu}
size="small"
aria-label="Options"
onClick={(ev) => {
setAnchorEl(ev.currentTarget);
}}
>
<MoreVert />
</IconButton>
</StyledIconButton>
<Menu
id={`${menuId}`}
anchorEl={anchorEl}
Expand All @@ -75,17 +72,17 @@ export default function ImgInput({
</MenuItem>
</Menu>
<img width={50} height={50} src={img} alt="embedded img" />
</div>
</ImageUploadContainer>
) : (
<Tooltip title="Drop file here">
<div className={classes.imageUploadContainer}>
<ImageUploadContainer>
<PublicFileUploadButton
onChange={(newUrl) => {
setAnchorEl(null);
onChange && onChange(newUrl);
}}
/>
</div>
</ImageUploadContainer>
</Tooltip>
);
}

0 comments on commit c994d00

Please sign in to comment.