2019-09-12 12:15:22 +00:00
|
|
|
import React from "react";
|
2019-09-10 12:41:52 +00:00
|
|
|
import PropTypes from "prop-types";
|
2019-09-12 12:15:22 +00:00
|
|
|
import styled from "styled-components";
|
2020-12-08 11:09:46 +00:00
|
|
|
import equal from "fast-deep-equal/react";
|
2021-02-24 17:11:23 +00:00
|
|
|
import Scrollbar from "@appserver/components/scrollbar";
|
|
|
|
import { tablet, smallTablet } from "@appserver/components/utils/device";
|
2021-04-06 14:23:32 +00:00
|
|
|
import { isMobile } from "react-device-detect";
|
2019-07-20 09:48:29 +00:00
|
|
|
|
|
|
|
const StyledArticleBody = styled.div`
|
2020-10-16 12:38:04 +00:00
|
|
|
${(props) => props.displayBorder && `outline: 1px dotted;`}
|
2019-07-20 09:48:29 +00:00
|
|
|
flex-grow: 1;
|
2019-09-10 12:41:52 +00:00
|
|
|
height: 100%;
|
2019-10-01 08:46:22 +00:00
|
|
|
|
2021-05-15 21:49:10 +00:00
|
|
|
.custom-scrollbar {
|
|
|
|
width: calc(100% + 24px) !important;
|
|
|
|
}
|
|
|
|
|
2020-09-17 06:17:47 +00:00
|
|
|
@media ${tablet} {
|
|
|
|
height: calc(100% - 104px);
|
|
|
|
display: table;
|
2021-06-17 12:01:35 +00:00
|
|
|
width: calc(100% + 16px);
|
2021-03-22 15:11:39 +00:00
|
|
|
|
2020-10-16 12:38:04 +00:00
|
|
|
.custom-scrollbar {
|
|
|
|
display: table-cell;
|
2020-09-22 12:49:09 +00:00
|
|
|
}
|
2020-09-17 06:17:47 +00:00
|
|
|
}
|
|
|
|
|
2020-09-17 10:22:47 +00:00
|
|
|
@media ${smallTablet} {
|
2020-09-22 12:49:09 +00:00
|
|
|
display: flex;
|
2020-09-17 06:17:47 +00:00
|
|
|
height: 100%;
|
|
|
|
}
|
|
|
|
|
2020-02-10 13:40:04 +00:00
|
|
|
.people-tree-menu {
|
2020-02-13 13:23:12 +00:00
|
|
|
margin-right: 0;
|
2021-04-06 14:23:32 +00:00
|
|
|
${(props) => isMobile && props.pinned && `margin-bottom: 56px`}
|
2019-10-01 08:46:22 +00:00
|
|
|
}
|
2020-02-10 13:40:04 +00:00
|
|
|
|
|
|
|
.custom-scrollbar {
|
|
|
|
.nav-thumb-vertical {
|
|
|
|
opacity: 0;
|
|
|
|
transition: opacity 200ms ease;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
:hover {
|
|
|
|
.custom-scrollbar {
|
|
|
|
.nav-thumb-vertical {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-07-20 09:48:29 +00:00
|
|
|
`;
|
|
|
|
|
2019-12-25 14:51:38 +00:00
|
|
|
const StyledArticleWrapper = styled.div`
|
|
|
|
margin: 16px 0;
|
|
|
|
`;
|
|
|
|
|
2020-08-11 12:35:24 +00:00
|
|
|
class ArticleBody extends React.Component {
|
|
|
|
shouldComponentUpdate(nextProps) {
|
2020-12-08 11:09:46 +00:00
|
|
|
return !equal(this.props, nextProps);
|
2020-08-11 12:35:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
|
|
//console.log("PageLayout ArticleBody render");
|
2021-04-06 14:23:32 +00:00
|
|
|
const { children, pinned } = this.props;
|
2020-08-11 12:35:24 +00:00
|
|
|
|
|
|
|
return (
|
2021-04-06 14:23:32 +00:00
|
|
|
<StyledArticleBody pinned={pinned}>
|
2021-01-20 18:04:00 +00:00
|
|
|
<Scrollbar
|
|
|
|
id="articleScrollBar"
|
|
|
|
className="custom-scrollbar"
|
|
|
|
stype="mediumBlack"
|
|
|
|
>
|
2020-08-11 12:35:24 +00:00
|
|
|
<StyledArticleWrapper>{children}</StyledArticleWrapper>
|
|
|
|
</Scrollbar>
|
|
|
|
</StyledArticleBody>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
2019-07-20 09:48:29 +00:00
|
|
|
|
2019-09-10 12:41:52 +00:00
|
|
|
ArticleBody.displayName = "ArticleBody";
|
|
|
|
|
|
|
|
ArticleBody.propTypes = {
|
|
|
|
children: PropTypes.oneOfType([
|
|
|
|
PropTypes.arrayOf(PropTypes.node),
|
2020-10-16 12:38:04 +00:00
|
|
|
PropTypes.node,
|
|
|
|
]),
|
2019-09-10 12:41:52 +00:00
|
|
|
};
|
|
|
|
|
2019-09-12 12:15:22 +00:00
|
|
|
export default ArticleBody;
|