diff --git a/src/styled.tsx b/src/styled.tsx index d39663d..239f588 100644 --- a/src/styled.tsx +++ b/src/styled.tsx @@ -47,6 +47,7 @@ export function styled
( hover, focus, active, + flatten: false, [ChildClassNameSymbol]: inheritedClassName, })(classes); @@ -75,7 +76,7 @@ export function styled
(
children,
} as unknown as P);
- return !classes.includes("component")
+ return !classes.split(/\s+/).includes("component")
? element
: createElement ({
hover,
focus,
active,
+ flatten = true,
[ChildClassNameSymbol]: inheritedClassNames = "",
nthChild: initialNthChild = 0,
}: UseTailwindOptions = {}) {
@@ -56,7 +50,7 @@ export function useTailwind ({
assertPlatform(platform);
return (className = "") => {
- const tailwindStyles = {} as WithChildClassNameSymbol ;
+ const tailwindStyles = [] as WithChildClassNameSymbol ;
const transforms: ViewStyle["transform"] = [];
const childClassNameSet = new Set ({
const { transform, ...rest } = styleRecord;
if (styles) {
- Object.assign(tailwindStyles, rest);
+ tailwindStyles.push(rest as P);
}
if (transform) {
@@ -153,16 +147,14 @@ export function useTailwind ({
if (transforms.length > 0) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- (tailwindStyles as any).transform = transforms;
+ tailwindStyles.push({ transform: transforms } as any);
}
if (childClassNameSet.size > 0) {
tailwindStyles[ChildClassNameSymbol] = [...childClassNameSet].join(" ");
}
- return Platform.OS === "web"
- ? StyleSheet.flatten(tailwindStyles) // RNW <=0.17 still uses ReactNativePropRegistry
- : tailwindStyles;
+ return flatten ? StyleSheet.flatten(tailwindStyles) : tailwindStyles;
};
}
diff --git a/src/use-tailwind.ts b/src/use-tailwind.ts
index 93733c2..98cfe3a 100644
--- a/src/use-tailwind.ts
+++ b/src/use-tailwind.ts
@@ -14,6 +14,7 @@ export type UseTailwindCallback = (className?: string) => StyleProp &
};
export interface UseTailwindOptions {
+ flatten?: boolean;
nthChild?: number;
hover?: boolean;
focus?: boolean;