From 2ee4528ee9b8e840e7d41d453d747514d6d77a7f Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 18 Dec 2023 17:30:11 -0600 Subject: [PATCH] Improve macro handling --- src/view/nova/lib/__tests__/theme.test.ts | 14 ++++++++++++++ src/view/nova/lib/theme.ts | 2 +- src/view/nova/themes.ts | 4 +++- src/view/screens/Debug.tsx | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/view/nova/lib/__tests__/theme.test.ts b/src/view/nova/lib/__tests__/theme.test.ts index 888b226598..73959c3923 100644 --- a/src/view/nova/lib/__tests__/theme.test.ts +++ b/src/view/nova/lib/__tests__/theme.test.ts @@ -20,6 +20,9 @@ const theme = createTheme({ }, macros: { caps: (_: boolean) => ({textTransform: 'uppercase'}), + column: (span: boolean | number) => ({ + flex: typeof span === 'number' ? span : 1, + }), }, breakpoints: { gtPhone: 640, @@ -139,6 +142,17 @@ describe('macros', () => { expect(styles).toEqual({}) }) + + test('custom', () => { + const {styles} = theme.style( + { + column: 2, + }, + [], + ) + + expect(styles).toEqual({flex: 2}) + }) }) describe('breakpoints', () => { diff --git a/src/view/nova/lib/theme.ts b/src/view/nova/lib/theme.ts index db6776a8bf..9dc2b48698 100644 --- a/src/view/nova/lib/theme.ts +++ b/src/view/nova/lib/theme.ts @@ -344,7 +344,7 @@ export const createTheme = < styles = { ...styles, // @ts-ignore no index sig, it's fine - ...(rawProps[prop] === true ? macros[prop](value, tokens) : {}), + ...(rawProps[prop] !== false ? macros[prop](value, tokens) : {}), } } else if (breakpoints[prop]) { for (const b of Object.keys(breakpoints)) { diff --git a/src/view/nova/themes.ts b/src/view/nova/themes.ts index eb40335184..4a2db3705f 100644 --- a/src/view/nova/themes.ts +++ b/src/view/nova/themes.ts @@ -132,7 +132,9 @@ export const light = createTheme({ * * */ - column: (_: boolean) => ({flex: 1}), + column: (span: boolean | number) => ({ + flex: typeof span === 'number' ? span : 1, + }), /** Shorthand for `position: 'absolute'` */ abs: (_: boolean) => ({position: 'absolute'}), /** Shorthand for `StyleSheet.absoluteFillObject` */ diff --git a/src/view/screens/Debug.tsx b/src/view/screens/Debug.tsx index ae8a983f1c..18e64e553b 100644 --- a/src/view/screens/Debug.tsx +++ b/src/view/screens/Debug.tsx @@ -139,7 +139,7 @@ export function DebugScreen() { - +