2022-06-08 13:40:22 +00:00
|
|
|
import React from "react";
|
|
|
|
import PropTypes from "prop-types";
|
|
|
|
import { ReactSVG } from "react-svg";
|
|
|
|
|
|
|
|
import StyledLogoContainer from "./styled-room-logo";
|
|
|
|
|
|
|
|
const RoomLogo = ({ id, className, style, type, isPrivacy }) => {
|
|
|
|
const getIcon = () => {
|
|
|
|
switch (type) {
|
|
|
|
case "view":
|
|
|
|
return isPrivacy
|
2022-06-10 11:58:38 +00:00
|
|
|
? "/static/images/room.privacy.view.svg"
|
|
|
|
: "/static/images/room.view.svg";
|
2022-06-08 13:40:22 +00:00
|
|
|
case "review":
|
|
|
|
return isPrivacy
|
2022-06-10 11:58:38 +00:00
|
|
|
? "/static/images/room.privacy.review.svg"
|
|
|
|
: "/static/images/room.review.svg";
|
2022-06-08 13:40:22 +00:00
|
|
|
case "fill":
|
|
|
|
return isPrivacy
|
2022-06-10 11:58:38 +00:00
|
|
|
? "/static/images/room.privacy.fill.svg"
|
|
|
|
: "/static/images/room.fill.svg";
|
2022-06-08 13:40:22 +00:00
|
|
|
case "editing":
|
|
|
|
return isPrivacy
|
2022-06-10 11:58:38 +00:00
|
|
|
? "/static/images/room.privacy.editing.svg"
|
|
|
|
: "/static/images/room.editing.svg";
|
2022-06-08 13:40:22 +00:00
|
|
|
case "custom":
|
|
|
|
return isPrivacy
|
2022-06-10 11:58:38 +00:00
|
|
|
? "/static/images/room.privacy.custom.svg"
|
|
|
|
: "/static/images/room.custom.svg";
|
2022-06-08 13:40:22 +00:00
|
|
|
case "archive":
|
|
|
|
return isPrivacy
|
2022-06-10 11:58:38 +00:00
|
|
|
? "/static/images/room.privacy.archive.svg"
|
|
|
|
: "/static/images/room.archive.svg";
|
2022-06-08 13:40:22 +00:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const icon = getIcon();
|
|
|
|
|
|
|
|
return (
|
|
|
|
<StyledLogoContainer
|
|
|
|
id={id}
|
|
|
|
className={className}
|
|
|
|
style={style}
|
|
|
|
type={type}
|
|
|
|
isPrivacy={isPrivacy}
|
|
|
|
>
|
|
|
|
<ReactSVG className="room-logo_icon" src={icon} />
|
|
|
|
</StyledLogoContainer>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
RoomLogo.defaultProps = {
|
|
|
|
isPrivacy: false,
|
|
|
|
};
|
|
|
|
|
|
|
|
RoomLogo.propTypes = {
|
|
|
|
/** Accepts type of the room */
|
|
|
|
type: PropTypes.oneOf([
|
|
|
|
"view",
|
|
|
|
"review",
|
|
|
|
"fill",
|
|
|
|
"editing",
|
|
|
|
"custom",
|
|
|
|
"archive",
|
|
|
|
]),
|
|
|
|
/** Add privacy icon */
|
|
|
|
isPrivacy: PropTypes.bool,
|
|
|
|
/** Accepts id */
|
|
|
|
id: PropTypes.string,
|
|
|
|
/** Accepts class name */
|
|
|
|
className: PropTypes.string,
|
|
|
|
/** Accepts css style */
|
|
|
|
style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
|
|
|
|
};
|
|
|
|
|
|
|
|
export default React.memo(RoomLogo);
|