DocSpace-client/packages/asc-web-common/components/PageLayout/sub-components/info-panel-header.js

77 lines
2.0 KiB
JavaScript
Raw Normal View History

2022-02-10 15:52:27 +00:00
import IconButton from "@appserver/components/icon-button";
import Text from "@appserver/components/text";
2022-02-11 14:30:07 +00:00
import { tablet } from "@appserver/components/utils/device";
2022-02-09 09:13:16 +00:00
import { inject, observer } from "mobx-react";
2022-02-10 15:52:27 +00:00
import PropTypes from "prop-types";
2022-02-09 09:13:16 +00:00
import React from "react";
2022-02-10 15:52:27 +00:00
import styled from "styled-components";
2022-02-11 14:35:18 +00:00
const SubInfoPanelHeader = ({ children, toggleIsVisible }) => {
2022-02-10 15:52:27 +00:00
const content = children.props.children;
2022-02-11 14:35:18 +00:00
const StyledInfoPanelHeader = styled.div`
2022-02-10 15:52:27 +00:00
width: 100%;
2022-02-11 15:19:15 +00:00
height: 52px;
2022-02-10 15:52:27 +00:00
display: flex;
justify-content: space-between;
align-items: center;
2022-02-11 15:19:15 +00:00
margin: 8px -16px;
2022-02-10 15:52:27 +00:00
2022-02-15 11:57:36 +00:00
.header-text {
margin-left: 16px;
}
2022-02-11 14:30:07 +00:00
.close-btn {
2022-02-10 15:52:27 +00:00
@media ${tablet} {
display: none;
}
2022-02-11 14:30:07 +00:00
}
2022-02-10 15:52:27 +00:00
`;
2022-02-09 09:13:16 +00:00
2022-02-11 15:19:15 +00:00
const StyledDivider = styled.div`
margin: 0 -16px;
width: calc(100% + 32px);
height: 1px;
background: #eceef1;
`;
2022-02-09 09:13:16 +00:00
return (
2022-02-11 15:19:15 +00:00
<>
<StyledInfoPanelHeader>
<Text className="header-text" fontSize="21px" fontWeight="700">
{content}
</Text>
<IconButton
className="close-btn"
onClick={toggleIsVisible}
iconName="/static/images/cross.react.svg"
size="17"
color="#A3A9AE"
hoverColor="#657077"
isFill={true}
/>
</StyledInfoPanelHeader>
<StyledDivider />
</>
2022-02-09 09:13:16 +00:00
);
};
2022-02-11 14:35:18 +00:00
SubInfoPanelHeader.displayName = "SubInfoPanelHeader";
2022-02-10 15:52:27 +00:00
2022-02-11 14:35:18 +00:00
SubInfoPanelHeader.propTypes = {
2022-02-10 15:52:27 +00:00
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node,
PropTypes.any,
]),
toggleIsVisible: PropTypes.func,
};
2022-02-11 14:35:18 +00:00
export default inject(({ infoPanelStore }) => {
2022-02-10 15:52:27 +00:00
let toggleIsVisible = () => {};
2022-02-11 14:35:18 +00:00
if (infoPanelStore) {
toggleIsVisible = infoPanelStore.toggleIsVisible;
2022-02-10 15:52:27 +00:00
}
return { toggleIsVisible };
2022-02-11 14:35:18 +00:00
})(observer(SubInfoPanelHeader));