@oxyhq/bloom 1.12.0 → 1.14.0
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/README.md +1 -1
- package/docs/avatar.mdx +46 -5
- package/docs/index.mdx +1 -1
- package/docs/layout.mdx +21 -35
- package/docs/tab-bar.mdx +35 -0
- package/lib/commonjs/avatar/Avatar.js +24 -8
- package/lib/commonjs/avatar/Avatar.js.map +1 -1
- package/lib/commonjs/avatar/AvatarRing.js +13 -12
- package/lib/commonjs/avatar/AvatarRing.js.map +1 -1
- package/lib/commonjs/avatar/index.js +19 -0
- package/lib/commonjs/avatar/index.js.map +1 -1
- package/lib/commonjs/avatar/resolve-shape.js +43 -0
- package/lib/commonjs/avatar/resolve-shape.js.map +1 -0
- package/lib/commonjs/avatar/shape-paths.js +174 -0
- package/lib/commonjs/avatar/shape-paths.js.map +1 -0
- package/lib/commonjs/fab/Fab.js +4 -55
- package/lib/commonjs/fab/Fab.js.map +1 -1
- package/lib/commonjs/fab/Fab.web.js +1 -29
- package/lib/commonjs/fab/Fab.web.js.map +1 -1
- package/lib/commonjs/layout/bottom-edge.js +47 -92
- package/lib/commonjs/layout/bottom-edge.js.map +1 -1
- package/lib/commonjs/layout/index.js +0 -6
- package/lib/commonjs/layout/index.js.map +1 -1
- package/lib/commonjs/tab-bar/TabBarBase.js +59 -29
- package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
- package/lib/commonjs/tab-bar/expo-router/RouterTabBar.js +5 -0
- package/lib/commonjs/tab-bar/expo-router/RouterTabBar.js.map +1 -1
- package/lib/module/avatar/Avatar.js +24 -8
- package/lib/module/avatar/Avatar.js.map +1 -1
- package/lib/module/avatar/AvatarRing.js +13 -12
- package/lib/module/avatar/AvatarRing.js.map +1 -1
- package/lib/module/avatar/index.js +1 -0
- package/lib/module/avatar/index.js.map +1 -1
- package/lib/module/avatar/resolve-shape.js +40 -0
- package/lib/module/avatar/resolve-shape.js.map +1 -0
- package/lib/module/avatar/shape-paths.js +170 -0
- package/lib/module/avatar/shape-paths.js.map +1 -0
- package/lib/module/fab/Fab.js +6 -57
- package/lib/module/fab/Fab.js.map +1 -1
- package/lib/module/fab/Fab.web.js +2 -30
- package/lib/module/fab/Fab.web.js.map +1 -1
- package/lib/module/layout/bottom-edge.js +47 -91
- package/lib/module/layout/bottom-edge.js.map +1 -1
- package/lib/module/layout/index.js +1 -1
- package/lib/module/layout/index.js.map +1 -1
- package/lib/module/tab-bar/TabBarBase.js +60 -30
- package/lib/module/tab-bar/TabBarBase.js.map +1 -1
- package/lib/module/tab-bar/expo-router/RouterTabBar.js +5 -0
- package/lib/module/tab-bar/expo-router/RouterTabBar.js.map +1 -1
- package/lib/typescript/commonjs/avatar/Avatar.d.ts.map +1 -1
- package/lib/typescript/commonjs/avatar/AvatarRing.d.ts +4 -3
- package/lib/typescript/commonjs/avatar/AvatarRing.d.ts.map +1 -1
- package/lib/typescript/commonjs/avatar/index.d.ts +3 -1
- package/lib/typescript/commonjs/avatar/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/avatar/resolve-shape.d.ts +17 -0
- package/lib/typescript/commonjs/avatar/resolve-shape.d.ts.map +1 -0
- package/lib/typescript/commonjs/avatar/shape-paths.d.ts +27 -0
- package/lib/typescript/commonjs/avatar/shape-paths.d.ts.map +1 -0
- package/lib/typescript/commonjs/avatar/types.d.ts +30 -3
- package/lib/typescript/commonjs/avatar/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/fab/Fab.d.ts.map +1 -1
- package/lib/typescript/commonjs/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/bottom-edge.d.ts +31 -57
- package/lib/typescript/commonjs/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/index.d.ts +1 -1
- package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/expo-router/RouterTabBar.d.ts +5 -0
- package/lib/typescript/commonjs/tab-bar/expo-router/RouterTabBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/types.d.ts +36 -5
- package/lib/typescript/commonjs/tab-bar/types.d.ts.map +1 -1
- package/lib/typescript/module/avatar/Avatar.d.ts.map +1 -1
- package/lib/typescript/module/avatar/AvatarRing.d.ts +4 -3
- package/lib/typescript/module/avatar/AvatarRing.d.ts.map +1 -1
- package/lib/typescript/module/avatar/index.d.ts +3 -1
- package/lib/typescript/module/avatar/index.d.ts.map +1 -1
- package/lib/typescript/module/avatar/resolve-shape.d.ts +17 -0
- package/lib/typescript/module/avatar/resolve-shape.d.ts.map +1 -0
- package/lib/typescript/module/avatar/shape-paths.d.ts +27 -0
- package/lib/typescript/module/avatar/shape-paths.d.ts.map +1 -0
- package/lib/typescript/module/avatar/types.d.ts +30 -3
- package/lib/typescript/module/avatar/types.d.ts.map +1 -1
- package/lib/typescript/module/fab/Fab.d.ts.map +1 -1
- package/lib/typescript/module/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/module/layout/bottom-edge.d.ts +31 -57
- package/lib/typescript/module/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/module/layout/index.d.ts +1 -1
- package/lib/typescript/module/layout/index.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/expo-router/RouterTabBar.d.ts +5 -0
- package/lib/typescript/module/tab-bar/expo-router/RouterTabBar.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/types.d.ts +36 -5
- package/lib/typescript/module/tab-bar/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/avatar/Avatar.tsx +27 -10
- package/src/avatar/AvatarRing.tsx +21 -14
- package/src/avatar/index.ts +7 -0
- package/src/avatar/resolve-shape.ts +33 -0
- package/src/avatar/shape-paths.ts +150 -0
- package/src/avatar/types.ts +32 -3
- package/src/fab/Fab.tsx +4 -57
- package/src/fab/Fab.web.tsx +2 -31
- package/src/layout/bottom-edge.tsx +54 -108
- package/src/layout/index.ts +1 -6
- package/src/tab-bar/TabBarBase.tsx +74 -37
- package/src/tab-bar/expo-router/RouterTabBar.tsx +5 -0
- package/src/tab-bar/types.ts +36 -5
- package/src/__tests__/support/collision-fixture-barrel.ts +0 -20
- package/src/__tests__/support/constructed-style-sheets.ts +0 -68
- package/src/__tests__/support/press-host.ts +0 -30
- package/src/__tests__/support/rendered-style.ts +0 -99
- package/src/__tests__/support/unread-hook-fixture.ts +0 -33
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +0 -7682
- package/src/theme/__tests__/fixtures/color-engine-golden.json +0 -1
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BottomEdgeProvider = BottomEdgeProvider;
|
|
7
|
-
exports.useBottomEdgeCollapsed = useBottomEdgeCollapsed;
|
|
8
7
|
exports.useBottomEdgeInset = useBottomEdgeInset;
|
|
9
8
|
exports.useClaimBottomEdge = useClaimBottomEdge;
|
|
10
9
|
var _react = require("react");
|
|
@@ -38,32 +37,27 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
38
37
|
* edge, so two surfaces at that edge overlap rather than stack; the tallest is
|
|
39
38
|
* what a new surface has to clear. Summing would strand it at twice the height.
|
|
40
39
|
*
|
|
41
|
-
* ##
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* few frames of latency are imperceptible. That is why the channel is a state and
|
|
63
|
-
* not a geometry: it is the shape of signal that survives the trip to the JS
|
|
64
|
-
* thread. Anything that genuinely must track the collapse per-frame has to read
|
|
65
|
-
* the tab bar's own shared value on the UI thread instead — React state is the
|
|
66
|
-
* wrong transport for it, at any width.
|
|
40
|
+
* ## What does NOT belong here: the collapse
|
|
41
|
+
*
|
|
42
|
+
* The tab bar minimizes 58 -> 44 on scroll, and this registry twice tried to
|
|
43
|
+
* publish that so a FAB could react — first as a live pixel height (1.11.0), then
|
|
44
|
+
* as a boolean (1.12.0). Both felt wrong on a device, for the same reason, and
|
|
45
|
+
* the reason is structural rather than a matter of tuning:
|
|
46
|
+
*
|
|
47
|
+
* the bar animates on the UI thread, while anything reading it from here
|
|
48
|
+
* arrives via `runOnJS` plus two React render passes.
|
|
49
|
+
*
|
|
50
|
+
* So a consumer's reaction STARTS one to three frames after the bar's, and the
|
|
51
|
+
* delay is variable — worst exactly while scrolling, because that is when the JS
|
|
52
|
+
* thread is busiest. Fading instead of moving does not hide it either: the eye
|
|
53
|
+
* still sees two pieces of chrome change at different moments.
|
|
54
|
+
*
|
|
55
|
+
* A collapse is MOTION, and motion that must stay in lock-step with a
|
|
56
|
+
* reanimated animation has to travel as a shared value on the UI thread. React
|
|
57
|
+
* state is the wrong transport at any width, so it is not offered here at all.
|
|
58
|
+
* The app owns that signal — Mention drives its header, its bar and its FAB from
|
|
59
|
+
* one `SharedValue` through `useAnimatedStyle` — and this registry stays what it
|
|
60
|
+
* is good at: GEOMETRY. Where things are, not when they move.
|
|
67
61
|
*
|
|
68
62
|
* ## Why an external store
|
|
69
63
|
*
|
|
@@ -77,25 +71,17 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
77
71
|
function createBottomEdgeStore() {
|
|
78
72
|
const claims = new Map();
|
|
79
73
|
const listeners = new Set();
|
|
80
|
-
let
|
|
81
|
-
let collapsed = false;
|
|
74
|
+
let inset = 0;
|
|
82
75
|
const recompute = () => {
|
|
83
|
-
let
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
// at this edge just retracted" is still the signal a reader wants, and it is
|
|
87
|
-
// the safe direction — a FAB that fades when it did not strictly have to
|
|
88
|
-
// beats one that stays put over a bar that left.
|
|
89
|
-
let nextCollapsed = false;
|
|
90
|
-
for (const claim of claims.values()) {
|
|
91
|
-
if (claim.reserved > nextReserved) nextReserved = claim.reserved;
|
|
92
|
-
if (claim.collapsed) nextCollapsed = true;
|
|
76
|
+
let next = 0;
|
|
77
|
+
for (const height of claims.values()) {
|
|
78
|
+
if (height > next) next = height;
|
|
93
79
|
}
|
|
94
|
-
// Bail before notifying: a re-registration at an unchanged
|
|
95
|
-
// render of a claimant
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
80
|
+
// Bail before notifying: a re-registration at an unchanged height (every
|
|
81
|
+
// render of a claimant whose footprint did not move) must not re-render
|
|
82
|
+
// every reader.
|
|
83
|
+
if (next === inset) return;
|
|
84
|
+
inset = next;
|
|
99
85
|
for (const listener of listeners) listener();
|
|
100
86
|
};
|
|
101
87
|
return {
|
|
@@ -105,15 +91,10 @@ function createBottomEdgeStore() {
|
|
|
105
91
|
listeners.delete(onChange);
|
|
106
92
|
};
|
|
107
93
|
},
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
if (existing?.reserved === nextReserved && existing.collapsed === nextCollapsed) return;
|
|
113
|
-
claims.set(id, {
|
|
114
|
-
reserved: nextReserved,
|
|
115
|
-
collapsed: nextCollapsed
|
|
116
|
-
});
|
|
94
|
+
getInset: () => inset,
|
|
95
|
+
claim(id, height) {
|
|
96
|
+
if (claims.get(id) === height) return;
|
|
97
|
+
claims.set(id, height);
|
|
117
98
|
recompute();
|
|
118
99
|
},
|
|
119
100
|
release(id) {
|
|
@@ -145,18 +126,15 @@ BottomEdgeProvider.displayName = 'BottomEdgeProvider';
|
|
|
145
126
|
// would resubscribe `useSyncExternalStore` on every render.
|
|
146
127
|
const NO_SUBSCRIPTION = () => () => {};
|
|
147
128
|
const NO_INSET = () => 0;
|
|
148
|
-
const NO_COLLAPSE = () => false;
|
|
149
129
|
|
|
150
130
|
/**
|
|
151
|
-
* How much of the bottom edge is
|
|
131
|
+
* How much of the bottom edge is already occupied, in px.
|
|
152
132
|
*
|
|
153
|
-
*
|
|
154
|
-
* that must not move as the user scrolls — a list's bottom padding, a toast
|
|
155
|
-
* stack's offset:
|
|
133
|
+
* Add it to whatever offset the surface would otherwise use:
|
|
156
134
|
*
|
|
157
135
|
* ```tsx
|
|
158
|
-
* const
|
|
159
|
-
* <
|
|
136
|
+
* const occupied = useBottomEdgeInset();
|
|
137
|
+
* <View style={{ position: 'absolute', bottom: windowEdgeGap(insets.bottom) + occupied }} />
|
|
160
138
|
* ```
|
|
161
139
|
*
|
|
162
140
|
* `0` outside a provider, and `0` on the first commit even inside one — a claim
|
|
@@ -166,50 +144,27 @@ const NO_COLLAPSE = () => false;
|
|
|
166
144
|
*/
|
|
167
145
|
function useBottomEdgeInset() {
|
|
168
146
|
const store = (0, _react.useContext)(BottomEdgeContext);
|
|
169
|
-
return (0, _react.useSyncExternalStore)(store?.subscribe ?? NO_SUBSCRIPTION, store?.
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Whether the surface owning the bottom edge is currently COLLAPSED — the tab
|
|
174
|
-
* bar minimized on scroll.
|
|
175
|
-
*
|
|
176
|
-
* A boolean rather than a live height, on purpose: see the note at the top of
|
|
177
|
-
* this file. A reader should FADE or otherwise change state on it, never try to
|
|
178
|
-
* stay geometrically locked to the collapsing surface — that lock is what a
|
|
179
|
-
* React-state channel cannot deliver, because the surface animates on the UI
|
|
180
|
-
* thread and this arrives one to three frames later.
|
|
181
|
-
*
|
|
182
|
-
* ```tsx
|
|
183
|
-
* const collapsed = useBottomEdgeCollapsed();
|
|
184
|
-
* // fade out; do not chase the bar's new top edge
|
|
185
|
-
* ```
|
|
186
|
-
*
|
|
187
|
-
* `false` outside a provider.
|
|
188
|
-
*/
|
|
189
|
-
function useBottomEdgeCollapsed() {
|
|
190
|
-
const store = (0, _react.useContext)(BottomEdgeContext);
|
|
191
|
-
return (0, _react.useSyncExternalStore)(store?.subscribe ?? NO_SUBSCRIPTION, store?.getCollapsed ?? NO_COLLAPSE, store?.getCollapsed ?? NO_COLLAPSE);
|
|
147
|
+
return (0, _react.useSyncExternalStore)(store?.subscribe ?? NO_SUBSCRIPTION, store?.getInset ?? NO_INSET, store?.getInset ?? NO_INSET);
|
|
192
148
|
}
|
|
193
149
|
|
|
194
150
|
/**
|
|
195
|
-
* Claim the bottom edge for as long as the caller is mounted.
|
|
151
|
+
* Claim `height` px of the bottom edge for as long as the caller is mounted.
|
|
196
152
|
*
|
|
197
153
|
* The claimant owns its own placement — claiming does not move it. It declares
|
|
198
|
-
* the space it occupies so that everything reading
|
|
199
|
-
* the FULL footprint (the surface's height plus the gap it holds
|
|
200
|
-
* edge), which is the same number the surface positions itself
|
|
201
|
-
*
|
|
202
|
-
* permanently free, and the collapse is reported separately by `collapsed`.
|
|
154
|
+
* the space it occupies so that everything reading `useBottomEdgeInset()` stays
|
|
155
|
+
* off it. Pass the FULL footprint (the surface's height plus the gap it holds
|
|
156
|
+
* off the window edge), which is the same number the surface positions itself
|
|
157
|
+
* with.
|
|
203
158
|
*
|
|
204
159
|
* A no-op outside a provider, so a surface stays usable standalone.
|
|
205
160
|
*/
|
|
206
|
-
function useClaimBottomEdge(
|
|
161
|
+
function useClaimBottomEdge(height) {
|
|
207
162
|
const store = (0, _react.useContext)(BottomEdgeContext);
|
|
208
163
|
const id = (0, _react.useId)();
|
|
209
164
|
(0, _react.useEffect)(() => {
|
|
210
165
|
if (!store) return;
|
|
211
|
-
store.claim(id,
|
|
166
|
+
store.claim(id, height);
|
|
212
167
|
return () => store.release(id);
|
|
213
|
-
}, [store, id,
|
|
168
|
+
}, [store, id, height]);
|
|
214
169
|
}
|
|
215
170
|
//# sourceMappingURL=bottom-edge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_jsxRuntime","createBottomEdgeStore","claims","Map","listeners","Set","
|
|
1
|
+
{"version":3,"names":["_react","require","_jsxRuntime","createBottomEdgeStore","claims","Map","listeners","Set","inset","recompute","next","height","values","listener","subscribe","onChange","add","delete","getInset","claim","id","get","set","release","BottomEdgeContext","createContext","BottomEdgeProvider","children","store","useState","jsx","Provider","value","displayName","NO_SUBSCRIPTION","NO_INSET","useBottomEdgeInset","useContext","useSyncExternalStore","useClaimBottomEdge","useId","useEffect"],"sourceRoot":"../../../src","sources":["layout/bottom-edge.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,12 +15,6 @@ Object.defineProperty(exports, "EDGE_GAP", {
|
|
|
15
15
|
return _edge.EDGE_GAP;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "useBottomEdgeCollapsed", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _bottomEdge.useBottomEdgeCollapsed;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
18
|
Object.defineProperty(exports, "useBottomEdgeInset", {
|
|
25
19
|
enumerable: true,
|
|
26
20
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_edge","require","_bottomEdge"],"sourceRoot":"../../../src","sources":["layout/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_edge","require","_bottomEdge"],"sourceRoot":"../../../src","sources":["layout/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -49,6 +49,7 @@ function TabBarBody({
|
|
|
49
49
|
Blur,
|
|
50
50
|
children,
|
|
51
51
|
activeIndex,
|
|
52
|
+
activeProgress,
|
|
52
53
|
onIndexChange,
|
|
53
54
|
onIndexLongPress,
|
|
54
55
|
theme: themeOverrides,
|
|
@@ -128,6 +129,28 @@ function TabBarBody({
|
|
|
128
129
|
// a legitimate effect (external-system sync), the same shape `Tabs` uses for
|
|
129
130
|
// its underline. The focus-driven path is handled per-button instead — see
|
|
130
131
|
// `TabBarButtonBody`.
|
|
132
|
+
// DRIVEN path: a pager owns the highlight's position and writes it every
|
|
133
|
+
// frame, so the position is COPIED rather than sprung — a spring chasing a
|
|
134
|
+
// per-frame value lags behind the finger, which is the whole thing this path
|
|
135
|
+
// exists to avoid.
|
|
136
|
+
//
|
|
137
|
+
// `useAnimatedReaction` cannot be called conditionally, so an unsupplied
|
|
138
|
+
// `activeProgress` is stood in for by a shared value nothing ever writes and
|
|
139
|
+
// the reaction returns early. `driven` changing flips the identity of `source`
|
|
140
|
+
// too, and both are in the deps array, so the reaction re-registers either
|
|
141
|
+
// way.
|
|
142
|
+
//
|
|
143
|
+
// Scrubbing still wins: a finger on the BAR is a direct manipulation of the
|
|
144
|
+
// bar and must not be fought by the pager's settle animation.
|
|
145
|
+
// (Deps: see the CRITICAL note below.)
|
|
146
|
+
const idleProgress = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
147
|
+
const driven = activeProgress !== undefined;
|
|
148
|
+
const source = activeProgress ?? idleProgress;
|
|
149
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => source.value, value => {
|
|
150
|
+
if (!driven) return;
|
|
151
|
+
if (isDragging.value) return;
|
|
152
|
+
slideIndex.value = value;
|
|
153
|
+
}, [source, driven, isDragging, slideIndex]);
|
|
131
154
|
(0, _react.useEffect)(() => {
|
|
132
155
|
if (activeIndex === undefined) return;
|
|
133
156
|
// While scrubbing the finger owns the highlight; never fight it.
|
|
@@ -148,9 +171,16 @@ function TabBarBody({
|
|
|
148
171
|
// stale index would animate out of a position the user never saw, and would
|
|
149
172
|
// light up every tab in between on the way. Interrupted mid-fade it is
|
|
150
173
|
// still on screen, so from there it slides as it always does.
|
|
151
|
-
|
|
174
|
+
//
|
|
175
|
+
// On the DRIVEN path this effect keeps owning visibility and gives up the
|
|
176
|
+
// position: the driver is already writing `slideIndex` every frame, and a
|
|
177
|
+
// spring started here would drag the capsule across the bar between two of
|
|
178
|
+
// its writes.
|
|
179
|
+
if (!driven) {
|
|
180
|
+
slideIndex.value = highlightOpacity.value === 0 ? activeIndex : (0, _reactNativeReanimated.withSpring)(activeIndex, _shared.SLIDE_SPRING);
|
|
181
|
+
}
|
|
152
182
|
highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _shared.HIGHLIGHT_FADE);
|
|
153
|
-
}, [activeIndex, hasSelection, slideIndex, highlightOpacity, isDragging]);
|
|
183
|
+
}, [activeIndex, hasSelection, driven, slideIndex, highlightOpacity, isDragging]);
|
|
154
184
|
|
|
155
185
|
// Scrubbing: the highlight tracks the finger 1:1 while dragging (no spring —
|
|
156
186
|
// it must feel attached), haptic ticks fire on boundary crossings, and
|
|
@@ -216,7 +246,14 @@ function TabBarBody({
|
|
|
216
246
|
const index = Math.round(indexAtX(event.x, progress.value));
|
|
217
247
|
// Same rule as the controlled path above: appear at the tapped tab when
|
|
218
248
|
// hidden, slide to it when already on screen.
|
|
219
|
-
|
|
249
|
+
//
|
|
250
|
+
// A tap is a discrete writer, so on the DRIVEN path it stands down like
|
|
251
|
+
// the others and the driver carries the highlight to the tapped tab.
|
|
252
|
+
// The scrub is the one gesture that does not: a finger dragging the
|
|
253
|
+
// pill is manipulating the bar itself, not asking for a page.
|
|
254
|
+
if (!driven) {
|
|
255
|
+
slideIndex.value = highlightOpacity.value === 0 ? index : (0, _reactNativeReanimated.withSpring)(index, _shared.SLIDE_SPRING);
|
|
256
|
+
}
|
|
220
257
|
highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _shared.HIGHLIGHT_FADE);
|
|
221
258
|
(0, _context.setMinimized)(minimized, 0);
|
|
222
259
|
(0, _reactNativeReanimated.runOnJS)(selectIndex)(index);
|
|
@@ -236,7 +273,7 @@ function TabBarBody({
|
|
|
236
273
|
(0, _reactNativeReanimated.runOnJS)(longPressIndex)(Math.round(indexAtX(event.x, progress.value)));
|
|
237
274
|
});
|
|
238
275
|
return _reactNativeGestureHandler.Gesture.Race(pan, tap, longPress);
|
|
239
|
-
}, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, highlightOpacity, minimized, progress]);
|
|
276
|
+
}, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, driven, isDragging, lastTicked, slideIndex, highlightOpacity, minimized, progress]);
|
|
240
277
|
|
|
241
278
|
// CRITICAL — every shared value and every scalar a mapper READS must appear
|
|
242
279
|
// in its dependency array. On web WITHOUT the react-native-worklets babel
|
|
@@ -311,29 +348,13 @@ function TabBarBody({
|
|
|
311
348
|
// its own layout can never drift from where the bar actually sits.
|
|
312
349
|
const bottomOffset = (0, _edge.windowEdgeGap)(insets.bottom);
|
|
313
350
|
|
|
314
|
-
// Whether the bar has settled into its minimized size, as REACT state.
|
|
315
|
-
//
|
|
316
|
-
// Reacting on `target` rather than on `progress` is what keeps this cheap:
|
|
317
|
-
// `target` is the binary 0/1 the minimize spring is heading for, so this fires
|
|
318
|
-
// twice per scroll gesture instead of once per frame. Crossing `progress > 0.5`
|
|
319
|
-
// would work too and would cost the same, but it would report the change
|
|
320
|
-
// halfway through the animation rather than when it was decided.
|
|
321
|
-
const [isMinimized, setIsMinimized] = (0, _react.useState)(false);
|
|
322
|
-
(0, _reactNativeReanimated.useAnimatedReaction)(() => minimized.target.value, (target, previous) => {
|
|
323
|
-
if (target !== previous) (0, _reactNativeReanimated.runOnJS)(setIsMinimized)(target === 1);
|
|
324
|
-
}, [minimized]);
|
|
325
|
-
|
|
326
351
|
// Publish what the bar occupies so anything else at this edge stacks above it
|
|
327
|
-
// rather than behind it. Same
|
|
328
|
-
//
|
|
329
|
-
// where the bar actually sits.
|
|
330
|
-
//
|
|
331
|
-
//
|
|
332
|
-
|
|
333
|
-
// space (a list's bottom padding, a toast) must keep room for the full pill or
|
|
334
|
-
// it would jitter on every scroll. The collapse travels as its own STATE — see
|
|
335
|
-
// `layout/bottom-edge` for why it is a boolean and not the live height.
|
|
336
|
-
(0, _bottomEdge.useClaimBottomEdge)(bottomOffset + _shared.EXPANDED_HEIGHT, isMinimized);
|
|
352
|
+
// rather than behind it. Same number `useTabBarFootprint` reports, derived from
|
|
353
|
+
// the same two values, so a consumer reading either can never disagree with
|
|
354
|
+
// where the bar actually sits. The EXPANDED height on purpose: the bar
|
|
355
|
+
// minimizes on scroll and re-expands, so claiming the minimized height would
|
|
356
|
+
// drop a FAB onto the pill the moment the user scrolled back up.
|
|
357
|
+
(0, _bottomEdge.useClaimBottomEdge)(bottomOffset + _shared.EXPANDED_HEIGHT);
|
|
337
358
|
|
|
338
359
|
// How centring and the animated inset compose: centring is STATIC and belongs
|
|
339
360
|
// to the wrap, the inset stays ANIMATED on the pill inside it. The wrap is
|
|
@@ -356,8 +377,9 @@ function TabBarBody({
|
|
|
356
377
|
isDragging,
|
|
357
378
|
theme,
|
|
358
379
|
activeIndex,
|
|
380
|
+
driven,
|
|
359
381
|
selectIndex
|
|
360
|
-
}), [slideIndex, highlightOpacity, isDragging, theme, activeIndex, selectIndex]);
|
|
382
|
+
}), [slideIndex, highlightOpacity, isDragging, theme, activeIndex, driven, selectIndex]);
|
|
361
383
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
362
384
|
...viewProps,
|
|
363
385
|
pointerEvents: "box-none",
|
|
@@ -431,6 +453,10 @@ function TabBarButtonBody({
|
|
|
431
453
|
(0, _react.useEffect)(() => {
|
|
432
454
|
if (isFocused === undefined || !isFocused || !bar) return;
|
|
433
455
|
if (bar.isDragging.value) return;
|
|
456
|
+
// A driver owns the position — see `TabBarProps.activeProgress`. It is
|
|
457
|
+
// already tracking this same focus change; springing from here as well would
|
|
458
|
+
// be a second writer on one shared value.
|
|
459
|
+
if (bar.driven) return;
|
|
434
460
|
bar.slideIndex.value = (0, _reactNativeReanimated.withSpring)(index, _shared.SLIDE_SPRING);
|
|
435
461
|
}, [isFocused, index, bar]);
|
|
436
462
|
|
|
@@ -492,8 +518,12 @@ function TabBarButtonBody({
|
|
|
492
518
|
// for assistive-technology activation (VoiceOver) and keyboard focus.
|
|
493
519
|
if (bar) {
|
|
494
520
|
// Appear at the tab when hidden, slide to it when visible — the same
|
|
495
|
-
// rule the tap gesture and the controlled path follow.
|
|
496
|
-
|
|
521
|
+
// rule the tap gesture and the controlled path follow. Skipped on the
|
|
522
|
+
// driven path, where the position belongs to the driver and this
|
|
523
|
+
// press will reach it as an ordinary selection.
|
|
524
|
+
if (!bar.driven) {
|
|
525
|
+
bar.slideIndex.value = bar.highlightOpacity.value === 0 ? index : (0, _reactNativeReanimated.withSpring)(index, _shared.SLIDE_SPRING);
|
|
526
|
+
}
|
|
497
527
|
bar.highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _shared.HIGHLIGHT_FADE);
|
|
498
528
|
}
|
|
499
529
|
(0, _context.setMinimized)(minimized, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useHaptics","_bottomEdge","_edge","_context","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BarContext","createContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","useSafeAreaInsets","width","windowWidth","useWindowDimensions","minimized","useMinimizeState","progress","tabCount","Math","max","Children","count","hasSelection","undefined","Number","isInteger","slideIndex","useSharedValue","highlightOpacity","isDragging","lastTicked","useTabBarTheme","impact","useHaptics","barOuterWidth","BAR_MARGIN","min","tick","useCallback","selectIndex","index","longPressIndex","hasLongPress","useEffect","value","withTiming","HIGHLIGHT_FADE","withSpring","SLIDE_SPRING","gesture","useMemo","indexAtX","x","minimizedValue","sideInset","interpolate","MINIMIZED_INSET","Extrapolation","CLAMP","barWidth","itemWidth","ROW_PAD_H","raw","pan","Gesture","Pan","activeOffsetX","failOffsetY","onStart","event","round","setMinimized","onUpdate","rounded","runOnJS","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","LONG_PRESS_MIN_DURATION","barStyle","useAnimatedStyle","height","EXPANDED_HEIGHT","MINIMIZED_HEIGHT","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","top","opacity","transform","translateX","bottomOffset","windowEdgeGap","bottom","isMinimized","setIsMinimized","useState","useAnimatedReaction","target","previous","useClaimBottomEdge","constrainedWrapStyle","alignSelf","barContext","jsxs","View","pointerEvents","styles","root","jsx","direction","intensity","position","left","right","BLUR_BLEED","barWrap","marginBottom","GestureDetector","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","useContext","standaloneTheme","focused","activeGlyphStyle","proximity","abs","labelStyle","color","activeTint","inactiveTint","interpolateColor","boxStyle","Pressable","accessibilityLabel","label","state","button","itemBox","tint","size","ICON_SIZE","active","StyleSheet","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","ITEM_PAD_V","overflow","fontSize","LABEL_FONT_SIZE","fontWeight","marginTop","ITEM_GAP"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useHaptics","_bottomEdge","_edge","_context","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BarContext","createContext","TabBarBody","Surface","Blur","children","activeIndex","activeProgress","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","useSafeAreaInsets","width","windowWidth","useWindowDimensions","minimized","useMinimizeState","progress","tabCount","Math","max","Children","count","hasSelection","undefined","Number","isInteger","slideIndex","useSharedValue","highlightOpacity","isDragging","lastTicked","useTabBarTheme","impact","useHaptics","barOuterWidth","BAR_MARGIN","min","tick","useCallback","selectIndex","index","longPressIndex","hasLongPress","idleProgress","driven","source","useAnimatedReaction","value","useEffect","withTiming","HIGHLIGHT_FADE","withSpring","SLIDE_SPRING","gesture","useMemo","indexAtX","x","minimizedValue","sideInset","interpolate","MINIMIZED_INSET","Extrapolation","CLAMP","barWidth","itemWidth","ROW_PAD_H","raw","pan","Gesture","Pan","activeOffsetX","failOffsetY","onStart","event","round","setMinimized","onUpdate","rounded","runOnJS","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","LONG_PRESS_MIN_DURATION","barStyle","useAnimatedStyle","height","EXPANDED_HEIGHT","MINIMIZED_HEIGHT","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","top","opacity","transform","translateX","bottomOffset","windowEdgeGap","bottom","useClaimBottomEdge","constrainedWrapStyle","alignSelf","barContext","jsxs","View","pointerEvents","styles","root","jsx","direction","intensity","position","left","right","BLUR_BLEED","barWrap","marginBottom","GestureDetector","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","useContext","standaloneTheme","focused","activeGlyphStyle","proximity","abs","labelStyle","color","activeTint","inactiveTint","interpolateColor","boxStyle","Pressable","accessibilityLabel","label","state","button","itemBox","tint","size","ICON_SIZE","active","StyleSheet","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","ITEM_PAD_V","overflow","fontSize","LABEL_FONT_SIZE","fontWeight","marginTop","ITEM_GAP"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,11 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
24
24
|
* by each trigger's own focus (see `RouterTabBarButton`), which is what keeps it
|
|
25
25
|
* correct through deep links, back gestures and any other programmatic
|
|
26
26
|
* navigation. Setting both would put two writers on one shared value.
|
|
27
|
+
*
|
|
28
|
+
* `activeProgress` is NOT omitted, and that is not an oversight. It answers a
|
|
29
|
+
* different question — where the highlight is, not whether there is one — so a
|
|
30
|
+
* router-focused bar whose screens are PAGED can pass it and keep the focus
|
|
31
|
+
* path for selection. See `TabBarProps.activeProgress`.
|
|
27
32
|
*/
|
|
28
33
|
|
|
29
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_index","require","_jsxRuntime","RouterTabBar","asChild","_asChild","props","jsx","TabBar","displayName","RouterTabBarButton","item","index","href","_href","TabBarButton"],"sourceRoot":"../../../../src","sources":["tab-bar/expo-router/RouterTabBar.tsx"],"mappings":";;;;;;;AAaA,IAAAA,MAAA,GAAAC,OAAA;AAAgD,IAAAC,WAAA,GAAAD,OAAA;AAbhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAAC;EAC3B;EACA;EACA;EACAC,OAAO,EAAEC,QAAQ;EACjB,GAAGC;AACc,CAAC,EAAE;EACpB,oBAAO,IAAAJ,WAAA,CAAAK,GAAA,EAACP,MAAA,CAAAQ,MAAM;IAAA,GAAKF;EAAK,CAAG,CAAC;AAC9B;AAEAH,YAAY,CAACM,WAAW,GAAG,cAAc;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAC;EACjCC,IAAI;EACJC,KAAK;EACL;EACA;EACA;EACAC,IAAI,EAAEC,KAAK;EACX,GAAGR;AACoB,CAAC,EAAE;EAC1B,oBAAO,IAAAJ,WAAA,CAAAK,GAAA,EAACP,MAAA,CAAAe,YAAY;IAAA,GAAKT,KAAK;IAAEK,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9D;AAEAF,kBAAkB,CAACD,WAAW,GAAG,oBAAoB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_index","require","_jsxRuntime","RouterTabBar","asChild","_asChild","props","jsx","TabBar","displayName","RouterTabBarButton","item","index","href","_href","TabBarButton"],"sourceRoot":"../../../../src","sources":["tab-bar/expo-router/RouterTabBar.tsx"],"mappings":";;;;;;;AAaA,IAAAA,MAAA,GAAAC,OAAA;AAAgD,IAAAC,WAAA,GAAAD,OAAA;AAbhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAAC;EAC3B;EACA;EACA;EACAC,OAAO,EAAEC,QAAQ;EACjB,GAAGC;AACc,CAAC,EAAE;EACpB,oBAAO,IAAAJ,WAAA,CAAAK,GAAA,EAACP,MAAA,CAAAQ,MAAM;IAAA,GAAKF;EAAK,CAAG,CAAC;AAC9B;AAEAH,YAAY,CAACM,WAAW,GAAG,cAAc;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAC;EACjCC,IAAI;EACJC,KAAK;EACL;EACA;EACA;EACAC,IAAI,EAAEC,KAAK;EACX,GAAGR;AACoB,CAAC,EAAE;EAC1B,oBAAO,IAAAJ,WAAA,CAAAK,GAAA,EAACP,MAAA,CAAAe,YAAY;IAAA,GAAKT,KAAK;IAAEK,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9D;AAEAF,kBAAkB,CAACD,WAAW,GAAG,oBAAoB","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ import { Z_INDEX } from "../styles/z-index.js";
|
|
|
10
10
|
import { useAvatarPlaceholder } from "./context.js";
|
|
11
11
|
import { LiveBadge } from "./LiveBadge.js";
|
|
12
12
|
import { AvatarRing, getRingOuterSize } from "./AvatarRing.js";
|
|
13
|
-
import {
|
|
13
|
+
import { resolveAvatarShape } from "./resolve-shape.js";
|
|
14
14
|
// Google Contacts-inspired palette used to pick a deterministic background
|
|
15
15
|
// color for name-based placeholder avatars.
|
|
16
16
|
const NAME_AVATAR_COLORS = ['#D93025', '#E8710A', '#F9AB00', '#1E8E3E', '#12B5CB', '#1A73E8', '#7627BB', '#C5221F', '#0B8043', '#A142F4'];
|
|
@@ -37,10 +37,20 @@ function getNameColor(name) {
|
|
|
37
37
|
import DEFAULT_AVATAR_IMAGE from "./default-avatar.js";
|
|
38
38
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
39
39
|
let clipIdCounter = 0;
|
|
40
|
-
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Renders the avatar image clipped to an arbitrary outline.
|
|
43
|
+
*
|
|
44
|
+
* The path and the SVG viewport share one coordinate space, so a 0–1 squircle
|
|
45
|
+
* and a 0–100 named shape both work without rewriting their numbers: the
|
|
46
|
+
* viewport is declared at the path's own scale and the whole thing is drawn at
|
|
47
|
+
* `size` pixels.
|
|
48
|
+
*/
|
|
49
|
+
function ClippedImage({
|
|
41
50
|
uri,
|
|
42
51
|
fallbackSource,
|
|
43
52
|
size,
|
|
53
|
+
shape,
|
|
44
54
|
fallbackColor,
|
|
45
55
|
placeholderIcon,
|
|
46
56
|
name,
|
|
@@ -58,6 +68,7 @@ function SquircleImage({
|
|
|
58
68
|
name: name
|
|
59
69
|
});
|
|
60
70
|
}
|
|
71
|
+
const span = shape.viewBox ?? 1;
|
|
61
72
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
62
73
|
children: [uri && /*#__PURE__*/_jsx(Image, {
|
|
63
74
|
source: {
|
|
@@ -68,18 +79,18 @@ function SquircleImage({
|
|
|
68
79
|
}), /*#__PURE__*/_jsxs(Svg, {
|
|
69
80
|
width: size,
|
|
70
81
|
height: size,
|
|
71
|
-
viewBox:
|
|
82
|
+
viewBox: `0 0 ${span} ${span}`,
|
|
72
83
|
children: [/*#__PURE__*/_jsx(Defs, {
|
|
73
84
|
children: /*#__PURE__*/_jsx(ClipPath, {
|
|
74
85
|
id: clipId,
|
|
75
86
|
children: /*#__PURE__*/_jsx(Path, {
|
|
76
|
-
d:
|
|
87
|
+
d: shape.d
|
|
77
88
|
})
|
|
78
89
|
})
|
|
79
90
|
}), /*#__PURE__*/_jsx(SvgImage, {
|
|
80
91
|
href: href,
|
|
81
|
-
width:
|
|
82
|
-
height:
|
|
92
|
+
width: span,
|
|
93
|
+
height: span,
|
|
83
94
|
preserveAspectRatio: "xMidYMid slice",
|
|
84
95
|
clipPath: `url(#${clipId})`
|
|
85
96
|
})]
|
|
@@ -164,6 +175,10 @@ const AvatarComponent = ({
|
|
|
164
175
|
const theme = useTheme();
|
|
165
176
|
const placeholderConfig = useAvatarPlaceholder();
|
|
166
177
|
const radius = size / 2;
|
|
178
|
+
// `null` means "a circle", which is drawn with borderRadius and never reaches
|
|
179
|
+
// the SVG renderer. Memoised so an inline `shape={{ d: … }}` object literal
|
|
180
|
+
// does not produce a new clip descriptor on every render.
|
|
181
|
+
const clipShape = useMemo(() => resolveAvatarShape(shape), [shape]);
|
|
167
182
|
const hasName = typeof name === 'string' && name.trim().length > 0;
|
|
168
183
|
// Priority: explicit placeholderColor > deterministic color from name > theme default.
|
|
169
184
|
const fallbackColor = placeholderColor || (hasName ? getNameColor(name) : theme.colors.backgroundTertiary);
|
|
@@ -236,7 +251,7 @@ const AvatarComponent = ({
|
|
|
236
251
|
const showLiveBadge = live && size > 16 && !hideLiveBadge;
|
|
237
252
|
const ringElement = resolvedRing ? /*#__PURE__*/_jsx(AvatarRing, {
|
|
238
253
|
size: size,
|
|
239
|
-
shape:
|
|
254
|
+
shape: clipShape,
|
|
240
255
|
colors: resolvedRing.colors,
|
|
241
256
|
width: ringWidth,
|
|
242
257
|
gap: ringGap,
|
|
@@ -251,10 +266,11 @@ const AvatarComponent = ({
|
|
|
251
266
|
width: size,
|
|
252
267
|
height: size
|
|
253
268
|
}],
|
|
254
|
-
children: [
|
|
269
|
+
children: [clipShape ? /*#__PURE__*/_jsx(ClippedImage, {
|
|
255
270
|
uri: effectiveUri,
|
|
256
271
|
fallbackSource: fallbackSource,
|
|
257
272
|
size: size,
|
|
273
|
+
shape: clipShape,
|
|
258
274
|
fallbackColor: fallbackColor,
|
|
259
275
|
placeholderIcon: resolvedPlaceholderIcon,
|
|
260
276
|
name: name,
|