85 lines
2.7 KiB
JavaScript
85 lines
2.7 KiB
JavaScript
|
import style from './style';
|
||
|
import compose from './compose';
|
||
|
import { createUnaryUnit, getValue } from './spacing';
|
||
|
import { handleBreakpoints } from './breakpoints';
|
||
|
import responsivePropType from './responsivePropType';
|
||
|
|
||
|
// false positive
|
||
|
// eslint-disable-next-line react/function-component-definition
|
||
|
export const gap = props => {
|
||
|
if (props.gap !== undefined && props.gap !== null) {
|
||
|
const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');
|
||
|
const styleFromPropValue = propValue => ({
|
||
|
gap: getValue(transformer, propValue)
|
||
|
});
|
||
|
return handleBreakpoints(props, props.gap, styleFromPropValue);
|
||
|
}
|
||
|
return null;
|
||
|
};
|
||
|
gap.propTypes = process.env.NODE_ENV !== 'production' ? {
|
||
|
gap: responsivePropType
|
||
|
} : {};
|
||
|
gap.filterProps = ['gap'];
|
||
|
|
||
|
// false positive
|
||
|
// eslint-disable-next-line react/function-component-definition
|
||
|
export const columnGap = props => {
|
||
|
if (props.columnGap !== undefined && props.columnGap !== null) {
|
||
|
const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');
|
||
|
const styleFromPropValue = propValue => ({
|
||
|
columnGap: getValue(transformer, propValue)
|
||
|
});
|
||
|
return handleBreakpoints(props, props.columnGap, styleFromPropValue);
|
||
|
}
|
||
|
return null;
|
||
|
};
|
||
|
columnGap.propTypes = process.env.NODE_ENV !== 'production' ? {
|
||
|
columnGap: responsivePropType
|
||
|
} : {};
|
||
|
columnGap.filterProps = ['columnGap'];
|
||
|
|
||
|
// false positive
|
||
|
// eslint-disable-next-line react/function-component-definition
|
||
|
export const rowGap = props => {
|
||
|
if (props.rowGap !== undefined && props.rowGap !== null) {
|
||
|
const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');
|
||
|
const styleFromPropValue = propValue => ({
|
||
|
rowGap: getValue(transformer, propValue)
|
||
|
});
|
||
|
return handleBreakpoints(props, props.rowGap, styleFromPropValue);
|
||
|
}
|
||
|
return null;
|
||
|
};
|
||
|
rowGap.propTypes = process.env.NODE_ENV !== 'production' ? {
|
||
|
rowGap: responsivePropType
|
||
|
} : {};
|
||
|
rowGap.filterProps = ['rowGap'];
|
||
|
export const gridColumn = style({
|
||
|
prop: 'gridColumn'
|
||
|
});
|
||
|
export const gridRow = style({
|
||
|
prop: 'gridRow'
|
||
|
});
|
||
|
export const gridAutoFlow = style({
|
||
|
prop: 'gridAutoFlow'
|
||
|
});
|
||
|
export const gridAutoColumns = style({
|
||
|
prop: 'gridAutoColumns'
|
||
|
});
|
||
|
export const gridAutoRows = style({
|
||
|
prop: 'gridAutoRows'
|
||
|
});
|
||
|
export const gridTemplateColumns = style({
|
||
|
prop: 'gridTemplateColumns'
|
||
|
});
|
||
|
export const gridTemplateRows = style({
|
||
|
prop: 'gridTemplateRows'
|
||
|
});
|
||
|
export const gridTemplateAreas = style({
|
||
|
prop: 'gridTemplateAreas'
|
||
|
});
|
||
|
export const gridArea = style({
|
||
|
prop: 'gridArea'
|
||
|
});
|
||
|
const grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);
|
||
|
export default grid;
|