Skip to content

Commit 2b31157

Browse files
authored
fix: circular imports with rootVariables (#75)
1 parent 685435c commit 2b31157

File tree

4 files changed

+35
-36
lines changed

4 files changed

+35
-36
lines changed

src/runtime/native/injection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import {
77
family,
88
observable,
99
observableBatch,
10-
rootVariables,
1110
type Observable,
1211
} from "./reactivity";
12+
import { rootVariables } from "./root";
1313

1414
export function StyleCollection() {
1515
return null;

src/runtime/native/reactivity.ts

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import {
77
type LayoutRectangle,
88
} from "react-native";
99

10-
import type { StyleDescriptor, VariableValue } from "../../compiler";
11-
import { testMediaQuery } from "./conditions/media-query";
10+
import type { StyleDescriptor } from "../../compiler";
1211

1312
export type Effect = {
1413
observers: Set<Effect>;
@@ -190,33 +189,6 @@ export const VariableContext = createContext<VariableContextValue>({
190189
[VAR_SYMBOL]: true,
191190
});
192191

193-
const rootVariableFamily = () => {
194-
return family<string, Observable<StyleDescriptor, VariableValue[]>>(() => {
195-
const obs = observable<StyleDescriptor, VariableValue[]>(
196-
(read, variableValue) => {
197-
if (!variableValue) return undefined;
198-
199-
for (const [value, mediaQuery] of variableValue) {
200-
if (!mediaQuery) {
201-
return value;
202-
}
203-
204-
if (testMediaQuery(mediaQuery, read)) {
205-
return value;
206-
}
207-
}
208-
209-
return undefined;
210-
},
211-
);
212-
213-
return obs;
214-
});
215-
};
216-
217-
export const rootVariables = rootVariableFamily();
218-
export const universalVariables = rootVariableFamily();
219-
220192
/** Units *********************************************************************/
221193

222194
export const rem = observable(14);

src/runtime/native/root.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import type { StyleDescriptor, VariableValue } from "react-native-css/compiler";
2+
3+
import { testMediaQuery } from "./conditions/media-query";
4+
import { family, observable, type Observable } from "./reactivity";
5+
6+
const rootVariableFamily = () => {
7+
return family<string, Observable<StyleDescriptor, VariableValue[]>>(() => {
8+
const obs = observable<StyleDescriptor, VariableValue[]>(
9+
(read, variableValue) => {
10+
if (!variableValue) return undefined;
11+
12+
for (const [value, mediaQuery] of variableValue) {
13+
if (!mediaQuery) {
14+
return value;
15+
}
16+
17+
if (testMediaQuery(mediaQuery, read)) {
18+
return value;
19+
}
20+
}
21+
22+
return undefined;
23+
},
24+
);
25+
26+
return obs;
27+
});
28+
};
29+
30+
export const rootVariables = rootVariableFamily();
31+
export const universalVariables = rootVariableFamily();

src/runtime/native/styles/variables.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import type { StyleDescriptor, StyleFunction } from "../../../compiler";
22
import { isStyleDescriptorArray } from "../../utils";
3-
import {
4-
rootVariables,
5-
universalVariables,
6-
VAR_SYMBOL,
7-
type Getter,
8-
} from "../reactivity";
3+
import { VAR_SYMBOL, type Getter } from "../reactivity";
4+
import { rootVariables, universalVariables } from "../root";
95
import type { ResolveValueOptions, SimpleResolveValue } from "./resolve";
106

117
export function varResolver(

0 commit comments

Comments
 (0)