react-native-divkit 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/text/DivText.d.ts.map +1 -1
- package/dist/components/text/DivText.js +11 -6
- package/dist/components/text/DivText.js.map +1 -1
- package/dist/hooks/useDerivedFromVars.d.ts.map +1 -1
- package/dist/hooks/useDerivedFromVars.js +10 -1
- package/dist/hooks/useDerivedFromVars.js.map +1 -1
- package/package.json +1 -1
- package/src/components/text/DivText.tsx +13 -6
- package/src/hooks/useDerivedFromVars.ts +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DivText.d.ts","sourceRoot":"","sources":["../../../src/components/text/DivText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAsC,MAAM,kBAAkB,CAAC;AAKxF,MAAM,WAAW,YAAY;IACzB,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,EAAE,gBAAgB,EAAE,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"DivText.d.ts","sourceRoot":"","sources":["../../../src/components/text/DivText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAsC,MAAM,kBAAkB,CAAC;AAKxF,MAAM,WAAW,YAAY;IACzB,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,EAAE,gBAAgB,EAAE,EAAE,YAAY,qBAkMzD"}
|
|
@@ -33,6 +33,8 @@ export function DivText({ componentContext }) {
|
|
|
33
33
|
const textAlignmentHorizontal = useDerivedFromVarsSimple(json.text_alignment_horizontal || 'start', variables || new Map());
|
|
34
34
|
const textAlignmentVertical = useDerivedFromVarsSimple(json.text_alignment_vertical || 'top', variables || new Map());
|
|
35
35
|
const fontSizeUnit = useDerivedFromVarsSimple(json.font_size_unit || 'sp', variables || new Map());
|
|
36
|
+
const lineHeight = useDerivedFromVarsSimple(json.line_height, variables || new Map());
|
|
37
|
+
const letterSpacing = useDerivedFromVarsSimple(json.letter_spacing, variables || new Map());
|
|
36
38
|
const maxLines = useDerivedFromVarsSimple(json.max_lines, variables || new Map());
|
|
37
39
|
// Convert size value based on font_size_unit
|
|
38
40
|
// sp = scalable pixels (allowFontScaling handles this in RN)
|
|
@@ -80,12 +82,15 @@ export function DivText({ componentContext }) {
|
|
|
80
82
|
style.fontFamily = mappedFamily;
|
|
81
83
|
}
|
|
82
84
|
// Line height
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
// Android requires lineHeight to be an integer >= fontSize
|
|
86
|
+
if (lineHeight && fontSize) {
|
|
87
|
+
const computedLineHeight = convertSize(lineHeight);
|
|
88
|
+
const computedFontSize = style.fontSize || convertSize(fontSize);
|
|
89
|
+
style.lineHeight = Math.round(Math.max(computedLineHeight, computedFontSize));
|
|
85
90
|
}
|
|
86
91
|
// Letter spacing
|
|
87
|
-
if (
|
|
88
|
-
style.letterSpacing =
|
|
92
|
+
if (letterSpacing !== undefined) {
|
|
93
|
+
style.letterSpacing = letterSpacing;
|
|
89
94
|
}
|
|
90
95
|
// Text alignment
|
|
91
96
|
const alignValue = textAlignmentHorizontal;
|
|
@@ -131,8 +136,8 @@ export function DivText({ componentContext }) {
|
|
|
131
136
|
json.font_weight_value,
|
|
132
137
|
json.font_family,
|
|
133
138
|
typefaceProvider,
|
|
134
|
-
|
|
135
|
-
|
|
139
|
+
lineHeight,
|
|
140
|
+
letterSpacing,
|
|
136
141
|
json.underline,
|
|
137
142
|
json.strike,
|
|
138
143
|
json.font_feature_settings,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DivText.js","sourceRoot":"","sources":["../../../src/components/text/DivText.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DivText.js","sourceRoot":"","sources":["../../../src/components/text/DivText.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDerivedFromVars.d.ts","sourceRoot":"","sources":["../../src/hooks/useDerivedFromVars.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useDerivedFromVars.d.ts","sourceRoot":"","sources":["../../src/hooks/useDerivedFromVars.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAYxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,SAAS,EAAE,YAAY,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEvC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAAC,CAAC,CAAC,CA0FtG;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAEjG"}
|
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { useEffect, useState, useMemo, useRef } from 'react';
|
|
8
8
|
import { prepareVars } from '../expressions/json';
|
|
9
|
+
/**
|
|
10
|
+
* Stable module-level fallback for logError.
|
|
11
|
+
* Must be defined at module scope so that babel-plugin-transform-remove-console
|
|
12
|
+
* replaces console.error only once (stable reference), not on every hook call.
|
|
13
|
+
* If defined inline as a default parameter, the plugin creates a new function(){}
|
|
14
|
+
* on every invocation, breaking useMemo dependency comparison and causing infinite re-renders.
|
|
15
|
+
*/
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
const defaultLogError = console.error;
|
|
9
18
|
/**
|
|
10
19
|
* Hook that subscribes to variables used in JSON expressions and re-evaluates when they change
|
|
11
20
|
*
|
|
@@ -20,7 +29,7 @@ import { prepareVars } from '../expressions/json';
|
|
|
20
29
|
* ```
|
|
21
30
|
*/
|
|
22
31
|
export function useDerivedFromVars(jsonProp, options) {
|
|
23
|
-
const { variables, additionalVars, keepComplex = false, maxDepth = 10, customFunctions, store, weekStartDay = 0, logError =
|
|
32
|
+
const { variables, additionalVars, keepComplex = false, maxDepth = 10, customFunctions, store, weekStartDay = 0, logError = defaultLogError } = options;
|
|
24
33
|
// Merge variables maps
|
|
25
34
|
const allVariables = useMemo(() => {
|
|
26
35
|
if (!additionalVars || additionalVars.size === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDerivedFromVars.js","sourceRoot":"","sources":["../../src/hooks/useDerivedFromVars.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useDerivedFromVars.js","sourceRoot":"","sources":["../../src/hooks/useDerivedFromVars.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -53,6 +53,10 @@ export function DivText({ componentContext }: DivTextProps) {
|
|
|
53
53
|
|
|
54
54
|
const fontSizeUnit = useDerivedFromVarsSimple<FontSizeUnit>(json.font_size_unit || 'sp', variables || new Map());
|
|
55
55
|
|
|
56
|
+
const lineHeight = useDerivedFromVarsSimple<number | undefined>(json.line_height, variables || new Map());
|
|
57
|
+
|
|
58
|
+
const letterSpacing = useDerivedFromVarsSimple<number | undefined>(json.letter_spacing, variables || new Map());
|
|
59
|
+
|
|
56
60
|
const maxLines = useDerivedFromVarsSimple<number | undefined>(json.max_lines, variables || new Map());
|
|
57
61
|
|
|
58
62
|
// Convert size value based on font_size_unit
|
|
@@ -107,13 +111,16 @@ export function DivText({ componentContext }: DivTextProps) {
|
|
|
107
111
|
}
|
|
108
112
|
|
|
109
113
|
// Line height
|
|
110
|
-
|
|
111
|
-
|
|
114
|
+
// Android requires lineHeight to be an integer >= fontSize
|
|
115
|
+
if (lineHeight && fontSize) {
|
|
116
|
+
const computedLineHeight = convertSize(lineHeight);
|
|
117
|
+
const computedFontSize = style.fontSize || convertSize(fontSize);
|
|
118
|
+
style.lineHeight = Math.round(Math.max(computedLineHeight, computedFontSize));
|
|
112
119
|
}
|
|
113
120
|
|
|
114
121
|
// Letter spacing
|
|
115
|
-
if (
|
|
116
|
-
style.letterSpacing =
|
|
122
|
+
if (letterSpacing !== undefined) {
|
|
123
|
+
style.letterSpacing = letterSpacing;
|
|
117
124
|
}
|
|
118
125
|
|
|
119
126
|
// Text alignment
|
|
@@ -160,8 +167,8 @@ export function DivText({ componentContext }: DivTextProps) {
|
|
|
160
167
|
json.font_weight_value,
|
|
161
168
|
json.font_family,
|
|
162
169
|
typefaceProvider,
|
|
163
|
-
|
|
164
|
-
|
|
170
|
+
lineHeight,
|
|
171
|
+
letterSpacing,
|
|
165
172
|
json.underline,
|
|
166
173
|
json.strike,
|
|
167
174
|
json.font_feature_settings,
|
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
import { useEffect, useState, useMemo, useRef } from 'react';
|
|
9
9
|
import type { MaybeMissing } from '../expressions/json';
|
|
10
10
|
import { prepareVars } from '../expressions/json';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Stable module-level fallback for logError.
|
|
14
|
+
* Must be defined at module scope so that babel-plugin-transform-remove-console
|
|
15
|
+
* replaces console.error only once (stable reference), not on every hook call.
|
|
16
|
+
* If defined inline as a default parameter, the plugin creates a new function(){}
|
|
17
|
+
* on every invocation, breaking useMemo dependency comparison and causing infinite re-renders.
|
|
18
|
+
*/
|
|
19
|
+
// eslint-disable-next-line no-console
|
|
20
|
+
const defaultLogError: (error: Error) => void = console.error;
|
|
11
21
|
import type { Variable } from '../expressions/variable';
|
|
12
22
|
import type { VariablesMap } from '../expressions/eval';
|
|
13
23
|
import type { Store } from '../../typings/store';
|
|
@@ -81,7 +91,7 @@ export function useDerivedFromVars<T>(jsonProp: T, options: UseDerivedFromVarsOp
|
|
|
81
91
|
customFunctions,
|
|
82
92
|
store,
|
|
83
93
|
weekStartDay = 0,
|
|
84
|
-
logError =
|
|
94
|
+
logError = defaultLogError
|
|
85
95
|
} = options;
|
|
86
96
|
|
|
87
97
|
// Merge variables maps
|