react-native-divkit 1.6.2 → 1.6.4
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 +32 -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 +22 -16
- package/dist/components/utilities/Outer.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 +33 -9
- package/src/components/image/DivImage.tsx +71 -31
- package/src/components/utilities/Outer.tsx +20 -14
- 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,qBAkKnE"}
|
|
@@ -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,18 @@ 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
|
-
|
|
102
|
+
};
|
|
103
|
+
}, [orientation, contentAlignmentVertical, contentAlignmentHorizontal, direction]);
|
|
104
|
+
// When the overlap container has a definite height (match_parent or fixed), all children
|
|
105
|
+
// must be absolutely positioned so they don't contribute to the container's minimum size.
|
|
106
|
+
// This matches the Web behaviour where stretchHeight prevents children from sizing the parent.
|
|
107
|
+
// When height is wrap_content (or unset), the first child stays in normal flow to give
|
|
108
|
+
// the container its intrinsic height.
|
|
109
|
+
const overlapAllAbsolute = orientation === 'overlap' &&
|
|
110
|
+
(json.height?.type === 'match_parent' || json.height?.type === 'fixed');
|
|
92
111
|
const renderChildren = () => {
|
|
93
112
|
if (!json.items || json.items.length === 0) {
|
|
94
113
|
return null;
|
|
@@ -101,9 +120,13 @@ export function DivContainer({ componentContext }) {
|
|
|
101
120
|
return null;
|
|
102
121
|
}
|
|
103
122
|
const child = <DivComponent key={item.id || `item-${index}`} componentContext={childContext}/>;
|
|
104
|
-
// Wrap in positioned View for overlap mode
|
|
105
|
-
|
|
106
|
-
|
|
123
|
+
// Wrap in positioned View for overlap mode.
|
|
124
|
+
// When the container has a definite height (match_parent/fixed), ALL children are
|
|
125
|
+
// absolutely positioned so they don't push the container beyond its allocated size.
|
|
126
|
+
// When height is wrap_content, only subsequent children (index > 0) are absolute;
|
|
127
|
+
// the first child stays in normal flow to establish the container's intrinsic height.
|
|
128
|
+
if (orientation === 'overlap' && (overlapAllAbsolute || index > 0) && getOverlapWrapperStyle) {
|
|
129
|
+
return (<View key={item.id || `item-${index}`} style={getOverlapWrapperStyle(item)}>
|
|
107
130
|
{child}
|
|
108
131
|
</View>);
|
|
109
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DivContainer.js","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AAK/C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAMxE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,gBAAgB,EAAqB;IAChE,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC;IAE7C,sBAAsB;IACtB,MAAM,WAAW,GAAG,wBAAwB,CACxC,IAAI,CAAC,WAAW,IAAI,UAAU,EAC9B,SAAS,IAAI,IAAI,GAAG,EAAE,CACzB,CAAC;IAEF,MAAM,0BAA0B,GAAG,wBAAwB,CACvD,IAAI,CAAC,4BAA4B,IAAI,OAAO,EAC5C,SAAS,IAAI,IAAI,GAAG,EAAE,CACzB,CAAC;IAEF,MAAM,wBAAwB,GAAG,wBAAwB,CACrD,IAAI,CAAC,0BAA0B,IAAI,KAAK,EACxC,SAAS,IAAI,IAAI,GAAG,EAAE,CACzB,CAAC;IAEF,MAAM,WAAW,GAAG,wBAAwB,CAAS,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,SAAS,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAErG,yDAAyD;IACzD,uFAAuF;IACvF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAc,EAAE;QAC3C,MAAM,KAAK,GAAc,EAAE,CAAC;QAE5B,+BAA+B;QAC/B,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YAC/B,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAChC,CAAC;aAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QACnC,CAAC;aAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,oBAAoB;QACpB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YAC/B,KAAK,CAAC,cAAc,GAAG,4BAA4B,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;YAC3F,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,cAAc,GAAG,4BAA4B,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YACzF,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;QACzF,CAAC;QAED,eAAe;QACf,IAAI,WAAW,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9D,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC;QAC5B,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,EAAE,CAAC,WAAW,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAEhG,oEAAoE;IACpE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAiB,EAAE;QACjD,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YAC/B,MAAM,CAAC,0BAA0B,GAAG,YAAY,CAAC;
|
|
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,4BAuaf"}
|
|
@@ -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
|
|
@@ -224,8 +236,10 @@ export function Outer({ componentContext, children, style: customStyle }) {
|
|
|
224
236
|
styles.height = heightVal.value;
|
|
225
237
|
}
|
|
226
238
|
else if (heightVal.type === 'match_parent') {
|
|
227
|
-
if (parentOrientation
|
|
239
|
+
if (parentOrientation !== 'horizontal') {
|
|
240
|
+
// Vertical container or root (default RN flex direction is column)
|
|
228
241
|
styles.flexGrow = heightVal.weight || 1;
|
|
242
|
+
styles.flexShrink = 1;
|
|
229
243
|
styles.flexBasis = 0;
|
|
230
244
|
}
|
|
231
245
|
else {
|
|
@@ -252,7 +266,8 @@ export function Outer({ componentContext, children, style: customStyle }) {
|
|
|
252
266
|
}
|
|
253
267
|
// Overlap positioning: wrapper is absolute + flexDirection: column
|
|
254
268
|
if (isOverlap) {
|
|
255
|
-
|
|
269
|
+
// undefined width means match_parent (default per DivKit spec)
|
|
270
|
+
const widthType = width ? width.type : 'match_parent';
|
|
256
271
|
const heightType = height ? height.type : undefined;
|
|
257
272
|
// Horizontal: alignSelf controls cross-axis (horizontal) in column wrapper
|
|
258
273
|
if (widthType === 'match_parent') {
|
|
@@ -262,20 +277,11 @@ export function Outer({ componentContext, children, style: customStyle }) {
|
|
|
262
277
|
styles.alignSelf = effectiveHAlign;
|
|
263
278
|
}
|
|
264
279
|
// Vertical: main axis in column wrapper
|
|
280
|
+
// justifyContent on the wrapper handles positioning; only match_parent needs flexGrow
|
|
265
281
|
if (heightType === 'match_parent') {
|
|
266
282
|
styles.flexGrow = 1;
|
|
267
283
|
styles.flexBasis = 0;
|
|
268
284
|
}
|
|
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
285
|
}
|
|
280
286
|
// Paddings
|
|
281
287
|
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":"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,19 @@ 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
|
-
|
|
132
|
+
};
|
|
133
|
+
}, [orientation, contentAlignmentVertical, contentAlignmentHorizontal, direction]);
|
|
134
|
+
|
|
135
|
+
// When the overlap container has a definite height (match_parent or fixed), all children
|
|
136
|
+
// must be absolutely positioned so they don't contribute to the container's minimum size.
|
|
137
|
+
// This matches the Web behaviour where stretchHeight prevents children from sizing the parent.
|
|
138
|
+
// When height is wrap_content (or unset), the first child stays in normal flow to give
|
|
139
|
+
// the container its intrinsic height.
|
|
140
|
+
const overlapAllAbsolute = orientation === 'overlap' &&
|
|
141
|
+
(json.height?.type === 'match_parent' || json.height?.type === 'fixed');
|
|
122
142
|
|
|
123
143
|
const renderChildren = () => {
|
|
124
144
|
if (!json.items || json.items.length === 0) {
|
|
@@ -136,10 +156,14 @@ export function DivContainer({ componentContext }: DivContainerProps) {
|
|
|
136
156
|
|
|
137
157
|
const child = <DivComponent key={item.id || `item-${index}`} componentContext={childContext} />;
|
|
138
158
|
|
|
139
|
-
// Wrap in positioned View for overlap mode
|
|
140
|
-
|
|
159
|
+
// Wrap in positioned View for overlap mode.
|
|
160
|
+
// When the container has a definite height (match_parent/fixed), ALL children are
|
|
161
|
+
// absolutely positioned so they don't push the container beyond its allocated size.
|
|
162
|
+
// When height is wrap_content, only subsequent children (index > 0) are absolute;
|
|
163
|
+
// the first child stays in normal flow to establish the container's intrinsic height.
|
|
164
|
+
if (orientation === 'overlap' && (overlapAllAbsolute || index > 0) && getOverlapWrapperStyle) {
|
|
141
165
|
return (
|
|
142
|
-
<View key={item.id || `item-${index}`} style={
|
|
166
|
+
<View key={item.id || `item-${index}`} style={getOverlapWrapperStyle(item)}>
|
|
143
167
|
{child}
|
|
144
168
|
</View>
|
|
145
169
|
);
|
|
@@ -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
|
|
|
@@ -278,8 +288,10 @@ export function Outer<T extends DivBaseData = DivBaseData>({
|
|
|
278
288
|
if (heightVal.type === 'fixed') {
|
|
279
289
|
styles.height = (heightVal as FixedSize).value;
|
|
280
290
|
} else if (heightVal.type === 'match_parent') {
|
|
281
|
-
if (parentOrientation
|
|
291
|
+
if (parentOrientation !== 'horizontal') {
|
|
292
|
+
// Vertical container or root (default RN flex direction is column)
|
|
282
293
|
styles.flexGrow = (heightVal as MatchParentSize).weight || 1;
|
|
294
|
+
styles.flexShrink = 1;
|
|
283
295
|
styles.flexBasis = 0;
|
|
284
296
|
} else {
|
|
285
297
|
// Height is cross axis in row layout — stretch
|
|
@@ -305,7 +317,8 @@ export function Outer<T extends DivBaseData = DivBaseData>({
|
|
|
305
317
|
|
|
306
318
|
// Overlap positioning: wrapper is absolute + flexDirection: column
|
|
307
319
|
if (isOverlap) {
|
|
308
|
-
|
|
320
|
+
// undefined width means match_parent (default per DivKit spec)
|
|
321
|
+
const widthType = width ? (width as any).type : 'match_parent';
|
|
309
322
|
const heightType = height ? (height as any).type : undefined;
|
|
310
323
|
|
|
311
324
|
// Horizontal: alignSelf controls cross-axis (horizontal) in column wrapper
|
|
@@ -316,17 +329,10 @@ export function Outer<T extends DivBaseData = DivBaseData>({
|
|
|
316
329
|
}
|
|
317
330
|
|
|
318
331
|
// Vertical: main axis in column wrapper
|
|
332
|
+
// justifyContent on the wrapper handles positioning; only match_parent needs flexGrow
|
|
319
333
|
if (heightType === 'match_parent') {
|
|
320
334
|
styles.flexGrow = 1;
|
|
321
335
|
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
336
|
}
|
|
331
337
|
}
|
|
332
338
|
|
|
@@ -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
|
+
}
|