UNPKG

@wix/design-system

Version:

@wix/design-system

73 lines 3.86 kB
import React, { PureComponent } from 'react'; import { classes } from './SidePanel.classes'; import { Header } from './components/Header'; import { Content } from './components/Content'; import { Footer } from './components/Footer'; import { Divider } from './components/Divider'; import { Section } from './components/Section'; import { Field } from './components/Field'; import { SidePanelContext } from './SidePanelAPI'; import { deprecationLog } from '../utils/deprecationLog'; import { WixDesignSystemContext } from '../WixDesignSystemProvider/context'; import { withDefaultProps } from '../WixDesignSystemDefaultPropsProvider'; class SidePanelComponent extends PureComponent { render() { const { dataHook, skin = 'standard', children, className, width, height, maxHeight, draggable, hideOverflow, // Deprecated Props backButtonDescription, backButtonTooltipProps, onBackButtonClick, onCloseButtonClick, onHelpButtonClick, } = this.props; if (backButtonDescription) { deprecationLog('<SidePanel /> props "backButtonDescription" is deprecated and will be removed in next major release, please use "backButtonProps.description" instead'); } if (backButtonTooltipProps) { deprecationLog('<SidePanel /> props "backButtonTooltipProps" is deprecated and will be removed in next major release, please use "backButtonProps.tooltipProps" instead'); } if (onBackButtonClick) { deprecationLog('<SidePanel /> props "onBackButtonClick" is deprecated and will be removed in next major release, please use "backButtonProps.onClick" instead'); } if (onCloseButtonClick) { deprecationLog('<SidePanel /> props "onCloseButtonClick" is deprecated and will be removed in next major release, please use "closeButtonProps.onClick" instead'); } if (onHelpButtonClick) { deprecationLog('<SidePanel /> props "onHelpButtonClick" is deprecated and will be removed in next major release, please use "helpButtonProps.onClick" instead'); } const helpButtonProps = { ...this.props.helpButtonProps, onClick: this.props.helpButtonProps?.onClick || onHelpButtonClick, }; const closeButtonProps = { ...this.props.closeButtonProps, onClick: this.props.closeButtonProps?.onClick || onCloseButtonClick, }; const backButtonProps = { ...this.props.backButtonProps, onClick: this.props.backButtonProps?.onClick || onBackButtonClick, description: this.props.backButtonProps?.description || backButtonDescription, tooltipProps: this.props.backButtonProps?.tooltipProps || backButtonTooltipProps, }; const isDraggable = draggable && skin === 'floating'; const { contextClassName } = this.context; return (React.createElement(SidePanelContext.Provider, { value: { skin, isDraggable, closeButtonProps, helpButtonProps, backButtonProps, } }, React.createElement("div", { className: classes.root({ skin, hideOverflow }, className, contextClassName), "data-hook": dataHook, style: { width, height, maxHeight } }, children))); } } SidePanelComponent.displayName = 'SidePanel'; SidePanelComponent.contextType = WixDesignSystemContext; SidePanelComponent.Header = Header; SidePanelComponent.Content = Content; SidePanelComponent.Footer = Footer; SidePanelComponent.Divider = Divider; SidePanelComponent.Section = Section; SidePanelComponent.Field = Field; SidePanelComponent.defaultProps = { width: '420px', height: '100%', }; const SidePanel = withDefaultProps(SidePanelComponent, 'SidePanel'); export { SidePanel }; //# sourceMappingURL=SidePanel.js.map