panelui-native 0.88.1 → 0.88.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/components/feedback/index.js +31 -4
- package/lib/module/components/feedback/index.js.map +1 -1
- package/lib/module/hooks/use-keyboard-avoidance.js +33 -8
- package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
- package/lib/typescript/src/components/feedback/index.d.ts +3 -0
- package/lib/typescript/src/components/feedback/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/feedback/index.tsx +26 -1
- package/src/hooks/use-keyboard-avoidance.ts +33 -8
|
@@ -46,6 +46,9 @@
|
|
|
46
46
|
* `Submit` disables itself while the field is empty. A dialog that accepts an
|
|
47
47
|
* empty answer produces empty feedback, and the person who sent it believes
|
|
48
48
|
* they said something.
|
|
49
|
+
*
|
|
50
|
+
* Disabled, it drops the fill instead of dimming it. A tinted accent pill
|
|
51
|
+
* still reads as the thing to press, whatever its opacity.
|
|
49
52
|
*/
|
|
50
53
|
import { createContext, forwardRef, isValidElement, useCallback, useContext, useMemo, useState } from 'react';
|
|
51
54
|
import { Pressable, TextInput, View } from 'react-native';
|
|
@@ -129,11 +132,35 @@ const feedbackVariants = tv({
|
|
|
129
132
|
}
|
|
130
133
|
},
|
|
131
134
|
disabled: {
|
|
132
|
-
true: {
|
|
133
|
-
action: 'opacity-[0.45]'
|
|
134
|
-
}
|
|
135
|
+
true: {}
|
|
135
136
|
}
|
|
136
|
-
}
|
|
137
|
+
},
|
|
138
|
+
compoundVariants: [
|
|
139
|
+
/*
|
|
140
|
+
* A disabled Submit loses its fill rather than dimming it.
|
|
141
|
+
*
|
|
142
|
+
* A tinted accent pill is still an accent pill: at any opacity it reads as
|
|
143
|
+
* the thing on the dialog to press, so an inert one gets pressed and then
|
|
144
|
+
* gets reported as broken. Dropping the fill is what makes the state
|
|
145
|
+
* legible before the press.
|
|
146
|
+
*
|
|
147
|
+
* The tint is fainter than Cancel's own on purpose. Matched fills would
|
|
148
|
+
* read as two Cancels rather than as one live action and one dead one.
|
|
149
|
+
*/
|
|
150
|
+
{
|
|
151
|
+
tone: 'submit',
|
|
152
|
+
disabled: true,
|
|
153
|
+
class: {
|
|
154
|
+
action: 'bg-foreground/[0.04]',
|
|
155
|
+
actionLabel: 'font-medium text-muted-foreground/50'
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
tone: 'cancel',
|
|
159
|
+
disabled: true,
|
|
160
|
+
class: {
|
|
161
|
+
action: 'opacity-[0.45]'
|
|
162
|
+
}
|
|
163
|
+
}]
|
|
137
164
|
});
|
|
138
165
|
const FeedbackContext = /*#__PURE__*/createContext(null);
|
|
139
166
|
function useFeedback(component) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","forwardRef","isValidElement","useCallback","useContext","useMemo","useState","Pressable","TextInput","View","Animated","FadeIn","FadeOut","ZoomIn","tv","XIcon","AnimatedPressable","KeyboardAvoider","ModalPortal","Scrim","Text","textChildren","useBackHandler","cn","jsx","_jsx","jsxs","_jsxs","SHELL_PADDING","SHELL_RADIUS","PANEL_RADIUS","FOOTER_INSET","FIELD_MIN_HEIGHT","CLOSE_SIZE","CLOSE_HIT_SLOP","feedbackVariants","slots","shell","recess","panel","title","close","field","footer","action","actionLabel","variants","tone","cancel","submit","disabled","true","FeedbackContext","useFeedback","component","context","Error","FeedbackRoot","children","open","onOpenChange","defaultOpen","value","defaultValue","onValueChange","internalOpen","setInternalOpen","openControlled","undefined","resolvedOpen","internalValue","setInternalValue","valueControlled","resolvedValue","setOpen","next","setValue","Provider","displayName","FeedbackTrigger","onPress","pointerEvents","FeedbackContent","className","dismissible","blur","props","entering","duration","exiting","accessibilityLabel","mode","offset","springify","damping","stiffness","mass","accessibilityViewIsModal","style","borderRadius","padding","FeedbackPanel","ref","FeedbackTitle","FeedbackClose","label","accessibilityRole","hitSlop","pressScale","pressOpacity","top","right","width","height","size","FeedbackField","onChangeText","minHeight","placeholder","dialog","text","multiline","textAlignVertical","FeedbackFooter","marginTop","marginHorizontal","Action","labelClassName","accessibilityState","FeedbackCancel","FeedbackSubmit","onSubmit","empty","trim","length","Feedback","Object","assign","Trigger","Content","Panel","Title","Close","Field","Footer","Cancel","Submit"],"sourceRoot":"../../../../src","sources":["components/feedback/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createContext","forwardRef","isValidElement","useCallback","useContext","useMemo","useState","Pressable","TextInput","View","Animated","FadeIn","FadeOut","ZoomIn","tv","XIcon","AnimatedPressable","KeyboardAvoider","ModalPortal","Scrim","Text","textChildren","useBackHandler","cn","jsx","_jsx","jsxs","_jsxs","SHELL_PADDING","SHELL_RADIUS","PANEL_RADIUS","FOOTER_INSET","FIELD_MIN_HEIGHT","CLOSE_SIZE","CLOSE_HIT_SLOP","feedbackVariants","slots","shell","recess","panel","title","close","field","footer","action","actionLabel","variants","tone","cancel","submit","disabled","true","compoundVariants","class","FeedbackContext","useFeedback","component","context","Error","FeedbackRoot","children","open","onOpenChange","defaultOpen","value","defaultValue","onValueChange","internalOpen","setInternalOpen","openControlled","undefined","resolvedOpen","internalValue","setInternalValue","valueControlled","resolvedValue","setOpen","next","setValue","Provider","displayName","FeedbackTrigger","onPress","pointerEvents","FeedbackContent","className","dismissible","blur","props","entering","duration","exiting","accessibilityLabel","mode","offset","springify","damping","stiffness","mass","accessibilityViewIsModal","style","borderRadius","padding","FeedbackPanel","ref","FeedbackTitle","FeedbackClose","label","accessibilityRole","hitSlop","pressScale","pressOpacity","top","right","width","height","size","FeedbackField","onChangeText","minHeight","placeholder","dialog","text","multiline","textAlignVertical","FeedbackFooter","marginTop","marginHorizontal","Action","labelClassName","accessibilityState","FeedbackCancel","FeedbackSubmit","onSubmit","empty","trim","length","Feedback","Object","assign","Trigger","Content","Panel","Title","Close","Field","Footer","Cancel","Submit"],"sourceRoot":"../../../../src","sources":["components/feedback/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
* </Animated.View>
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
49
|
+
import { useCallback, useEffect, useLayoutEffect, useState } from 'react';
|
|
50
50
|
import { TurboModuleRegistry, useWindowDimensions } from 'react-native';
|
|
51
51
|
import { measure, runOnJS, useAnimatedKeyboard, useAnimatedReaction, useAnimatedRef, useAnimatedStyle, useFrameCallback, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
52
52
|
|
|
@@ -142,7 +142,8 @@ export function useKeyboardAvoidance({
|
|
|
142
142
|
const translation = useSharedValue(0);
|
|
143
143
|
|
|
144
144
|
/*
|
|
145
|
-
* Whether the element
|
|
145
|
+
* Whether the element can be measured: laid out at least once, and still
|
|
146
|
+
* mounted.
|
|
146
147
|
*
|
|
147
148
|
* `measure` warns when it is handed a view the layout engine has no metrics
|
|
148
149
|
* for — every frame between a mount and its first layout, and every frame
|
|
@@ -151,11 +152,26 @@ export function useKeyboardAvoidance({
|
|
|
151
152
|
* the warning is printed before that null comes back. Running once a frame,
|
|
152
153
|
* one of these fills the log on its own.
|
|
153
154
|
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
155
|
+
* The layout pass arms it. Two things disarm it, because one is not enough:
|
|
156
|
+
*
|
|
157
|
+
* - the teardown, in a *layout* effect. A plain effect's cleanup is written
|
|
158
|
+
* from the JS thread after the commit, which is one or more frames after
|
|
159
|
+
* the view it is protecting has gone — long enough for the loop to measure
|
|
160
|
+
* a detached view and log. This is the case an overlay hits every time:
|
|
161
|
+
* a dialog whose content unmounts on close takes the element with it while
|
|
162
|
+
* the keyboard is still on its way down.
|
|
163
|
+
* - the worklet itself, whenever a measurement comes back null. That write
|
|
164
|
+
* belongs to the UI thread, so it lands whatever order the teardown
|
|
165
|
+
* arrives in, and a view that has gone costs one warning rather than one
|
|
166
|
+
* per frame.
|
|
167
|
+
*
|
|
168
|
+
* A disarm that was only a race is put back by the next layout pass, or by
|
|
169
|
+
* the keyboard opening again — `everLaidOut` is what makes the second one
|
|
170
|
+
* safe, since arming before the first layout is the other half of the bug.
|
|
156
171
|
*/
|
|
157
172
|
const laidOut = useSharedValue(false);
|
|
158
|
-
|
|
173
|
+
const everLaidOut = useSharedValue(false);
|
|
174
|
+
useLayoutEffect(() => () => {
|
|
159
175
|
laidOut.value = false;
|
|
160
176
|
}, [laidOut]);
|
|
161
177
|
|
|
@@ -188,7 +204,11 @@ export function useKeyboardAvoidance({
|
|
|
188
204
|
if (keyboardHeight === 0) return;
|
|
189
205
|
if (!laidOut.value) return;
|
|
190
206
|
const frame = measure(ref);
|
|
191
|
-
if (!frame
|
|
207
|
+
if (!frame) {
|
|
208
|
+
laidOut.value = false;
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (frame.height <= 0) return;
|
|
192
212
|
const restingBottom = frame.pageY + frame.height - translation.value;
|
|
193
213
|
const keyboardTop = screenHeight - keyboardHeight;
|
|
194
214
|
const overlap = restingBottom + offset - keyboardTop;
|
|
@@ -206,6 +226,10 @@ export function useKeyboardAvoidance({
|
|
|
206
226
|
if (shouldTrack === wasTracking) return;
|
|
207
227
|
runOnJS(setTracking)(shouldTrack);
|
|
208
228
|
|
|
229
|
+
// A keyboard opening is the other place the guard is put back, for the
|
|
230
|
+
// element that was disarmed by a measurement that raced a re-layout.
|
|
231
|
+
if (shouldTrack && everLaidOut.value) laidOut.value = true;
|
|
232
|
+
|
|
209
233
|
// Moving straight from one field to another never closes the keyboard,
|
|
210
234
|
// so the field being left has nothing to follow back down — it is sent
|
|
211
235
|
// home explicitly, or it stays hanging where the keyboard left it.
|
|
@@ -218,17 +242,18 @@ export function useKeyboardAvoidance({
|
|
|
218
242
|
const {
|
|
219
243
|
setActive
|
|
220
244
|
} = track;
|
|
221
|
-
|
|
245
|
+
useLayoutEffect(() => {
|
|
222
246
|
setActive(tracking && mode === 'lift');
|
|
223
247
|
return () => setActive(false);
|
|
224
248
|
}, [tracking, mode, setActive]);
|
|
225
249
|
const onLayout = useCallback(_event => {
|
|
226
250
|
laidOut.value = true;
|
|
251
|
+
everLaidOut.value = true;
|
|
227
252
|
// A layout pass while the element is at rest means its slot moved for
|
|
228
253
|
// some reason other than the keyboard. Anything left over from the last
|
|
229
254
|
// lift belongs to the old slot.
|
|
230
255
|
if (!tracking && translation.value !== 0) translation.value = 0;
|
|
231
|
-
}, [laidOut, tracking, translation]);
|
|
256
|
+
}, [everLaidOut, laidOut, tracking, translation]);
|
|
232
257
|
const animatedStyle = useAnimatedStyle(() => {
|
|
233
258
|
if (mode === 'dock') {
|
|
234
259
|
if (!isActive.value) return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","TurboModuleRegistry","useWindowDimensions","measure","runOnJS","useAnimatedKeyboard","useAnimatedReaction","useAnimatedRef","useAnimatedStyle","useFrameCallback","useSharedValue","withTiming","SETTLE_DURATION","EPSILON","nativeControllerPresent","get","keyboardHeightImpl","useKeyboardHeight","resolveKeyboardHeight","height","controller","require","useReanimatedKeyboardAnimation","hasKeyboardController","useKeyboardAvoidance","enabled","active","mode","offset","bottomInset","ref","rawHeight","screenHeight","translation","laidOut","value","isActive","track","keyboardHeight","Math","abs","frame","restingBottom","pageY","keyboardTop","overlap","next","tracking","setTracking","shouldTrack","wasTracking","duration","setActive","onLayout","_event","animatedStyle","transform","translateY","travel","max"],"sourceRoot":"../../../src","sources":["hooks/use-keyboard-avoidance.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useLayoutEffect","useState","TurboModuleRegistry","useWindowDimensions","measure","runOnJS","useAnimatedKeyboard","useAnimatedReaction","useAnimatedRef","useAnimatedStyle","useFrameCallback","useSharedValue","withTiming","SETTLE_DURATION","EPSILON","nativeControllerPresent","get","keyboardHeightImpl","useKeyboardHeight","resolveKeyboardHeight","height","controller","require","useReanimatedKeyboardAnimation","hasKeyboardController","useKeyboardAvoidance","enabled","active","mode","offset","bottomInset","ref","rawHeight","screenHeight","translation","laidOut","everLaidOut","value","isActive","track","keyboardHeight","Math","abs","frame","restingBottom","pageY","keyboardTop","overlap","next","tracking","setTracking","shouldTrack","wasTracking","duration","setActive","onLayout","_event","animatedStyle","transform","translateY","travel","max"],"sourceRoot":"../../../src","sources":["hooks/use-keyboard-avoidance.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,6 +44,9 @@
|
|
|
44
44
|
* `Submit` disables itself while the field is empty. A dialog that accepts an
|
|
45
45
|
* empty answer produces empty feedback, and the person who sent it believes
|
|
46
46
|
* they said something.
|
|
47
|
+
*
|
|
48
|
+
* Disabled, it drops the fill instead of dimming it. A tinted accent pill
|
|
49
|
+
* still reads as the thing to press, whatever its opacity.
|
|
47
50
|
*/
|
|
48
51
|
import { type ReactElement, type ReactNode } from 'react';
|
|
49
52
|
import { TextInput, View, type TextInputProps, type ViewProps } from 'react-native';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/index.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-keyboard-avoidance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-keyboard-avoidance.ts"],"names":[],"mappings":"AA+CA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAML,gBAAgB,EAIhB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAYjC,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,iCAAiC;IACjC,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;CAC/D;AA6DD,mFAAmF;AACnF,wBAAgB,qBAAqB,IAAI,OAAO,CAS/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAc,EACd,MAAa,EACb,IAAa,EACb,MAAW,EACX,WAAe,GAChB,GAAE,2BAAgC,GAAG,0BAA0B,
|
|
1
|
+
{"version":3,"file":"use-keyboard-avoidance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-keyboard-avoidance.ts"],"names":[],"mappings":"AA+CA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAML,gBAAgB,EAIhB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAYjC,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,iCAAiC;IACjC,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;CAC/D;AA6DD,mFAAmF;AACnF,wBAAgB,qBAAqB,IAAI,OAAO,CAS/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAc,EACd,MAAa,EACb,IAAa,EACb,MAAW,EACX,WAAe,GAChB,GAAE,2BAAgC,GAAG,0BAA0B,CAgJ/D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "panelui-native",
|
|
3
|
-
"version": "0.88.
|
|
3
|
+
"version": "0.88.2",
|
|
4
4
|
"description": "High-performance React Native UI components for Expo. Semantic design tokens, powered by Uniwind (Tailwind v4) and Reanimated.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"module": "./lib/module/index.js",
|
|
@@ -44,6 +44,9 @@
|
|
|
44
44
|
* `Submit` disables itself while the field is empty. A dialog that accepts an
|
|
45
45
|
* empty answer produces empty feedback, and the person who sent it believes
|
|
46
46
|
* they said something.
|
|
47
|
+
*
|
|
48
|
+
* Disabled, it drops the fill instead of dimming it. A tinted accent pill
|
|
49
|
+
* still reads as the thing to press, whatever its opacity.
|
|
47
50
|
*/
|
|
48
51
|
import {
|
|
49
52
|
createContext,
|
|
@@ -143,9 +146,31 @@ const feedbackVariants = tv({
|
|
|
143
146
|
},
|
|
144
147
|
},
|
|
145
148
|
disabled: {
|
|
146
|
-
true: {
|
|
149
|
+
true: {},
|
|
147
150
|
},
|
|
148
151
|
},
|
|
152
|
+
compoundVariants: [
|
|
153
|
+
/*
|
|
154
|
+
* A disabled Submit loses its fill rather than dimming it.
|
|
155
|
+
*
|
|
156
|
+
* A tinted accent pill is still an accent pill: at any opacity it reads as
|
|
157
|
+
* the thing on the dialog to press, so an inert one gets pressed and then
|
|
158
|
+
* gets reported as broken. Dropping the fill is what makes the state
|
|
159
|
+
* legible before the press.
|
|
160
|
+
*
|
|
161
|
+
* The tint is fainter than Cancel's own on purpose. Matched fills would
|
|
162
|
+
* read as two Cancels rather than as one live action and one dead one.
|
|
163
|
+
*/
|
|
164
|
+
{
|
|
165
|
+
tone: 'submit',
|
|
166
|
+
disabled: true,
|
|
167
|
+
class: {
|
|
168
|
+
action: 'bg-foreground/[0.04]',
|
|
169
|
+
actionLabel: 'font-medium text-muted-foreground/50',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
{ tone: 'cancel', disabled: true, class: { action: 'opacity-[0.45]' } },
|
|
173
|
+
],
|
|
149
174
|
});
|
|
150
175
|
|
|
151
176
|
interface FeedbackContextValue {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
* </Animated.View>
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
47
|
+
import { useCallback, useEffect, useLayoutEffect, useState } from 'react';
|
|
48
48
|
import {
|
|
49
49
|
TurboModuleRegistry,
|
|
50
50
|
useWindowDimensions,
|
|
@@ -201,7 +201,8 @@ export function useKeyboardAvoidance({
|
|
|
201
201
|
const translation = useSharedValue(0);
|
|
202
202
|
|
|
203
203
|
/*
|
|
204
|
-
* Whether the element
|
|
204
|
+
* Whether the element can be measured: laid out at least once, and still
|
|
205
|
+
* mounted.
|
|
205
206
|
*
|
|
206
207
|
* `measure` warns when it is handed a view the layout engine has no metrics
|
|
207
208
|
* for — every frame between a mount and its first layout, and every frame
|
|
@@ -210,11 +211,26 @@ export function useKeyboardAvoidance({
|
|
|
210
211
|
* the warning is printed before that null comes back. Running once a frame,
|
|
211
212
|
* one of these fills the log on its own.
|
|
212
213
|
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
214
|
+
* The layout pass arms it. Two things disarm it, because one is not enough:
|
|
215
|
+
*
|
|
216
|
+
* - the teardown, in a *layout* effect. A plain effect's cleanup is written
|
|
217
|
+
* from the JS thread after the commit, which is one or more frames after
|
|
218
|
+
* the view it is protecting has gone — long enough for the loop to measure
|
|
219
|
+
* a detached view and log. This is the case an overlay hits every time:
|
|
220
|
+
* a dialog whose content unmounts on close takes the element with it while
|
|
221
|
+
* the keyboard is still on its way down.
|
|
222
|
+
* - the worklet itself, whenever a measurement comes back null. That write
|
|
223
|
+
* belongs to the UI thread, so it lands whatever order the teardown
|
|
224
|
+
* arrives in, and a view that has gone costs one warning rather than one
|
|
225
|
+
* per frame.
|
|
226
|
+
*
|
|
227
|
+
* A disarm that was only a race is put back by the next layout pass, or by
|
|
228
|
+
* the keyboard opening again — `everLaidOut` is what makes the second one
|
|
229
|
+
* safe, since arming before the first layout is the other half of the bug.
|
|
215
230
|
*/
|
|
216
231
|
const laidOut = useSharedValue(false);
|
|
217
|
-
|
|
232
|
+
const everLaidOut = useSharedValue(false);
|
|
233
|
+
useLayoutEffect(
|
|
218
234
|
() => () => {
|
|
219
235
|
laidOut.value = false;
|
|
220
236
|
},
|
|
@@ -250,7 +266,11 @@ export function useKeyboardAvoidance({
|
|
|
250
266
|
if (!laidOut.value) return;
|
|
251
267
|
|
|
252
268
|
const frame = measure(ref);
|
|
253
|
-
if (!frame
|
|
269
|
+
if (!frame) {
|
|
270
|
+
laidOut.value = false;
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
if (frame.height <= 0) return;
|
|
254
274
|
|
|
255
275
|
const restingBottom = frame.pageY + frame.height - translation.value;
|
|
256
276
|
const keyboardTop = screenHeight - keyboardHeight;
|
|
@@ -272,6 +292,10 @@ export function useKeyboardAvoidance({
|
|
|
272
292
|
if (shouldTrack === wasTracking) return;
|
|
273
293
|
runOnJS(setTracking)(shouldTrack);
|
|
274
294
|
|
|
295
|
+
// A keyboard opening is the other place the guard is put back, for the
|
|
296
|
+
// element that was disarmed by a measurement that raced a re-layout.
|
|
297
|
+
if (shouldTrack && everLaidOut.value) laidOut.value = true;
|
|
298
|
+
|
|
275
299
|
// Moving straight from one field to another never closes the keyboard,
|
|
276
300
|
// so the field being left has nothing to follow back down — it is sent
|
|
277
301
|
// home explicitly, or it stays hanging where the keyboard left it.
|
|
@@ -282,7 +306,7 @@ export function useKeyboardAvoidance({
|
|
|
282
306
|
);
|
|
283
307
|
|
|
284
308
|
const { setActive } = track;
|
|
285
|
-
|
|
309
|
+
useLayoutEffect(() => {
|
|
286
310
|
setActive(tracking && mode === 'lift');
|
|
287
311
|
return () => setActive(false);
|
|
288
312
|
}, [tracking, mode, setActive]);
|
|
@@ -290,12 +314,13 @@ export function useKeyboardAvoidance({
|
|
|
290
314
|
const onLayout = useCallback(
|
|
291
315
|
(_event: LayoutChangeEvent) => {
|
|
292
316
|
laidOut.value = true;
|
|
317
|
+
everLaidOut.value = true;
|
|
293
318
|
// A layout pass while the element is at rest means its slot moved for
|
|
294
319
|
// some reason other than the keyboard. Anything left over from the last
|
|
295
320
|
// lift belongs to the old slot.
|
|
296
321
|
if (!tracking && translation.value !== 0) translation.value = 0;
|
|
297
322
|
},
|
|
298
|
-
[laidOut, tracking, translation]
|
|
323
|
+
[everLaidOut, laidOut, tracking, translation]
|
|
299
324
|
);
|
|
300
325
|
|
|
301
326
|
const animatedStyle = useAnimatedStyle(() => {
|