UNPKG

@fluent-windows/core

Version:

React components that inspired by Microsoft's Fluent Design System.

45 lines (42 loc) 1.49 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import * as React from 'react'; import * as PropTypes from 'prop-types'; import { createUseStyles } from '@fluent-windows/styles'; import { styles } from '../Dialog.styled'; import { DialogContext } from '../Dialog'; import Typography from '../../Typography'; import IconButton from '../../IconButton'; import { CloseLine as CloseLineIcon } from '@fluent-windows/icons'; export const name = 'DialogTitle'; const useStyles = createUseStyles(styles, { name }); const Title = props => { const { children, ...rest } = props; const classes = useStyles(props); const { onChange } = React.useContext(DialogContext); const handleClose = React.useCallback(() => { onChange && onChange(false); }, [onChange]); return React.createElement("div", _extends({ className: classes.title }, rest), React.createElement(Typography, { variant: "h6" }, children), React.createElement(IconButton, { size: "small", style: { height: '100%' }, onClick: handleClose }, React.createElement(CloseLineIcon, null))); }; Title.displayName = `F${name}`; Title.propTypes = { children: PropTypes.any.isRequired }; export default Title;