diff --git a/packages/common/components/FilterInput/sub-components/SortButton.js b/packages/common/components/FilterInput/sub-components/SortButton.js index 04dfe6feee..c3e986a85c 100644 --- a/packages/common/components/FilterInput/sub-components/SortButton.js +++ b/packages/common/components/FilterInput/sub-components/SortButton.js @@ -32,16 +32,6 @@ const notSelectedViewIcon = css` } `; -const mobileView = css` - position: fixed; - top: auto; - left: 0; - bottom: 0; - width: 100vw; - - z-index: 999; -`; - const StyledSortButton = styled.div` .combo-button { background: ${(props) => @@ -64,10 +54,6 @@ const StyledSortButton = styled.div` min-width: 200px; margin-top: 3px; - @media (max-width: 428px) { - ${mobileView} - } - .view-selector-item { display: flex; align-items: center; @@ -299,6 +285,12 @@ const SortButton = ({ ); + let advancedOptionsCount = sortData.length; + + if (viewSelectorVisible) { + advancedOptionsCount++; + } + return ( <> diff --git a/packages/components/combobox/index.js b/packages/components/combobox/index.js index c6497d1cf4..b7bb52725b 100644 --- a/packages/components/combobox/index.js +++ b/packages/components/combobox/index.js @@ -108,6 +108,8 @@ class ComboBox extends React.Component { isPersonal, offsetLeft, modernView, + + advancedOptionsCount, } = this.props; const { isOpen, selectedOption } = this.state; @@ -130,6 +132,14 @@ class ComboBox extends React.Component { const withAdvancedOptions = !!advancedOptions?.props.children; + let optionsCount = optionsLength; + + if (withAdvancedOptions) { + optionsCount = advancedOptionsCount ? advancedOptionsCount : 6; + } + + const disableMobileView = optionsCount < 5; + return ( props.advancedOptions && props.theme.comboBox.padding}; - @media (max-width: 428px) { - position: fixed; - top: unset; - right: 0; - left: 0; - bottom: 0; - width: 100%; - width: -moz-available; - width: -webkit-fill-available; - width: fill-available; - border: none; - border-radius: 6px 6px 0px 0px; - } + ${(props) => + !props.disableMobileView && + css` + @media (max-width: 428px) { + position: fixed; + top: unset !important; + right: 0; + left: 0; + bottom: 0 !important; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill-available; + border: none; + border-radius: 6px 6px 0px 0px; + } + `} } + -webkit-user-select: none; .backdrop-active { diff --git a/packages/components/context-menu/index.js b/packages/components/context-menu/index.js index 3f2d3c9890..3f06b26f8c 100644 --- a/packages/components/context-menu/index.js +++ b/packages/components/context-menu/index.js @@ -16,6 +16,7 @@ import { import Backdrop from "../backdrop"; import Text from "../text"; import { ReactSVG } from "react-svg"; +import Avatar from "../avatar"; class ContextMenu extends Component { constructor(props) { @@ -292,6 +293,9 @@ class ContextMenu extends Component { const changeView = this.state.changeView; const isIconExist = this.props.header?.icon; + const isAvatarExist = this.props.header?.avatar; + + const withHeader = !!this.props.header?.title; return ( <> @@ -300,6 +304,7 @@ class ContextMenu extends Component { isRoom={this.props.isRoom} fillIcon={this.props.fillIcon} isIconExist={isIconExist} + isAvatarExist={isAvatarExist} > - {changeView && ( + {changeView && withHeader && (
{isIconExist && (
@@ -330,6 +335,15 @@ class ContextMenu extends Component { />
)} + {isAvatarExist && ( +
+ +
+ )} {this.props.header.title} diff --git a/packages/components/context-menu/styled-context-menu.js b/packages/components/context-menu/styled-context-menu.js index 2a42fc2c23..39cbe8f792 100644 --- a/packages/components/context-menu/styled-context-menu.js +++ b/packages/components/context-menu/styled-context-menu.js @@ -84,18 +84,21 @@ const StyledContextMenu = styled.div` min-height: ${(props) => props.isRoom ? "32px" : props.theme.menuItem.iconWrapper.header.height}; - ${(props) => - props.isRoom && - css` - .drop-down-item_icon { + .drop-down-item_icon { + display: flex; + align-items: center; + + ${(props) => + props.isRoom && + css` width: 100%; height: 100%; svg { border-radius: 6px; } - } - `} + `} + } svg { &:not(:root) { @@ -105,11 +108,19 @@ const StyledContextMenu = styled.div` } } + .avatar-wrapper { + min-width: 32px; + + box-sizing: border-box; + + margin-right: 8px; + } + .text { width: 100%; font-size: ${(props) => props.theme.menuItem.text.header.fontSize}; font-weight: 600; - line-height: ${(props) => props.theme.menuItem.text.header.lineHeight}; + line-height: 16px; ${(props) => props.isIconExist && css` diff --git a/packages/components/row/index.js b/packages/components/row/index.js index a0d9f786b3..bf2c369a35 100644 --- a/packages/components/row/index.js +++ b/packages/components/row/index.js @@ -85,7 +85,10 @@ class Row extends React.Component { if (children.props.item) { contextMenuHeader = { icon: children.props.item.icon, - title: children.props.item.title, + avatar: children.props.item.avatar, + title: children.props.item.title + ? children.props.item.title + : children.props.item.displayName, }; } diff --git a/packages/components/themes/base.js b/packages/components/themes/base.js index 9d2832a150..b40066fc94 100644 --- a/packages/components/themes/base.js +++ b/packages/components/themes/base.js @@ -2568,7 +2568,7 @@ const Base = { background: "none", svgFill: black, header: { - height: "50px", + height: "49px", borderBottom: `1px solid ${grayLightMid}`, marginBottom: "6px", }, @@ -2578,7 +2578,7 @@ const Base = { padding: "0 12px", mobile: { height: "36px", - padding: "0 16px", + padding: "0 16px 6px", }, }, newContextMenu: { diff --git a/packages/components/themes/dark.js b/packages/components/themes/dark.js index 2fbb1d1141..b5ac8b87fa 100644 --- a/packages/components/themes/dark.js +++ b/packages/components/themes/dark.js @@ -2575,7 +2575,7 @@ const Dark = { background: "none", svgFill: "#eeeeee", header: { - height: "50px", + height: "49px", borderBottom: `1px solid #474747`, marginBottom: "6px", }, @@ -2585,7 +2585,7 @@ const Dark = { padding: "0 12px", mobile: { height: "36px", - padding: "0 16px", + padding: "0 16px 6px", }, }, newContextMenu: {