import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; import { createStyles, Theme, withStyles, WithStyles } from "@material-ui/core/styles"; import TextField from "@material-ui/core/TextField"; import Typography from "@material-ui/core/Typography"; import React from "react"; import SVG from "react-inlinesvg"; import { FormattedMessage, useIntl } from "react-intl"; import photoIcon from "@assets/images/photo-icon.svg"; import CardTitle from "@saleor/components/CardTitle"; import { commonMessages } from "@saleor/intl"; import { getUserInitials, maybe } from "../../../misc"; import { StaffMemberDetails_user } from "../../types/StaffMemberDetails"; const styles = theme => createStyles({ avatar: { "& svg": { fill: "#fff" }, "&:hover $avatarHover": { opacity: 1 }, alignItems: "center", borderRadius: "100%", display: "grid", height: 120, justifyContent: "center", overflow: "hidden", position: "relative", width: 120 }, avatarDefault: { "& p": { color: "#fff", fontSize: 35, fontWeight: "bold", lineHeight: "120px" }, background: theme.palette.primary.main, height: 120, textAlign: "center", width: 120 }, avatarHover: { "& p": { "&:hover": { textDecoration: "underline" }, color: theme.palette.primary.main, cursor: "pointer", fontSize: 12, fontWeight: 500 }, background: "#00000080", borderRadius: "100%", height: 120, opacity: 0, padding: theme.spacing(2.5, 0), position: "absolute", textAlign: "center", textTransform: "uppercase", transition: "opacity 0.5s", width: 120 }, avatarImage: { pointerEvents: "none", width: "100%" }, fileField: { display: "none" }, prop: { marginBottom: theme.spacing(2) }, propGrid: { display: "grid", gridColumnGap: theme.spacing(2), gridRowGap: theme.spacing(1), gridTemplateColumns: "1fr 1fr", [theme.breakpoints.down("xs")]: { gridTemplateColumns: "1fr" } }, root: { display: "grid", gridColumnGap: theme.spacing(4), gridTemplateColumns: "120px 1fr" } }); interface StaffPropertiesProps extends WithStyles { canEditAvatar: boolean; className?: string; data: { email: string; firstName: string; lastName: string; }; disabled: boolean; staffMember: StaffMemberDetails_user; onChange: (event: React.ChangeEvent) => void; onImageDelete: () => void; onImageUpload: (file: File) => void; } const StaffProperties = withStyles(styles, { name: "StaffProperties" })( ({ canEditAvatar, classes, className, data, staffMember, onChange, onImageDelete, onImageUpload }: StaffPropertiesProps) => { const intl = useIntl(); const imgInputAnchor = React.createRef(); const clickImgInput = () => imgInputAnchor.current.click(); return (
{maybe(() => staffMember.avatar.url) ? ( staffMember.avatar.url)} /> ) : (
{getUserInitials(data)}
)} {canEditAvatar && (
onImageUpload(event.target.files[0])} type="file" ref={imgInputAnchor} />
)}
); } ); StaffProperties.displayName = "StaffProperties"; export default StaffProperties;