Client:ColorPicker:Added display of the color panel on mobile in a separate modal window.

This commit is contained in:
Vlada Gazizova 2024-04-11 11:46:07 +03:00
parent 263cb93d1a
commit 7541825161
2 changed files with 79 additions and 5 deletions

View File

@ -27,6 +27,7 @@
import { mobile } from "@docspace/shared/utils"; import { mobile } from "@docspace/shared/utils";
import PlusThemeSvgUrl from "PUBLIC_DIR/images/plus.theme.svg?url"; import PlusThemeSvgUrl from "PUBLIC_DIR/images/plus.theme.svg?url";
import styled, { css } from "styled-components"; import styled, { css } from "styled-components";
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
const StyledComponent = styled.div` const StyledComponent = styled.div`
width: 100%; width: 100%;
@ -178,4 +179,35 @@ const StyledTheme = styled.div`
} }
} }
`; `;
export { StyledComponent, StyledTheme };
const StyledModalDialog = styled(ModalDialog)`
.modal-close {
display: none;
}
#modal-dialog {
max-height: none;
}
.hex-color-picker {
padding-bottom: 0 !important;
width: auto !important;
.react-colorful__saturation {
border-bottom: none;
.react-colorful__interactive {
width: calc(100% - 16px) !important;
height: calc(100% - 16px);
}
}
.react-colorful__hue {
.react-colorful__interactive {
width: auto;
}
}
}
`;
export { StyledComponent, StyledTheme, StyledModalDialog };

View File

@ -42,13 +42,17 @@ import { DropDown } from "@docspace/shared/components/drop-down";
import api from "@docspace/shared/api"; import api from "@docspace/shared/api";
import Loader from "./sub-components/loaderAppearance"; import Loader from "./sub-components/loaderAppearance";
import { StyledComponent, StyledTheme } from "./Appearance/StyledApperance.js"; import {
StyledComponent,
StyledTheme,
StyledModalDialog,
} from "./Appearance/StyledApperance.js";
import { ReactSVG } from "react-svg"; import { ReactSVG } from "react-svg";
import ModalDialogDelete from "./sub-components/modalDialogDelete"; import ModalDialogDelete from "./sub-components/modalDialogDelete";
import hexRgb from "hex-rgb"; import hexRgb from "hex-rgb";
import { isMobile } from "@docspace/shared/utils"; import { isMobile } from "@docspace/shared/utils";
import { DeviceType } from "@docspace/shared/enums"; import { DeviceType } from "@docspace/shared/enums";
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
import { ColorPicker } from "@docspace/shared/components/color-picker"; import { ColorPicker } from "@docspace/shared/components/color-picker";
const Appearance = (props) => { const Appearance = (props) => {
@ -400,6 +404,9 @@ const Appearance = (props) => {
}, [selectThemeId, selectedThemeId, onCloseDialogDelete, getAppearanceTheme]); }, [selectThemeId, selectedThemeId, onCloseDialogDelete, getAppearanceTheme]);
const onCloseColorSchemeDialog = () => { const onCloseColorSchemeDialog = () => {
if ((openHexColorPickerAccent || openHexColorPickerButtons) && isMobile())
return;
setShowColorSchemeDialog(false); setShowColorSchemeDialog(false);
setOpenHexColorPickerAccent(false); setOpenHexColorPickerAccent(false);
@ -599,7 +606,25 @@ const Appearance = (props) => {
setVisibleDialog(true); setVisibleDialog(true);
}; };
const nodeHexColorPickerButtons = ( const nodeHexColorPickerButtons = isMobile() ? (
<StyledModalDialog
visible={openHexColorPickerButtons}
onClose={onCloseHexColorPickerButtons}
blur={8}
>
<ModalDialog.Body>
<ColorPicker
id="buttons-hex"
onClose={onCloseHexColorPickerButtons}
onApply={onAppliedColorButtons}
appliedColor={appliedColorButtons}
applyButtonLabel={t("Common:ApplyButton")}
cancelButtonLabel={t("Common:CancelButton")}
hexCodeLabel={t("Settings:HexCode")}
/>
</ModalDialog.Body>
</StyledModalDialog>
) : (
<DropDown <DropDown
directionX="right" directionX="right"
manualY="62px" manualY="62px"
@ -622,7 +647,24 @@ const Appearance = (props) => {
</DropDown> </DropDown>
); );
const nodeHexColorPickerAccent = ( const nodeHexColorPickerAccent = isMobile() ? (
<StyledModalDialog
visible={openHexColorPickerAccent}
onClose={onCloseHexColorPickerAccent}
blur={8}
>
<ModalDialog.Body>
<ColorPicker
id="accent-hex"
onClose={onCloseHexColorPickerAccent}
onApply={onAppliedColorAccent}
appliedColor={appliedColorAccent}
applyButtonLabel={t("Common:ApplyButton")}
cancelButtonLabel={t("Common:CancelButton")}
/>
</ModalDialog.Body>
</StyledModalDialog>
) : (
<DropDown <DropDown
directionX="right" directionX="right"
manualY="62px" manualY="62px"