-
Notifications
You must be signed in to change notification settings - Fork 59
/
makeStaticStyles.ts
30 lines (25 loc) · 975 Bytes
/
makeStaticStyles.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import type { GriffelStaticStyles } from '@griffel/style-types';
import { insertionFactory } from './insertionFactory';
import { resolveStaticStyleRules } from './runtime/resolveStaticStyleRules';
import type { GriffelRenderer } from './types';
import type { GriffelInsertionFactory } from './types';
export interface MakeStaticStylesOptions {
renderer: GriffelRenderer;
}
export function makeStaticStyles(
styles: GriffelStaticStyles | GriffelStaticStyles[],
factory: GriffelInsertionFactory = insertionFactory,
) {
const insertStyles = factory();
const stylesSet: GriffelStaticStyles[] = Array.isArray(styles) ? styles : [styles];
function useStaticStyles(options: MakeStaticStylesOptions): void {
insertStyles(
options.renderer,
// Static styles cannot be direction aware
'ltr',
// 👇 static rules should be inserted into default bucket
{ d: resolveStaticStyleRules(stylesSet) },
);
}
return useStaticStyles;
}