react-slip-and-slide
Version:
##### A react and react-native carousel
28 lines (27 loc) • 1.2 kB
JavaScript
import { AnimatedBox, Box, Context, elementDimensionStyles, } from '@react-slip-and-slide/utils';
import React from 'react';
export const LayoutManager = ({ children, }) => {
const { state: { itemDimensions, itemDimensionMode, engineMode, centered, OffsetX }, } = Context.useDataContext();
/**
* Infinite = false
* EngineMode = 'single'
* itemDimensionMode = 'fixed' | 'dynamic'
*/
if (engineMode === 'single') {
const dynamicCenteredCorrectionStyles = {
transform: itemDimensionMode === 'dynamic' && centered
? `translateX(${itemDimensions.width / 2}px)`
: undefined,
};
return (React.createElement(Box, { styles: dynamicCenteredCorrectionStyles },
React.createElement(AnimatedBox, { style: {
transform: [{ translateX: OffsetX }],
}, styles: Object.assign({ display: 'flex', flexDirection: 'row', alignItems: 'center' }, elementDimensionStyles(itemDimensions)) }, children)));
}
/**
* Infinite = true
* EngineMode = 'multi'
* itemDimensionMode = 'fixed'
*/
return React.createElement(React.Fragment, null, children);
};