react-native-divkit 1.6.1 → 1.6.3
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/container/DivContainer.d.ts.map +1 -1
- package/dist/components/container/DivContainer.js +23 -9
- package/dist/components/container/DivContainer.js.map +1 -1
- package/dist/components/image/DivImage.d.ts +12 -8
- package/dist/components/image/DivImage.d.ts.map +1 -1
- package/dist/components/image/DivImage.js +53 -29
- package/dist/components/image/DivImage.js.map +1 -1
- package/dist/components/utilities/Outer.d.ts.map +1 -1
- package/dist/components/utilities/Outer.js +19 -15
- package/dist/components/utilities/Outer.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/dist/utils/applyTemplate.d.ts.map +1 -1
- package/dist/utils/applyTemplate.js +14 -3
- package/dist/utils/applyTemplate.js.map +1 -1
- package/dist/utils/correctImageAlignment.d.ts +10 -0
- package/dist/utils/correctImageAlignment.d.ts.map +1 -0
- package/dist/utils/correctImageAlignment.js +24 -0
- package/dist/utils/correctImageAlignment.js.map +1 -0
- package/package.json +1 -1
- package/src/components/container/DivContainer.tsx +23 -9
- package/src/components/image/DivImage.tsx +71 -31
- package/src/components/utilities/Outer.tsx +17 -13
- package/src/hooks/useDerivedFromVars.ts +11 -1
- package/src/utils/applyTemplate.ts +17 -3
- package/src/utils/correctImageAlignment.ts +24 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DivContainer.d.ts","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AASpF,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"DivContainer.d.ts","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AASpF,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,qBAwJnE"}
|
|
@@ -54,6 +54,11 @@ export function DivContainer({ componentContext }) {
|
|
|
54
54
|
}
|
|
55
55
|
if (orientation === 'horizontal') {
|
|
56
56
|
params.parentContainerOrientation = 'horizontal';
|
|
57
|
+
// If this horizontal container wraps its own content, children with default
|
|
58
|
+
// (match_parent) width should NOT use flexGrow — they should wrap their content too.
|
|
59
|
+
if (json.width?.type === 'wrap_content') {
|
|
60
|
+
params.parentHorizontalWrapContent = true;
|
|
61
|
+
}
|
|
57
62
|
}
|
|
58
63
|
else if (orientation === 'vertical') {
|
|
59
64
|
params.parentContainerOrientation = 'vertical';
|
|
@@ -75,9 +80,15 @@ export function DivContainer({ componentContext }) {
|
|
|
75
80
|
}
|
|
76
81
|
return params;
|
|
77
82
|
}, [orientation, contentAlignmentHorizontal, contentAlignmentVertical]);
|
|
78
|
-
// For overlap mode,
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
// For overlap mode, build a per-child absolute wrapper style
|
|
84
|
+
// justifyContent / alignItems position the child within the full-area overlay
|
|
85
|
+
const getOverlapWrapperStyle = useMemo(() => {
|
|
86
|
+
if (orientation !== 'overlap')
|
|
87
|
+
return undefined;
|
|
88
|
+
return (item) => {
|
|
89
|
+
// Child's own alignment takes priority over container's content alignment
|
|
90
|
+
const alignV = item.alignment_vertical || contentAlignmentVertical || 'top';
|
|
91
|
+
const alignH = item.alignment_horizontal || contentAlignmentHorizontal || 'start';
|
|
81
92
|
return {
|
|
82
93
|
position: 'absolute',
|
|
83
94
|
top: 0,
|
|
@@ -85,10 +96,11 @@ export function DivContainer({ componentContext }) {
|
|
|
85
96
|
right: 0,
|
|
86
97
|
bottom: 0,
|
|
87
98
|
flexDirection: 'column',
|
|
99
|
+
justifyContent: mapContentAlignmentToJustify(alignV, direction),
|
|
100
|
+
alignItems: mapContentAlignmentToAlign(alignH, direction),
|
|
88
101
|
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
}, [orientation]);
|
|
102
|
+
};
|
|
103
|
+
}, [orientation, contentAlignmentVertical, contentAlignmentHorizontal, direction]);
|
|
92
104
|
const renderChildren = () => {
|
|
93
105
|
if (!json.items || json.items.length === 0) {
|
|
94
106
|
return null;
|
|
@@ -101,9 +113,11 @@ export function DivContainer({ componentContext }) {
|
|
|
101
113
|
return null;
|
|
102
114
|
}
|
|
103
115
|
const child = <DivComponent key={item.id || `item-${index}`} componentContext={childContext}/>;
|
|
104
|
-
// Wrap in positioned View for overlap mode
|
|
105
|
-
|
|
106
|
-
|
|
116
|
+
// Wrap in positioned View for overlap mode (all except first child).
|
|
117
|
+
// The first child stays in normal flow to establish the container's size;
|
|
118
|
+
// subsequent children are absolutely positioned on top of it.
|
|
119
|
+
if (orientation === 'overlap' && index > 0 && getOverlapWrapperStyle) {
|
|
120
|
+
return (<View key={item.id || `item-${index}`} style={getOverlapWrapperStyle(item)}>
|
|
107
121
|
{child}
|
|
108
122
|
</View>);
|
|
109
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DivContainer.js","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DivContainer.js","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,21 +6,25 @@ export interface DivImageProps {
|
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* DivImage component - renders images from network URLs
|
|
9
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* Implemented:
|
|
10
11
|
* - Network image loading
|
|
11
12
|
* - Scaling modes (fill, fit, stretch, no_scale)
|
|
12
13
|
* - Placeholder color while loading
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
14
|
+
* - content_alignment_horizontal / content_alignment_vertical
|
|
15
|
+
* - no_scale: exact positioning via getSize + container flex
|
|
16
|
+
* - fit/fill: best-effort via container flex (resizeMode always centers internally)
|
|
17
|
+
* - aspect: { ratio } — explicit aspect ratio
|
|
18
|
+
* - height: wrap_content — natural size via getSize
|
|
15
19
|
*
|
|
16
20
|
* Deferred for post-MVP:
|
|
17
|
-
* - GIF support (requires native module or library)
|
|
18
|
-
* - Image preview
|
|
21
|
+
* - GIF animation support (requires native module or library)
|
|
22
|
+
* - Image preview / blur-up (preview field)
|
|
19
23
|
* - Tint color and tint modes
|
|
20
24
|
* - Image filters (blur, etc.)
|
|
21
|
-
* - Appearance animations
|
|
22
|
-
* - High priority preview
|
|
23
|
-
* - Preload required
|
|
25
|
+
* - Appearance animations (appearance_animation)
|
|
26
|
+
* - High priority preview (high_priority_preview_show)
|
|
27
|
+
* - Preload required (preload_required)
|
|
24
28
|
* - react-native-fast-image integration
|
|
25
29
|
*
|
|
26
30
|
* Based on Web Image.svelte
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DivImage.d.ts","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DivImage.d.ts","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQtD,MAAM,WAAW,aAAa;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,EAAE,aAAa,qBAiK3D"}
|
|
@@ -1,25 +1,30 @@
|
|
|
1
|
-
import React, { useMemo, useState } from 'react';
|
|
1
|
+
import React, { useMemo, useState, useEffect } from 'react';
|
|
2
2
|
import { Image, View, ActivityIndicator } from 'react-native';
|
|
3
3
|
import { Outer } from '../utilities/Outer';
|
|
4
4
|
import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
|
|
5
5
|
import { wrapError } from '../../utils/wrapError';
|
|
6
|
+
import { alignHToFlex, alignVToFlex } from '../../utils/correctImageAlignment';
|
|
6
7
|
/**
|
|
7
8
|
* DivImage component - renders images from network URLs
|
|
8
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* Implemented:
|
|
9
11
|
* - Network image loading
|
|
10
12
|
* - Scaling modes (fill, fit, stretch, no_scale)
|
|
11
13
|
* - Placeholder color while loading
|
|
12
|
-
* -
|
|
13
|
-
*
|
|
14
|
+
* - content_alignment_horizontal / content_alignment_vertical
|
|
15
|
+
* - no_scale: exact positioning via getSize + container flex
|
|
16
|
+
* - fit/fill: best-effort via container flex (resizeMode always centers internally)
|
|
17
|
+
* - aspect: { ratio } — explicit aspect ratio
|
|
18
|
+
* - height: wrap_content — natural size via getSize
|
|
14
19
|
*
|
|
15
20
|
* Deferred for post-MVP:
|
|
16
|
-
* - GIF support (requires native module or library)
|
|
17
|
-
* - Image preview
|
|
21
|
+
* - GIF animation support (requires native module or library)
|
|
22
|
+
* - Image preview / blur-up (preview field)
|
|
18
23
|
* - Tint color and tint modes
|
|
19
24
|
* - Image filters (blur, etc.)
|
|
20
|
-
* - Appearance animations
|
|
21
|
-
* - High priority preview
|
|
22
|
-
* - Preload required
|
|
25
|
+
* - Appearance animations (appearance_animation)
|
|
26
|
+
* - High priority preview (high_priority_preview_show)
|
|
27
|
+
* - Preload required (preload_required)
|
|
23
28
|
* - react-native-fast-image integration
|
|
24
29
|
*
|
|
25
30
|
* Based on Web Image.svelte
|
|
@@ -28,52 +33,71 @@ export function DivImage({ componentContext }) {
|
|
|
28
33
|
const { json, variables } = componentContext;
|
|
29
34
|
const [loading, setLoading] = useState(true);
|
|
30
35
|
const [error, setError] = useState(false);
|
|
36
|
+
const [naturalSize, setNaturalSize] = useState(null);
|
|
31
37
|
// Reactive properties
|
|
32
38
|
const imageUrl = useDerivedFromVarsSimple(json.image_url || json.gif_url, variables || new Map());
|
|
33
39
|
const scale = useDerivedFromVarsSimple(json.scale || 'fill', variables || new Map());
|
|
34
40
|
const placeholderColor = useDerivedFromVarsSimple(json.placeholder_color, variables || new Map());
|
|
41
|
+
const contentAlignH = useDerivedFromVarsSimple(json.content_alignment_horizontal || 'center', variables || new Map());
|
|
42
|
+
const contentAlignV = useDerivedFromVarsSimple(json.content_alignment_vertical || 'center', variables || new Map());
|
|
43
|
+
const isHeightWrapContent = json.height?.type === 'wrap_content';
|
|
44
|
+
const aspectRatio = json.aspect?.ratio;
|
|
45
|
+
// Fetch natural image dimensions when needed:
|
|
46
|
+
// - wrap_content without explicit aspect (to set container height)
|
|
47
|
+
// - no_scale mode (to size Image to natural dims so container alignment works)
|
|
48
|
+
const needsNaturalSize = (isHeightWrapContent && !aspectRatio) || scale === 'no_scale';
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (needsNaturalSize && imageUrl) {
|
|
51
|
+
Image.getSize(imageUrl, (w, h) => setNaturalSize({ width: w, height: h }), (_error) => { });
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
setNaturalSize(null);
|
|
55
|
+
}
|
|
56
|
+
}, [imageUrl, needsNaturalSize]);
|
|
57
|
+
// Effective aspect ratio for container sizing (wrap_content case only)
|
|
58
|
+
const effectiveAspectRatio = aspectRatio ?? ((isHeightWrapContent && naturalSize) ? naturalSize.width / naturalSize.height : undefined);
|
|
35
59
|
// Map DivKit scale to React Native resizeMode
|
|
36
60
|
const resizeMode = useMemo(() => {
|
|
37
61
|
switch (scale) {
|
|
38
62
|
case 'fill':
|
|
39
|
-
return 'cover';
|
|
63
|
+
return 'cover';
|
|
40
64
|
case 'fit':
|
|
41
|
-
return 'contain';
|
|
65
|
+
return 'contain';
|
|
42
66
|
case 'stretch':
|
|
43
|
-
return 'stretch';
|
|
67
|
+
return 'stretch';
|
|
44
68
|
case 'no_scale':
|
|
45
|
-
return 'center';
|
|
69
|
+
return 'center';
|
|
46
70
|
default:
|
|
47
71
|
return 'cover';
|
|
48
72
|
}
|
|
49
73
|
}, [scale]);
|
|
50
|
-
// Container style
|
|
74
|
+
// Container style
|
|
51
75
|
const containerStyle = useMemo(() => {
|
|
52
76
|
const style = {
|
|
53
|
-
overflow: 'hidden'
|
|
77
|
+
overflow: 'hidden',
|
|
78
|
+
alignItems: alignHToFlex(contentAlignH),
|
|
79
|
+
justifyContent: alignVToFlex(contentAlignV),
|
|
54
80
|
};
|
|
55
|
-
// Placeholder background
|
|
56
81
|
if (placeholderColor && loading) {
|
|
57
82
|
style.backgroundColor = placeholderColor;
|
|
58
83
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
style.aspectRatio = json.aspect.ratio;
|
|
84
|
+
if (effectiveAspectRatio !== undefined) {
|
|
85
|
+
style.aspectRatio = effectiveAspectRatio;
|
|
62
86
|
}
|
|
63
87
|
return style;
|
|
64
|
-
}, [placeholderColor, loading,
|
|
88
|
+
}, [placeholderColor, loading, effectiveAspectRatio, contentAlignH, contentAlignV]);
|
|
65
89
|
// Image style
|
|
66
90
|
const imageStyle = useMemo(() => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
height:
|
|
70
|
-
};
|
|
71
|
-
// Aspect ratio
|
|
72
|
-
if (json.aspect?.ratio) {
|
|
73
|
-
style.aspectRatio = json.aspect.ratio;
|
|
91
|
+
// no_scale: size to natural dimensions so container alignment has effect
|
|
92
|
+
if (scale === 'no_scale' && naturalSize) {
|
|
93
|
+
return { width: naturalSize.width, height: naturalSize.height };
|
|
74
94
|
}
|
|
75
|
-
|
|
76
|
-
|
|
95
|
+
// wrap_content without known size yet: zero height until getSize resolves
|
|
96
|
+
if (isHeightWrapContent && effectiveAspectRatio === undefined) {
|
|
97
|
+
return { width: '100%', height: 0 };
|
|
98
|
+
}
|
|
99
|
+
return { width: '100%', height: '100%' };
|
|
100
|
+
}, [scale, naturalSize, isHeightWrapContent, effectiveAspectRatio]);
|
|
77
101
|
const handleLoadEnd = () => {
|
|
78
102
|
setLoading(false);
|
|
79
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DivImage.js","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DivImage.js","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Outer.d.ts","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAgC,MAAM,OAAO,CAAC;AACvE,OAAO,EAA6B,SAAS,EAAsC,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqGpD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAC3D,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACvD,gBAAgB,EAChB,QAAQ,EACR,KAAK,EAAE,WAAW,EACrB,EAAE,UAAU,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Outer.d.ts","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAgC,MAAM,OAAO,CAAC;AACvE,OAAO,EAA6B,SAAS,EAAsC,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqGpD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAC3D,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACvD,gBAAgB,EAChB,QAAQ,EACR,KAAK,EAAE,WAAW,EACrB,EAAE,UAAU,CAAC,CAAC,CAAC,4BAqaf"}
|
|
@@ -211,10 +211,22 @@ export function Outer({ componentContext, children, style: customStyle }) {
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
else {
|
|
214
|
-
|
|
215
|
-
if (
|
|
216
|
-
|
|
217
|
-
|
|
214
|
+
// Default width = match_parent — same logic as explicit match_parent
|
|
215
|
+
if (parentOrientation === 'horizontal') {
|
|
216
|
+
if (layoutParams.parentHorizontalWrapContent) {
|
|
217
|
+
// match_parent inside wrap_content horizontal container = wrap content
|
|
218
|
+
// (can't grow into a parent that has no fixed width itself)
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
// Width is main axis in row layout — use flexGrow, not alignSelf stretch
|
|
222
|
+
styles.flexGrow = 1;
|
|
223
|
+
styles.flexShrink = 1;
|
|
224
|
+
styles.flexBasis = 0;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
// Width is cross axis in column layout (or unknown) — stretch
|
|
229
|
+
styles.alignSelf = 'stretch';
|
|
218
230
|
}
|
|
219
231
|
}
|
|
220
232
|
// Height
|
|
@@ -252,7 +264,8 @@ export function Outer({ componentContext, children, style: customStyle }) {
|
|
|
252
264
|
}
|
|
253
265
|
// Overlap positioning: wrapper is absolute + flexDirection: column
|
|
254
266
|
if (isOverlap) {
|
|
255
|
-
|
|
267
|
+
// undefined width means match_parent (default per DivKit spec)
|
|
268
|
+
const widthType = width ? width.type : 'match_parent';
|
|
256
269
|
const heightType = height ? height.type : undefined;
|
|
257
270
|
// Horizontal: alignSelf controls cross-axis (horizontal) in column wrapper
|
|
258
271
|
if (widthType === 'match_parent') {
|
|
@@ -262,20 +275,11 @@ export function Outer({ componentContext, children, style: customStyle }) {
|
|
|
262
275
|
styles.alignSelf = effectiveHAlign;
|
|
263
276
|
}
|
|
264
277
|
// Vertical: main axis in column wrapper
|
|
278
|
+
// justifyContent on the wrapper handles positioning; only match_parent needs flexGrow
|
|
265
279
|
if (heightType === 'match_parent') {
|
|
266
280
|
styles.flexGrow = 1;
|
|
267
281
|
styles.flexBasis = 0;
|
|
268
282
|
}
|
|
269
|
-
else {
|
|
270
|
-
// Use margin auto trick for vertical positioning
|
|
271
|
-
if (effectiveVAlign === 'center') {
|
|
272
|
-
styles.marginTop = 'auto';
|
|
273
|
-
styles.marginBottom = 'auto';
|
|
274
|
-
}
|
|
275
|
-
else if (effectiveVAlign === 'flex-end') {
|
|
276
|
-
styles.marginTop = 'auto';
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
283
|
}
|
|
280
284
|
// Paddings
|
|
281
285
|
if (paddings) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Outer.js","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Outer.js","sourceRoot":"","sources":["../../../src/components/utilities/Outer.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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyTemplate.d.ts","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGrE,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,CAAC,EACP,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACzC;IACC,IAAI,EAAE,CAAC,CAAC;IACR,eAAe,EAAE,eAAe,CAAC;CACpC,CAAC;AAuFF,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACxC,GAAG,
|
|
1
|
+
{"version":3,"file":"applyTemplate.d.ts","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGrE,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,CAAC,EACP,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACzC;IACC,IAAI,EAAE,CAAC,CAAC;IACR,eAAe,EAAE,eAAe,CAAC;CACpC,CAAC;AAuFF,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACxC,GAAG,CAiDL"}
|
|
@@ -68,11 +68,22 @@ export function applyTemplatesRecursively(json, templates, logError) {
|
|
|
68
68
|
return json.map(item => applyTemplatesRecursively(item, templates, logError));
|
|
69
69
|
}
|
|
70
70
|
let resolvedJson = json;
|
|
71
|
-
// Attempt expansion if type matches a template
|
|
71
|
+
// Attempt expansion if type matches a template (loop for chained templates, like Web)
|
|
72
72
|
if (json.type && templates[json.type]) {
|
|
73
73
|
try {
|
|
74
|
-
const
|
|
75
|
-
|
|
74
|
+
const usedTypes = new Set([json.type]);
|
|
75
|
+
let current = json;
|
|
76
|
+
let context = {};
|
|
77
|
+
while (current.type && templates[current.type]) {
|
|
78
|
+
const res = applyTemplate(current, context, templates, logError);
|
|
79
|
+
current = res.json;
|
|
80
|
+
context = res.templateContext;
|
|
81
|
+
if (usedTypes.has(current.type)) {
|
|
82
|
+
break; // circular reference guard
|
|
83
|
+
}
|
|
84
|
+
usedTypes.add(current.type);
|
|
85
|
+
}
|
|
86
|
+
resolvedJson = current;
|
|
76
87
|
}
|
|
77
88
|
catch (_e) {
|
|
78
89
|
// Expansion failed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyTemplate.js","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"applyTemplate.js","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps DivKit content_alignment_horizontal to React Native flex alignment.
|
|
3
|
+
* Analogous to web's correctImagePosition utility.
|
|
4
|
+
*/
|
|
5
|
+
export declare function alignHToFlex(align: string): 'flex-start' | 'center' | 'flex-end';
|
|
6
|
+
/**
|
|
7
|
+
* Maps DivKit content_alignment_vertical to React Native flex alignment.
|
|
8
|
+
*/
|
|
9
|
+
export declare function alignVToFlex(align: string): 'flex-start' | 'center' | 'flex-end';
|
|
10
|
+
//# sourceMappingURL=correctImageAlignment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correctImageAlignment.d.ts","sourceRoot":"","sources":["../../src/utils/correctImageAlignment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,CAQhF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,CAMhF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps DivKit content_alignment_horizontal to React Native flex alignment.
|
|
3
|
+
* Analogous to web's correctImagePosition utility.
|
|
4
|
+
*/
|
|
5
|
+
export function alignHToFlex(align) {
|
|
6
|
+
switch (align) {
|
|
7
|
+
case 'left':
|
|
8
|
+
case 'start': return 'flex-start';
|
|
9
|
+
case 'right':
|
|
10
|
+
case 'end': return 'flex-end';
|
|
11
|
+
default: return 'center';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Maps DivKit content_alignment_vertical to React Native flex alignment.
|
|
16
|
+
*/
|
|
17
|
+
export function alignVToFlex(align) {
|
|
18
|
+
switch (align) {
|
|
19
|
+
case 'top': return 'flex-start';
|
|
20
|
+
case 'bottom': return 'flex-end';
|
|
21
|
+
default: return 'center';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=correctImageAlignment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correctImageAlignment.js","sourceRoot":"","sources":["../../src/utils/correctImageAlignment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;QAClC,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC;QAC9B,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;IAC7B,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC;QAChC,KAAK,QAAQ,CAAC,CAAC,OAAO,UAAU,CAAC;QACjC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;IAC7B,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -81,6 +81,11 @@ export function DivContainer({ componentContext }: DivContainerProps) {
|
|
|
81
81
|
|
|
82
82
|
if (orientation === 'horizontal') {
|
|
83
83
|
params.parentContainerOrientation = 'horizontal';
|
|
84
|
+
// If this horizontal container wraps its own content, children with default
|
|
85
|
+
// (match_parent) width should NOT use flexGrow — they should wrap their content too.
|
|
86
|
+
if ((json as any).width?.type === 'wrap_content') {
|
|
87
|
+
params.parentHorizontalWrapContent = true;
|
|
88
|
+
}
|
|
84
89
|
} else if (orientation === 'vertical') {
|
|
85
90
|
params.parentContainerOrientation = 'vertical';
|
|
86
91
|
}
|
|
@@ -105,9 +110,15 @@ export function DivContainer({ componentContext }: DivContainerProps) {
|
|
|
105
110
|
return params;
|
|
106
111
|
}, [orientation, contentAlignmentHorizontal, contentAlignmentVertical]);
|
|
107
112
|
|
|
108
|
-
// For overlap mode,
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
// For overlap mode, build a per-child absolute wrapper style
|
|
114
|
+
// justifyContent / alignItems position the child within the full-area overlay
|
|
115
|
+
const getOverlapWrapperStyle = useMemo(() => {
|
|
116
|
+
if (orientation !== 'overlap') return undefined;
|
|
117
|
+
|
|
118
|
+
return (item: any): ViewStyle => {
|
|
119
|
+
// Child's own alignment takes priority over container's content alignment
|
|
120
|
+
const alignV: string = item.alignment_vertical || contentAlignmentVertical || 'top';
|
|
121
|
+
const alignH: string = item.alignment_horizontal || contentAlignmentHorizontal || 'start';
|
|
111
122
|
return {
|
|
112
123
|
position: 'absolute',
|
|
113
124
|
top: 0,
|
|
@@ -115,10 +126,11 @@ export function DivContainer({ componentContext }: DivContainerProps) {
|
|
|
115
126
|
right: 0,
|
|
116
127
|
bottom: 0,
|
|
117
128
|
flexDirection: 'column',
|
|
129
|
+
justifyContent: mapContentAlignmentToJustify(alignV as any, direction),
|
|
130
|
+
alignItems: mapContentAlignmentToAlign(alignH as any, direction),
|
|
118
131
|
};
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
}, [orientation]);
|
|
132
|
+
};
|
|
133
|
+
}, [orientation, contentAlignmentVertical, contentAlignmentHorizontal, direction]);
|
|
122
134
|
|
|
123
135
|
const renderChildren = () => {
|
|
124
136
|
if (!json.items || json.items.length === 0) {
|
|
@@ -136,10 +148,12 @@ export function DivContainer({ componentContext }: DivContainerProps) {
|
|
|
136
148
|
|
|
137
149
|
const child = <DivComponent key={item.id || `item-${index}`} componentContext={childContext} />;
|
|
138
150
|
|
|
139
|
-
// Wrap in positioned View for overlap mode
|
|
140
|
-
|
|
151
|
+
// Wrap in positioned View for overlap mode (all except first child).
|
|
152
|
+
// The first child stays in normal flow to establish the container's size;
|
|
153
|
+
// subsequent children are absolutely positioned on top of it.
|
|
154
|
+
if (orientation === 'overlap' && index > 0 && getOverlapWrapperStyle) {
|
|
141
155
|
return (
|
|
142
|
-
<View key={item.id || `item-${index}`} style={
|
|
156
|
+
<View key={item.id || `item-${index}`} style={getOverlapWrapperStyle(item)}>
|
|
143
157
|
{child}
|
|
144
158
|
</View>
|
|
145
159
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useMemo, useState } from 'react';
|
|
1
|
+
import React, { useMemo, useState, useEffect } from 'react';
|
|
2
2
|
import { Image, View, ViewStyle, ImageStyle, ActivityIndicator } from 'react-native';
|
|
3
3
|
import type { ComponentContext } from '../../types/componentContext';
|
|
4
4
|
import type { DivImageData } from '../../types/image';
|
|
@@ -6,6 +6,8 @@ import type { ImageScale } from '../../types/imageScale';
|
|
|
6
6
|
import { Outer } from '../utilities/Outer';
|
|
7
7
|
import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
|
|
8
8
|
import { wrapError } from '../../utils/wrapError';
|
|
9
|
+
import { alignHToFlex, alignVToFlex } from '../../utils/correctImageAlignment';
|
|
10
|
+
|
|
9
11
|
|
|
10
12
|
export interface DivImageProps {
|
|
11
13
|
componentContext: ComponentContext<DivImageData>;
|
|
@@ -13,21 +15,25 @@ export interface DivImageProps {
|
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
17
|
* DivImage component - renders images from network URLs
|
|
16
|
-
*
|
|
18
|
+
*
|
|
19
|
+
* Implemented:
|
|
17
20
|
* - Network image loading
|
|
18
21
|
* - Scaling modes (fill, fit, stretch, no_scale)
|
|
19
22
|
* - Placeholder color while loading
|
|
20
|
-
* -
|
|
21
|
-
*
|
|
23
|
+
* - content_alignment_horizontal / content_alignment_vertical
|
|
24
|
+
* - no_scale: exact positioning via getSize + container flex
|
|
25
|
+
* - fit/fill: best-effort via container flex (resizeMode always centers internally)
|
|
26
|
+
* - aspect: { ratio } — explicit aspect ratio
|
|
27
|
+
* - height: wrap_content — natural size via getSize
|
|
22
28
|
*
|
|
23
29
|
* Deferred for post-MVP:
|
|
24
|
-
* - GIF support (requires native module or library)
|
|
25
|
-
* - Image preview
|
|
30
|
+
* - GIF animation support (requires native module or library)
|
|
31
|
+
* - Image preview / blur-up (preview field)
|
|
26
32
|
* - Tint color and tint modes
|
|
27
33
|
* - Image filters (blur, etc.)
|
|
28
|
-
* - Appearance animations
|
|
29
|
-
* - High priority preview
|
|
30
|
-
* - Preload required
|
|
34
|
+
* - Appearance animations (appearance_animation)
|
|
35
|
+
* - High priority preview (high_priority_preview_show)
|
|
36
|
+
* - Preload required (preload_required)
|
|
31
37
|
* - react-native-fast-image integration
|
|
32
38
|
*
|
|
33
39
|
* Based on Web Image.svelte
|
|
@@ -36,6 +42,7 @@ export function DivImage({ componentContext }: DivImageProps) {
|
|
|
36
42
|
const { json, variables } = componentContext;
|
|
37
43
|
const [loading, setLoading] = useState(true);
|
|
38
44
|
const [error, setError] = useState(false);
|
|
45
|
+
const [naturalSize, setNaturalSize] = useState<{ width: number; height: number } | null>(null);
|
|
39
46
|
|
|
40
47
|
// Reactive properties
|
|
41
48
|
const imageUrl = useDerivedFromVarsSimple<string | undefined>(
|
|
@@ -50,55 +57,88 @@ export function DivImage({ componentContext }: DivImageProps) {
|
|
|
50
57
|
variables || new Map()
|
|
51
58
|
);
|
|
52
59
|
|
|
60
|
+
const contentAlignH = useDerivedFromVarsSimple<string>(
|
|
61
|
+
json.content_alignment_horizontal || 'center',
|
|
62
|
+
variables || new Map()
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
const contentAlignV = useDerivedFromVarsSimple<string>(
|
|
66
|
+
json.content_alignment_vertical || 'center',
|
|
67
|
+
variables || new Map()
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
const isHeightWrapContent = json.height?.type === 'wrap_content';
|
|
71
|
+
const aspectRatio = json.aspect?.ratio;
|
|
72
|
+
|
|
73
|
+
// Fetch natural image dimensions when needed:
|
|
74
|
+
// - wrap_content without explicit aspect (to set container height)
|
|
75
|
+
// - no_scale mode (to size Image to natural dims so container alignment works)
|
|
76
|
+
const needsNaturalSize = (isHeightWrapContent && !aspectRatio) || scale === 'no_scale';
|
|
77
|
+
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
if (needsNaturalSize && imageUrl) {
|
|
80
|
+
Image.getSize(
|
|
81
|
+
imageUrl,
|
|
82
|
+
(w, h) => setNaturalSize({ width: w, height: h }),
|
|
83
|
+
(_error: unknown) => { /* ignore getSize errors */ }
|
|
84
|
+
);
|
|
85
|
+
} else {
|
|
86
|
+
setNaturalSize(null);
|
|
87
|
+
}
|
|
88
|
+
}, [imageUrl, needsNaturalSize]);
|
|
89
|
+
|
|
90
|
+
// Effective aspect ratio for container sizing (wrap_content case only)
|
|
91
|
+
const effectiveAspectRatio = aspectRatio ?? (
|
|
92
|
+
(isHeightWrapContent && naturalSize) ? naturalSize.width / naturalSize.height : undefined
|
|
93
|
+
);
|
|
94
|
+
|
|
53
95
|
// Map DivKit scale to React Native resizeMode
|
|
54
96
|
const resizeMode = useMemo((): ImageStyle['resizeMode'] => {
|
|
55
97
|
switch (scale) {
|
|
56
98
|
case 'fill':
|
|
57
|
-
return 'cover';
|
|
99
|
+
return 'cover';
|
|
58
100
|
case 'fit':
|
|
59
|
-
return 'contain';
|
|
101
|
+
return 'contain';
|
|
60
102
|
case 'stretch':
|
|
61
|
-
return 'stretch';
|
|
103
|
+
return 'stretch';
|
|
62
104
|
case 'no_scale':
|
|
63
|
-
return 'center';
|
|
105
|
+
return 'center';
|
|
64
106
|
default:
|
|
65
107
|
return 'cover';
|
|
66
108
|
}
|
|
67
109
|
}, [scale]);
|
|
68
110
|
|
|
69
|
-
// Container style
|
|
111
|
+
// Container style
|
|
70
112
|
const containerStyle = useMemo((): ViewStyle => {
|
|
71
113
|
const style: ViewStyle = {
|
|
72
|
-
overflow: 'hidden'
|
|
114
|
+
overflow: 'hidden',
|
|
115
|
+
alignItems: alignHToFlex(contentAlignH as string),
|
|
116
|
+
justifyContent: alignVToFlex(contentAlignV as string),
|
|
73
117
|
};
|
|
74
118
|
|
|
75
|
-
// Placeholder background
|
|
76
119
|
if (placeholderColor && loading) {
|
|
77
120
|
style.backgroundColor = placeholderColor;
|
|
78
121
|
}
|
|
79
122
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
style.aspectRatio = json.aspect.ratio;
|
|
123
|
+
if (effectiveAspectRatio !== undefined) {
|
|
124
|
+
style.aspectRatio = effectiveAspectRatio;
|
|
83
125
|
}
|
|
84
126
|
|
|
85
127
|
return style;
|
|
86
|
-
}, [placeholderColor, loading,
|
|
128
|
+
}, [placeholderColor, loading, effectiveAspectRatio, contentAlignH, contentAlignV]);
|
|
87
129
|
|
|
88
130
|
// Image style
|
|
89
131
|
const imageStyle = useMemo((): ImageStyle => {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
height:
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
// Aspect ratio
|
|
96
|
-
if (json.aspect?.ratio) {
|
|
97
|
-
style.aspectRatio = json.aspect.ratio;
|
|
132
|
+
// no_scale: size to natural dimensions so container alignment has effect
|
|
133
|
+
if (scale === 'no_scale' && naturalSize) {
|
|
134
|
+
return { width: naturalSize.width, height: naturalSize.height };
|
|
98
135
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
136
|
+
// wrap_content without known size yet: zero height until getSize resolves
|
|
137
|
+
if (isHeightWrapContent && effectiveAspectRatio === undefined) {
|
|
138
|
+
return { width: '100%', height: 0 };
|
|
139
|
+
}
|
|
140
|
+
return { width: '100%', height: '100%' };
|
|
141
|
+
}, [scale, naturalSize, isHeightWrapContent, effectiveAspectRatio]);
|
|
102
142
|
|
|
103
143
|
const handleLoadEnd = () => {
|
|
104
144
|
setLoading(false);
|
|
@@ -265,10 +265,20 @@ export function Outer<T extends DivBaseData = DivBaseData>({
|
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
} else {
|
|
268
|
-
|
|
269
|
-
if (
|
|
270
|
-
|
|
271
|
-
|
|
268
|
+
// Default width = match_parent — same logic as explicit match_parent
|
|
269
|
+
if (parentOrientation === 'horizontal') {
|
|
270
|
+
if (layoutParams.parentHorizontalWrapContent) {
|
|
271
|
+
// match_parent inside wrap_content horizontal container = wrap content
|
|
272
|
+
// (can't grow into a parent that has no fixed width itself)
|
|
273
|
+
} else {
|
|
274
|
+
// Width is main axis in row layout — use flexGrow, not alignSelf stretch
|
|
275
|
+
styles.flexGrow = 1;
|
|
276
|
+
styles.flexShrink = 1;
|
|
277
|
+
styles.flexBasis = 0;
|
|
278
|
+
}
|
|
279
|
+
} else {
|
|
280
|
+
// Width is cross axis in column layout (or unknown) — stretch
|
|
281
|
+
styles.alignSelf = 'stretch';
|
|
272
282
|
}
|
|
273
283
|
}
|
|
274
284
|
|
|
@@ -305,7 +315,8 @@ export function Outer<T extends DivBaseData = DivBaseData>({
|
|
|
305
315
|
|
|
306
316
|
// Overlap positioning: wrapper is absolute + flexDirection: column
|
|
307
317
|
if (isOverlap) {
|
|
308
|
-
|
|
318
|
+
// undefined width means match_parent (default per DivKit spec)
|
|
319
|
+
const widthType = width ? (width as any).type : 'match_parent';
|
|
309
320
|
const heightType = height ? (height as any).type : undefined;
|
|
310
321
|
|
|
311
322
|
// Horizontal: alignSelf controls cross-axis (horizontal) in column wrapper
|
|
@@ -316,17 +327,10 @@ export function Outer<T extends DivBaseData = DivBaseData>({
|
|
|
316
327
|
}
|
|
317
328
|
|
|
318
329
|
// Vertical: main axis in column wrapper
|
|
330
|
+
// justifyContent on the wrapper handles positioning; only match_parent needs flexGrow
|
|
319
331
|
if (heightType === 'match_parent') {
|
|
320
332
|
styles.flexGrow = 1;
|
|
321
333
|
styles.flexBasis = 0;
|
|
322
|
-
} else {
|
|
323
|
-
// Use margin auto trick for vertical positioning
|
|
324
|
-
if (effectiveVAlign === 'center') {
|
|
325
|
-
styles.marginTop = 'auto';
|
|
326
|
-
styles.marginBottom = 'auto';
|
|
327
|
-
} else if (effectiveVAlign === 'flex-end') {
|
|
328
|
-
styles.marginTop = 'auto';
|
|
329
|
-
}
|
|
330
334
|
}
|
|
331
335
|
}
|
|
332
336
|
|
|
@@ -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
|
|
@@ -112,11 +112,25 @@ export function applyTemplatesRecursively(
|
|
|
112
112
|
|
|
113
113
|
let resolvedJson = json;
|
|
114
114
|
|
|
115
|
-
// Attempt expansion if type matches a template
|
|
115
|
+
// Attempt expansion if type matches a template (loop for chained templates, like Web)
|
|
116
116
|
if (json.type && templates[json.type]) {
|
|
117
117
|
try {
|
|
118
|
-
const
|
|
119
|
-
|
|
118
|
+
const usedTypes = new Set([json.type]);
|
|
119
|
+
let current = json;
|
|
120
|
+
let context = {};
|
|
121
|
+
|
|
122
|
+
while (current.type && templates[current.type]) {
|
|
123
|
+
const res = applyTemplate(current, context, templates, logError);
|
|
124
|
+
current = res.json;
|
|
125
|
+
context = res.templateContext;
|
|
126
|
+
|
|
127
|
+
if (usedTypes.has(current.type)) {
|
|
128
|
+
break; // circular reference guard
|
|
129
|
+
}
|
|
130
|
+
usedTypes.add(current.type);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
resolvedJson = current;
|
|
120
134
|
} catch (_e) {
|
|
121
135
|
// Expansion failed
|
|
122
136
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps DivKit content_alignment_horizontal to React Native flex alignment.
|
|
3
|
+
* Analogous to web's correctImagePosition utility.
|
|
4
|
+
*/
|
|
5
|
+
export function alignHToFlex(align: string): 'flex-start' | 'center' | 'flex-end' {
|
|
6
|
+
switch (align) {
|
|
7
|
+
case 'left':
|
|
8
|
+
case 'start': return 'flex-start';
|
|
9
|
+
case 'right':
|
|
10
|
+
case 'end': return 'flex-end';
|
|
11
|
+
default: return 'center';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Maps DivKit content_alignment_vertical to React Native flex alignment.
|
|
17
|
+
*/
|
|
18
|
+
export function alignVToFlex(align: string): 'flex-start' | 'center' | 'flex-end' {
|
|
19
|
+
switch (align) {
|
|
20
|
+
case 'top': return 'flex-start';
|
|
21
|
+
case 'bottom': return 'flex-end';
|
|
22
|
+
default: return 'center';
|
|
23
|
+
}
|
|
24
|
+
}
|