Client: RoomLogoCoverDialog: fixed style

This commit is contained in:
Dmitry Sychugov 2024-08-26 19:35:22 +05:00
parent 11295f0241
commit e4866f75d6
6 changed files with 63 additions and 14 deletions

View File

@ -27,10 +27,15 @@
import { Dispatch, SetStateAction } from "react";
import type { TTranslation } from "@docspace/shared/types";
export interface RoomLogoCoverProps {
isBaseTheme: boolean;
}
export interface CustomLogoProps {
color?: string;
icon?: string;
withoutIcon: boolean;
isBaseTheme: boolean;
}
export interface SelectColorProps {

View File

@ -25,7 +25,7 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React from "react";
import styled, { css } from "styled-components";
import styled from "styled-components";
import { useTranslation } from "react-i18next";
import {
ModalDialog,
@ -38,7 +38,6 @@ import RoomLogoCover from "./sub-components/RoomLogoCover";
const StyledModalDialog = styled(ModalDialog)`
#modal-dialog {
width: 422px;
min-height: 648px;
@media ${tablet} {
width: 464px;

View File

@ -25,12 +25,18 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React from "react";
import styled from "styled-components";
import styled, { css } from "styled-components";
import hexRgb from "hex-rgb";
import { ReactSVG } from "react-svg";
import { Text } from "@docspace/shared/components/text";
import { CustomLogoProps } from "../RoomLogoCoverDialog.types";
const StyledLogo = styled.div`
interface StyledLogoProps {
isBase: boolean;
color: string;
}
const StyledLogo = styled.div<StyledLogoProps>`
background-color: ${(props) => props.color};
width: 96px;
height: 96px;
@ -53,11 +59,34 @@ const StyledLogo = styled.div`
color: #fff;
font-size: 41px;
}
${(props) =>
!props.isBase &&
css`
background-color: ${hexRgb(props.color, { alpha: 0.09, format: "css" })};
.custom-logo-cover {
svg {
path {
fill: ${props.color};
}
}
}
.logo-cover-text {
color: ${props.color};
}
`}
`;
export const CustomLogo = ({ color, icon, withoutIcon }: CustomLogoProps) => {
export const CustomLogo = ({
color,
icon,
withoutIcon,
isBaseTheme,
}: CustomLogoProps) => {
return (
<StyledLogo color={color}>
<StyledLogo color={color} isBase={isBaseTheme}>
{withoutIcon ? (
<Text
className="logo-cover-text"

View File

@ -35,6 +35,8 @@ import { CustomLogo } from "./CustomLogo";
import { SelectColor } from "./SelectColor/SelectColor";
import { SelectIcon } from "./SelectIcon";
import { RoomLogoCoverProps } from "../RoomLogoCoverDialog.types";
const logoColors = [
"#FF6680",
"#FF8F40",
@ -82,12 +84,17 @@ const RoomLogoCoverContainer = styled.div`
}
}
.cover-icon-container,
.color-name {
user-select: none;
}
.select-color-container {
margin-bottom: 14px;
}
`;
const RoomLogoCover = (props) => {
const RoomLogoCover = ({ isBaseTheme }: RoomLogoCoverProps) => {
const { t } = useTranslation(["Common", "CreateEditRoomDialog"]);
const [color, setColor] = useState<string>(logoColors[3]); // set room icon default color
@ -120,7 +127,12 @@ const RoomLogoCover = (props) => {
return (
<RoomLogoCoverContainer>
<div className="room-logo-container">
<CustomLogo icon={icon} color={color} withoutIcon={withoutIcon} />
<CustomLogo
isBaseTheme={isBaseTheme}
icon={icon}
color={color}
withoutIcon={withoutIcon}
/>
</div>
<div className="select-container">
{isMobile() ? (
@ -136,9 +148,9 @@ const RoomLogoCover = (props) => {
};
export default inject<TStore>(({ settingsStore }) => {
const { appearanceTheme } = settingsStore;
const { theme } = settingsStore;
return {
appearanceTheme,
isBaseTheme: theme?.isBase,
};
})(observer(RoomLogoCover));

View File

@ -25,7 +25,7 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import styled, { css } from "styled-components";
import { mobile, tablet, isMobile } from "@docspace/shared/utils";
import { tablet } from "@docspace/shared/utils";
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
import type { ColorItemProps } from "./SelecColor.types";

View File

@ -27,8 +27,7 @@
import React from "react";
import styled, { css } from "styled-components";
import hexRgb from "hex-rgb";
import { mobile, tablet } from "@docspace/shared/utils";
import { tablet } from "@docspace/shared/utils";
import { ColorTheme, ThemeId } from "@docspace/shared/components/color-theme";
import { SelectIconProps } from "../RoomLogoCoverDialog.types";
@ -53,6 +52,11 @@ const StyledWithoutIcon = styled.div<WithoutIconProps>`
background-color: ${(props) => props.theme.logoCover.selectedBackgroundColor};
border: 1px solid ${(props) => props.theme.logoCover.selectedBorderColor};
border-radius: 16px;
@media ${tablet} {
padding: 5px 21px;
}
&:hover {
cursor: pointer;
}
@ -102,7 +106,7 @@ export const SelectIcon = ({
<div>
<div className="color-name">{t("CreateEditRoomDialog:Icon")}</div>
<StyledWithoutIcon onClick={toggleWithoutIcon} isSelected={withoutIcon}>
Without icon
{t("WithoutIcon")}
</StyledWithoutIcon>
<div className="cover-icon-container">
{RoomCoverIcons.map((icon) => (