UNPKG

823 BJavaScriptView Raw
1import { from as flatten } from 'array-flatten';
2import rtlCSSJS from 'rtl-css-js';
3
4import separateStyles from './separateStyles';
5
6// Styles is an array of properties returned by `create()`, a POJO, or an
7// array thereof. POJOs are treated as inline styles. This version of the
8// resolve function explicitly flips inline styles for an RTL context.
9// This function returns an object to be spread onto an element.
10export default function resolveRTL(css, styles) {
11 const flattenedStyles = flatten(styles);
12
13 const {
14 aphroditeStyles,
15 hasInlineStyles,
16 inlineStyles,
17 } = separateStyles(flattenedStyles);
18
19 const result = {};
20 if (aphroditeStyles.length > 0) {
21 result.className = css(...aphroditeStyles);
22 }
23
24 if (hasInlineStyles) {
25 result.style = rtlCSSJS(inlineStyles);
26 }
27
28 return result;
29}