DocSpace-client/packages/components/aside/aside.js

69 lines
1.4 KiB
JavaScript
Raw Normal View History

import React from "react";
import PropTypes from "prop-types";
import Scrollbar from "../scrollbar";
2022-05-05 07:08:01 +00:00
import {
StyledAside,
StyledControlContainer,
StyledCrossIcon,
} from "./styled-aside";
2019-07-10 09:49:14 +00:00
const Aside = React.memo((props) => {
const {
visible,
children,
scale,
zIndex,
className,
contentPaddingBottom,
withoutBodyScroll,
2022-05-05 07:08:01 +00:00
onClose,
} = props;
2019-07-16 10:44:17 +00:00
return (
<StyledAside
visible={visible}
scale={scale}
zIndex={zIndex}
contentPaddingBottom={contentPaddingBottom}
className={`${className} not-selectable aside`}
>
2022-04-18 13:41:17 +00:00
{/* <CloseButton displayType="aside" zIndex={zIndex}/> */}
{withoutBodyScroll ? (
children
) : (
<Scrollbar stype="mediumBlack">{children}</Scrollbar>
)}
2022-05-05 07:08:01 +00:00
{visible && (
<StyledControlContainer onClick={onClose}>
<StyledCrossIcon />
</StyledControlContainer>
)}
2019-07-16 10:44:17 +00:00
</StyledAside>
);
});
2019-07-10 09:49:14 +00:00
Aside.displayName = "Aside";
Aside.propTypes = {
visible: PropTypes.bool,
scale: PropTypes.bool,
className: PropTypes.string,
contentPaddingBottom: PropTypes.string,
zIndex: PropTypes.number,
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node,
]),
withoutBodyScroll: PropTypes.bool,
2022-05-05 07:08:01 +00:00
onClose: PropTypes.func,
};
Aside.defaultProps = {
scale: false,
zIndex: 400,
withoutBodyScroll: false,
};
export default Aside;