fannypack
Version:
An accessible, composable, and friendly React UI Kit
37 lines (31 loc) • 1.02 kB
JavaScript
// @flow
import React, { type Node } from 'react';
import { withTheme } from 'reakit/styled';
import _get from 'lodash/get';
import { type Breakpoint } from '../types';
import _Group from './styled';
type Props = {
children: Node,
className?: string,
isVertical?: boolean,
theme?: Object,
verticalAt?: Breakpoint | number
};
const getVerticalBreakpoint = ({ breakpoint, theme }: { breakpoint: Breakpoint | number, theme?: Object }) => {
return typeof breakpoint === 'number' ? breakpoint : _get(theme, `layout[${breakpoint}Breakpoint]`);
};
export const Group = ({ children, className, isVertical, theme, verticalAt: _verticalAt, ...props }: Props) => {
const verticalAt = getVerticalBreakpoint({ breakpoint: _verticalAt, theme });
return (
<_Group className={className} vertical={isVertical} verticalAt={verticalAt} {...props}>
{children}
</_Group>
);
};
Group.defaultProps = {
className: null,
isVertical: false,
theme: {},
verticalAt: null
};
export default withTheme(Group);