Newer
Older
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import logoImage from "assets/img/logo-jami-net.svg";
import TipBox from "./TipBox";
import JamiIdCard from "./JamiIdCard";
import i18next from "i18next";
import { url_path } from "../../globalUrls";
import { url_port } from "../../globalUrls";
height: "250px",
position: (props) => (props.isOldPreview ? "relative" : "absolute"),
left: 0,
right: 0,
margin: (props) => (props.isOldPreview ? "0 0" : "0 20px"),
transition: (props) => (props.isOldPreview ? "none" : "opacity 0.25s"),
opacity: (props) => props.opacity,
zIndex: (props) => (props.isOldPreview ? "1" : "2"),
},
previewWindow: {
position: "absolute",
left: "50%",
top: "50%",
transform: "translate(-50%, -50%)",
width: "100%",
height: "250px",
borderRadius: "5px",
backgroundColor: "white",
display: "flex",
boxShadow: "0px 3px 6px #0000005C",
},
sidebar: {
// minWidth: "100px",
width: "100px",
height: "100%",
backgroundColor: "#f4f4f4",
borderRadius: "5px 0px 0px 5px",
},
mainContent: {
flex: 1,
padding: "2rem",
backgroundColor: (props) => props.backgroundColor,
backgroundImage: (props) => `url(${props.backgroundUrl})`,
backgroundSize: "cover",
backgroundPosition: "center",
borderRadius: "0px 5px 5px 0px",
display: "flex",
flexDirection: "column",
justifyContent: "center",
},
welcomeRow: {
display: "flex",
flexDirection: (props) => (props.isCompactDisplay ? "column" : "row"),
height: "100px",
justifyContent: "center",
alignItems: "center",
marginBottom: "0.5rem",
},
logo: {
width: "50%",
objectFit: "contain",
height: "100%",
marginRight: "1rem",
},
welcomeCard: {
borderRadius: "9px",
backgroundColor: (props) => (props.isCompactDisplay ? "white" : "#f4f4f4"),
padding: "10px",
width: "50%",
},
title: {
margin: 0,
fontWeight: 500,
},
tipRow: {
display: "flex",
justifyContent: "space-between",
width: "400px",
marginTop: "0.5rem",
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
},
};
const useStyles = makeStyles(styles);
export default function CustomUiPreview({
isOldPreview,
opacity,
uiCustomization,
}) {
let {
hasTitle,
title,
hasDescription,
description,
hasTips,
hasBackground,
backgroundColor,
backgroundUrl,
hasLogo,
logoUrl,
} = uiCustomization;
if (!title) {
title = i18next.t("welcome_title", "Welcome to Jami");
}
if (!description) {
description = i18next.t(
"welcome_Description",
"Here is your Jami identifier, don’t hesitate to share it in order to be contacted more easily!"
);
}
if (logoUrl) {
logoUrl = `${url_path}:${url_port}/${logoUrl}`;
} else {
logoUrl = logoImage;
}
if (hasBackground === false) {
backgroundColor = "white";
backgroundUrl = "";
}
if (backgroundUrl !== "") {
backgroundColor = "white";
}
if (backgroundUrl) {
backgroundUrl = `${url_path}:${url_port}/${backgroundUrl}`;
}
const isCompactDisplay = !hasTitle && !hasDescription && !hasTips;
const classes = useStyles({
backgroundColor,
backgroundUrl,
isCompactDisplay,
isOldPreview,
opacity,
hasTitle,
});
const tip1 = i18next.t(
"preview_tip1",
"Add a picture and a nickname to complete your profile"
);
const tip2 = i18next.t("preview_tip2", "Why should I save my account?");
const tip3 = i18next.t("preview_tip3", "How to set shortcuts?");
return (
<div className={classes.previewWindow}>
<div className={classes.sidebar}></div>
<div className={classes.mainContent}>
<div className={classes.welcomeRow}>
{hasLogo ? (
<img src={logoUrl} alt="logo" className={classes.logo}></img>
) : null}
<div className={classes.welcomeCard}>
{hasTitle ? <h4 className={classes.title}>{title}</h4> : null}
{hasDescription ? (
<p className={classes.description}>{description}</p>
) : null}
<JamiIdCard isCompactDisplay={isCompactDisplay} />
</div>
</div>
{hasTips ? (
<div className={classes.tipRow}>
<TipBox text={tip1} />
<TipBox text={tip2} />
<TipBox text={tip3} />
</div>
) : null}
</div>
</div>
</div>
);
}