Files
discord-decomp/sources/by-id/module-01839-useChatKeyboard.js
2026-07-28 01:06:53 +03:00

645 lines
40 KiB
JavaScript

/* Metro module 1839; source: unknown; dependencies: [1610, 1821, 1804, 1840] */
import Module01821 from './module-01821.js'; /* Metro dependency 1821 */
import * as Module01610Module from './module-01610.js'; /* Metro dependency 1610 */
import * as moduleValue82 from './module-01804.js'; /* Metro dependency 1804 */
function _fun19954(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#19954, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1966:6, offset: 0x00eb9fb4, size: 137 bytes, params: 8, frame: 16
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
object = {code: 'function pnpm_indexTs1(effective,totalPaddingForMaxScroll){const{size,layout,scroll,scrollTo,scrollViewRef}=this.__closure;const paddingForMax=totalPaddingForMaxScroll!==undefined?totalPaddingForMaxScroll:effective;const maxScroll=Math.max(size.value.height-layout.value.height+paddingForMax,0);if(scroll.value>maxScroll){scrollTo(scrollViewRef,0,maxScroll,false);}}'};
object = {code: 'function pnpm_indexTs2(e){const{freeze,targetKeyboardHeight,closing,getEffectiveHeight,offset,isScrollAtEnd,scroll,layout,size,inverted,getVisibleMinimumPaddingFraction,blankSpace,getMinimumPaddingAbsorbed,extraContentPadding,getScrollEffective,minimumPaddingFractionOnOpen,padding,offsetBeforeScroll,keyboardLiftBehavior,actualOpenShift}=this.__closure;if(freeze.value){return;}if(e.height>0){targetKeyboardHeight.value=e.height;closing.value=false;}else{closing.value=true;}const effective=getEffectiveHeight(e.height,targetKeyboardHeight.value,offset);const atEnd=isScrollAtEnd(scroll.value,layout.value.height,size.value.height,inverted);const visibleFraction=getVisibleMinimumPaddingFraction(scroll.value,layout.value.height,size.value.height,blankSpace.value,inverted);const minimumPaddingAbsorbed=visibleFraction>=1?getMinimumPaddingAbsorbed(blankSpace.value,extraContentPadding.value):0;const scrollEffective=getScrollEffective(effective,minimumPaddingAbsorbed);if(inverted&&e.duration===-1){return;}else if(e.height>0){minimumPaddingFractionOnOpen.value=visibleFraction>=1?1:0;padding.value=effective;offsetBeforeScroll.value=scroll.value;if(!inverted&&keyboardLiftBehavior==="whenAtEnd"&&!atEnd){offsetBeforeScroll.value=-1;}else if(!inverted&&scrollEffective===0){offsetBeforeScroll.value=-1;}else if(inverted&&scrollEffective===0){offsetBeforeScroll.value=scroll.value;}}else{if(inverted){offsetBeforeScroll.value=scroll.value;}else{if(offsetBeforeScroll.value!==-1){offsetBeforeScroll.value=scroll.value-actualOpenShift.value;}}}}'};
object = {code: 'function pnpm_indexTs3(e){const{freeze,currentHeight,inverted,getEffectiveHeight,targetKeyboardHeight,offset,getMinimumPaddingAbsorbed,blankSpace,extraContentPadding,minimumPaddingFractionOnOpen,getScrollEffective,isScrollAtEnd,offsetBeforeScroll,layout,size,keyboardLiftBehavior,padding,scrollTo,scrollViewRef,shouldShiftContent,closing,clampScrollIfNeeded,scroll,clampedScrollTarget,actualOpenShift}=this.__closure;if(freeze.value){return;}currentHeight.value=e.height;if(inverted){if(e.duration===-1){return;}const effective=getEffectiveHeight(e.height,targetKeyboardHeight.value,offset);const minimumPaddingAbsorbed=getMinimumPaddingAbsorbed(blankSpace.value,extraContentPadding.value)*minimumPaddingFractionOnOpen.value;const scrollEffective=getScrollEffective(effective,minimumPaddingAbsorbed);const actualTotalPadding=Math.max(blankSpace.value,effective+extraContentPadding.value);const wasAtEnd=isScrollAtEnd(offsetBeforeScroll.value,layout.value.height,size.value.height,inverted);if(keyboardLiftBehavior==="never"&&wasAtEnd&&effective<padding.value){padding.value=effective;if(scrollEffective===0&&minimumPaddingAbsorbed>0){return;}scrollTo(scrollViewRef,0,0,false);return;}if(!shouldShiftContent(keyboardLiftBehavior,wasAtEnd)){if(closing.value&&effective<padding.value){padding.value=effective;clampScrollIfNeeded(effective,actualTotalPadding);}return;}if(scrollEffective===0&&minimumPaddingAbsorbed>0){return;}if(keyboardLiftBehavior==="persistent"){const currentShift=offsetBeforeScroll.value+padding.value-scroll.value;if(effective<currentShift){if(wasAtEnd){padding.value=effective;scrollTo(scrollViewRef,0,0,false);}else if(closing.value){padding.value=effective;clampScrollIfNeeded(effective,actualTotalPadding);}return;}}const target=offsetBeforeScroll.value+padding.value-scrollEffective;scrollTo(scrollViewRef,0,target,false);}else{const effective=getEffectiveHeight(e.height,targetKeyboardHeight.value,offset);const minimumPaddingAbsorbed=getMinimumPaddingAbsorbed(blankSpace.value,extraContentPadding.value)*minimumPaddingFractionOnOpen.value;const scrollEffective=getScrollEffective(effective,minimumPaddingAbsorbed);const actualTotalPadding=Math.max(blankSpace.value,effective+extraContentPadding.value);if(keyboardLiftBehavior==="never"&&closing.value&&effective<padding.value){clampScrollIfNeeded(effective,actualTotalPadding);return;}if(!shouldShiftContent(keyboardLiftBehavior,true)){return;}if(offsetBeforeScroll.value===-1){if(closing.value){clampScrollIfNeeded(effective,actualTotalPadding);}return;}if(keyboardLiftBehavior==="persistent"&&closing.value){const keepAt=offsetBeforeScroll.value+padding.value;const maxScroll=Math.max(size.value.height-layout.value.height+actualTotalPadding,0);scrollTo(scrollViewRef,0,Math.min(keepAt,maxScroll),false);return;}const target=clampedScrollTarget(offsetBeforeScroll.value,scrollEffective,size.value.height,layout.value.height,actualTotalPadding);scrollTo(scrollViewRef,0,target,false);if(!closing.value){actualOpenShift.value=target-offsetBeforeScroll.value;}}}'};
object = {code: 'function pnpm_indexTs4(e){const{freeze,getEffectiveHeight,targetKeyboardHeight,offset,padding,offsetBeforeScroll,actualOpenShift,scroll}=this.__closure;if(freeze.value){return;}const effective=getEffectiveHeight(e.height,targetKeyboardHeight.value,offset);padding.value=effective;if(effective>0&&offsetBeforeScroll.value!==-1){actualOpenShift.value=scroll.value-offsetBeforeScroll.value;}}'};
exports.useChatKeyboard = useChatKeyboard;
function useChatKeyboard(a0, {inverted, keyboardLiftBehavior, freeze, offset, blankSpace, extraContentPadding}) { // fn#19955, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1966:5501, offset: 0x00eba03d, size: 1077 bytes, params: 3, frame: 42
const env0_0 = a0;
const freeze2 = freeze;
const offset3 = offset;
const blankSpace2 = blankSpace;
const extraContentPadding2 = extraContentPadding;
const value2 = (Module01610Module).useSharedValue(0);
const value3 = (Module01610Module).useSharedValue(0);
const value4 = (Module01610Module).useSharedValue(0);
const value5 = (Module01610Module).useSharedValue(0);
const value6 = (Module01610Module).useSharedValue(false);
const value7 = (Module01610Module).useSharedValue(0);
const value8 = (Module01610Module).useSharedValue(0);
const value9 = (Module01821)(a0);
const layout = value9.layout;
const size = value9.size;
const offset2 = value9.offset;
const onLayout = value9.onLayout;
const onContentSizeChange = value9.onContentSizeChange;
let closure = clampScrollIfNeeded;
let object = {size: size, layout: layout, scroll: offset2};
const scrollTo = (Module01610Module).scrollTo;
object.scrollTo = scrollTo;
object.scrollViewRef = a0;
closure.__closure = object;
closure.__workletHash = 2908292579657;
closure.__initData = freeze2;
const useKeyboardHandler = moduleValue82.useKeyboardHandler;
object = {};
const onStart_199572 = onStart_19957;
const object2 = {freeze: freeze, targetKeyboardHeight: value5, closing: value6};
const getEffectiveHeight = (require(1840) /* metro dependency 1840 */).getEffectiveHeight;
object2.getEffectiveHeight = getEffectiveHeight;
object2.offset = offset;
const isScrollAtEnd = (require(1840) /* metro dependency 1840 */).isScrollAtEnd;
object2.isScrollAtEnd = isScrollAtEnd;
object2.scroll = offset2;
object2.layout = layout;
object2.size = size;
object2.inverted = inverted;
const getVisibleMinimumPaddingFraction = (require(1840) /* metro dependency 1840 */).getVisibleMinimumPaddingFraction;
object2.getVisibleMinimumPaddingFraction = getVisibleMinimumPaddingFraction;
object2.blankSpace = blankSpace;
const getMinimumPaddingAbsorbed = (require(1840) /* metro dependency 1840 */).getMinimumPaddingAbsorbed;
object2.getMinimumPaddingAbsorbed = getMinimumPaddingAbsorbed;
object2.extraContentPadding = extraContentPadding;
const getScrollEffective = (require(1840) /* metro dependency 1840 */).getScrollEffective;
object2.getScrollEffective = getScrollEffective;
object2.minimumPaddingFractionOnOpen = value7;
object2.padding = value2;
object2.offsetBeforeScroll = value4;
object2.keyboardLiftBehavior = keyboardLiftBehavior;
object2.actualOpenShift = value8;
onStart_199572.__closure = object2;
onStart_199572.__workletHash = 16814590881167;
onStart_199572.__initData = offset3;
object.onStart = onStart_199572;
const onMove_199582 = onMove_19958;
const object3 = {freeze: freeze, currentHeight: value3, inverted: inverted};
object3.getEffectiveHeight = getEffectiveHeight;
object3.targetKeyboardHeight = value5;
object3.offset = offset;
object3.getMinimumPaddingAbsorbed = getMinimumPaddingAbsorbed;
object3.blankSpace = blankSpace;
object3.extraContentPadding = extraContentPadding;
object3.minimumPaddingFractionOnOpen = value7;
object3.getScrollEffective = getScrollEffective;
object3.isScrollAtEnd = isScrollAtEnd;
object3.offsetBeforeScroll = value4;
object3.layout = layout;
object3.size = size;
object3.keyboardLiftBehavior = keyboardLiftBehavior;
object3.padding = value2;
object3.scrollTo = scrollTo;
object3.scrollViewRef = a0;
object3.shouldShiftContent = (require(1840) /* metro dependency 1840 */).shouldShiftContent;
object3.closing = value6;
object3.clampScrollIfNeeded = closure;
object3.scroll = offset2;
object3.clampedScrollTarget = (require(1840) /* metro dependency 1840 */).clampedScrollTarget;
object3.actualOpenShift = value8;
onMove_199582.__closure = object3;
onMove_199582.__workletHash = 6317221970795;
onMove_199582.__initData = blankSpace2;
object.onMove = onMove_199582;
closure = onEnd_19959;
closure.__closure = {freeze: freeze, getEffectiveHeight: getEffectiveHeight, targetKeyboardHeight: value5,
offset: offset, padding: value2, offsetBeforeScroll: value4, actualOpenShift: value8, scroll: offset2};
closure.__workletHash = 1904796451086;
closure.__initData = extraContentPadding2;
object.onEnd = closure;
Reflect.apply(useKeyboardHandler, moduleValue82, [object, [inverted, keyboardLiftBehavior, offset]]);
return {padding: value2, currentHeight: value3, contentOffsetY: undefined, scroll: offset2, layout: layout,
size: size, onLayout: onLayout, onContentSizeChange: onContentSizeChange};
function clampScrollIfNeeded(a0, a1) { // fn#19956, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1966:5926, owner: useChatKeyboard.clampScrollIfNeeded, offset: 0x00eba472, size: 134 bytes, params: 3, frame: 18
var value7;
const value = a0;
const value2 = a1;
const r5 = value2 === undefined ? value : value2;
const Math = global.Math;
const value5 = Math.max(size.value.height - layout.value.height + r5, 0);
if (offset.value > value5) {
value7 = environment.__proto__;
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, value5, false);
}
}
function useChatKeyboardOnStart(a0) { // fn#19957, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1966:6234, owner: useChatKeyboard.onStart, offset: 0x00eba4f8, size: 606 bytes, params: 2, frame: 30
var r9;
var height;
var value3;
var binding;
var value4;
var moduleValue;
var getEffectiveHeight;
var offsetBinding;
var value6;
var moduleValue2;
var isScrollAtEnd;
var value7;
var layoutBinding;
var sizeBinding;
var height2;
var invertedBinding;
var isScrollAtEnd2;
var moduleValue3;
var getVisibleMinimumPaddingFraction;
var value10;
var value14;
var value15;
var moduleValue4;
var scrollEffective;
if (!freeze.value) {
height = a0.height;
value3 = 0;
if (height > value3) {
env0_10.value = a0.height;
env0_11.value = false;
} else {
env0_11.value = true;
}
value4 = environment.__proto__;
moduleValue = require(1840) /* metro dependency 1840 */;
getEffectiveHeight = moduleValue.getEffectiveHeight;
height = a0.height;
value6 = Reflect.apply(getEffectiveHeight, moduleValue, [height, env0_10.value, offset]);
moduleValue2 = require(1840) /* metro dependency 1840 */;
isScrollAtEnd = moduleValue2.isScrollAtEnd;
offsetBinding = offset;
value7 = offsetBinding.value;
layoutBinding = layout;
height = layoutBinding.value.height;
sizeBinding = size;
height2 = sizeBinding.value.height;
invertedBinding = inverted;
isScrollAtEnd2 = Reflect.apply(isScrollAtEnd, moduleValue2, [value7, height, height2, invertedBinding]);
moduleValue3 = require(1840) /* metro dependency 1840 */;
getVisibleMinimumPaddingFraction = moduleValue3.getVisibleMinimumPaddingFraction;
value10 = offsetBinding.value;
height = layoutBinding.value.height;
value14 = Reflect.apply(getVisibleMinimumPaddingFraction, moduleValue3, [value10, height,
sizeBinding.value.height,
blankSpace.value, invertedBinding]);
value15 = 1;
if (value14 >= value15) {
moduleValue4 = require(1840) /* metro dependency 1840 */;
r9 = moduleValue4.getMinimumPaddingAbsorbed(blankSpace.value, extraContentPadding.value);
} else {
r9 = value3;
}
scrollEffective = (require(1840) /* metro dependency 1840 */).getScrollEffective(value6, r9);
invertedBinding = inverted;
if (!(invertedBinding && a0.duration === -1)) {
if (a0.height > value3) {
binding = env0_12;
binding.value = value14 >= value15 ? value15 : value3;
env0_7.value = value6;
binding = env0_9;
binding.value = offset.value;
if (inverted) {
if (inverted) {
if (inverted && value3 === scrollEffective) {
env0_9.value = offset.value;
}
} else if (value3 !== scrollEffective) {
if (inverted && value3 === scrollEffective) {
env0_9.value = offset.value;
}
} else {
env0_9.value = -1;
}
} else if (keyboardLiftBehavior !== 'whenAtEnd') {
if (inverted) {
if (inverted && value3 === scrollEffective) {
env0_9.value = offset.value;
}
} else if (value3 !== scrollEffective) {
if (inverted && value3 === scrollEffective) {
env0_9.value = offset.value;
}
} else {
env0_9.value = -1;
}
} else if (isScrollAtEnd2) {
if (inverted) {
if (inverted && value3 === scrollEffective) {
env0_9.value = offset.value;
}
} else if (value3 !== scrollEffective) {
if (inverted && value3 === scrollEffective) {
env0_9.value = offset.value;
}
} else {
env0_9.value = -1;
}
} else {
env0_9.value = -1;
}
} else {
invertedBinding = inverted;
binding = env0_9;
if (invertedBinding) {
binding.value = offset.value;
} else if (binding.value !== -1) {
env0_9.value = offset.value - env0_13.value;
}
}
}
}
}
function useChatKeyboardOnMove(a0) { // fn#19958, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1966:7400, owner: useChatKeyboard.onMove, offset: 0x00eba756, size: 1341 bytes, params: 2, frame: 27
var getEffectiveHeight;
var getMinimumPaddingAbsorbed;
var blankSpaceBinding;
var extraContentPaddingBinding;
var Math;
var moduleValue4;
var moduleValue5;
var value22;
var scrollTo;
var value26;
var value29;
var moduleValue7;
var value31;
var moduleValue8;
var value33;
var moduleValue9;
var value34;
var value38;
var scrollEffective;
var value42;
var moduleValue11;
var isScrollAtEnd;
var value43;
var isScrollAtEnd2;
var moduleValue12;
if (!freeze.value) {
var binding = env0_8;
var height = a0.height;
binding.value = height;
if (inverted) {
if (a0.duration === -1) {
return undefined;
}
value31 = environment.__proto__;
moduleValue8 = require(1840) /* metro dependency 1840 */;
getEffectiveHeight = moduleValue8.getEffectiveHeight;
height = a0.height;
value33 = Reflect.apply(getEffectiveHeight, moduleValue8, [height, env0_10.value, offset]);
moduleValue9 = require(1840) /* metro dependency 1840 */;
getMinimumPaddingAbsorbed = moduleValue9.getMinimumPaddingAbsorbed;
blankSpaceBinding = blankSpace;
value34 = blankSpaceBinding.value;
extraContentPaddingBinding = extraContentPadding;
value38 = Reflect.apply(getMinimumPaddingAbsorbed, moduleValue9, [value34,
extraContentPaddingBinding.value]) * env0_12.value;
scrollEffective = (require(1840) /* metro dependency 1840 */).getScrollEffective(value33, value38);
Math = global.Math;
value42 = Math.max(blankSpaceBinding.value, value33 + extraContentPaddingBinding.value);
moduleValue11 = require(1840) /* metro dependency 1840 */;
isScrollAtEnd = moduleValue11.isScrollAtEnd;
value43 = env0_9.value;
height = layout.value.height;
isScrollAtEnd2 = Reflect.apply(isScrollAtEnd, moduleValue11, [value43, height, size.value.height,
inverted]);
if (keyboardLiftBehavior !== 'never') {
moduleValue12 = require(1840) /* metro dependency 1840 */;
if (moduleValue12.shouldShiftContent(keyboardLiftBehavior, isScrollAtEnd2)) {
if (scrollEffective !== 0) {
if (keyboardLiftBehavior !== 'persistent') {
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value33 < env0_9.value + env0_7.value - offset.value) {
if (isScrollAtEnd2) {
env0_7.value = value33;
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
} else if (env0_11.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value38 > 0) {
return undefined;
}
if (keyboardLiftBehavior !== 'persistent') {
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value33 < env0_9.value + env0_7.value - offset.value) {
if (isScrollAtEnd2) {
env0_7.value = value33;
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
} else if (env0_11.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (env0_11.value && value33 < env0_7.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
if (isScrollAtEnd2) {
if (value33 < env0_7.value) {
env0_7.value = value33;
if (scrollEffective !== 0) {
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
return undefined;
}
if (value38 > 0) {
return undefined;
}
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
return undefined;
}
moduleValue12 = require(1840) /* metro dependency 1840 */;
if (moduleValue12.shouldShiftContent(keyboardLiftBehavior, isScrollAtEnd2)) {
if (scrollEffective !== 0) {
if (keyboardLiftBehavior !== 'persistent') {
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value33 < env0_9.value + env0_7.value - offset.value) {
if (isScrollAtEnd2) {
env0_7.value = value33;
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
} else if (env0_11.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value38 > 0) {
return undefined;
}
if (keyboardLiftBehavior !== 'persistent') {
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value33 < env0_9.value + env0_7.value - offset.value) {
if (isScrollAtEnd2) {
env0_7.value = value33;
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
} else if (env0_11.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (env0_11.value && value33 < env0_7.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
moduleValue12 = require(1840) /* metro dependency 1840 */;
if (moduleValue12.shouldShiftContent(keyboardLiftBehavior, isScrollAtEnd2)) {
if (scrollEffective !== 0) {
if (keyboardLiftBehavior !== 'persistent') {
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value33 < env0_9.value + env0_7.value - offset.value) {
if (isScrollAtEnd2) {
env0_7.value = value33;
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
} else if (env0_11.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value38 > 0) {
return undefined;
}
if (keyboardLiftBehavior !== 'persistent') {
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (value33 < env0_9.value + env0_7.value - offset.value) {
if (isScrollAtEnd2) {
env0_7.value = value33;
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, 0, false);
} else if (env0_11.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0,
env0_9.value + env0_7.value - scrollEffective,
false);
return undefined;
}
if (env0_11.value && value33 < env0_7.value) {
env0_7.value = value33;
clampScrollIfNeeded(value33, value42);
}
return undefined;
}
var moduleValue = require(1840) /* metro dependency 1840 */;
getEffectiveHeight = moduleValue.getEffectiveHeight;
height = a0.height;
var value5 = Reflect.apply(getEffectiveHeight, moduleValue, [height, env0_10.value, offset]);
var moduleValue2 = require(1840) /* metro dependency 1840 */;
getMinimumPaddingAbsorbed = moduleValue2.getMinimumPaddingAbsorbed;
blankSpaceBinding = blankSpace;
var value6 = blankSpaceBinding.value;
extraContentPaddingBinding = extraContentPadding;
var scrollEffective2 = (require(1840) /* metro dependency 1840 */).getScrollEffective(value5,
Reflect.apply(getMinimumPaddingAbsorbed, moduleValue2, [value6,
extraContentPaddingBinding.value]) * env0_12.value);
Math = global.Math;
var value14 = Math.max(blankSpaceBinding.value, value5 + extraContentPaddingBinding.value);
if (keyboardLiftBehavior !== 'never') {
moduleValue4 = require(1840) /* metro dependency 1840 */;
if (moduleValue4.shouldShiftContent(keyboardLiftBehavior, true)) {
if (env0_9.value === -1) {
if (env0_11.value) {
clampScrollIfNeeded(value5, value14);
}
return undefined;
}
if (keyboardLiftBehavior !== 'persistent') {
moduleValue5 = require(1840) /* metro dependency 1840 */;
value22 = moduleValue5.clampedScrollTarget(env0_9.value, scrollEffective2, size.value.height,
layout.value.height,
value14);
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, value22, false);
if (!env0_11.value) {
env0_13.value = value22 - env0_9.value;
}
return undefined;
}
if (env0_11.value) {
value26 = env0_9.value + env0_7.value;
Math = global.Math;
value29 = Math.max(size.value.height - layout.value.height + value14, 0);
moduleValue7 = require(1610) /* metro dependency 1610 */;
scrollTo = moduleValue7.scrollTo;
binding = env0_0;
Math = global.Math;
Reflect.apply(scrollTo, moduleValue7, [binding, 0, Math.min(value26, value29), false]);
return undefined;
}
moduleValue5 = require(1840) /* metro dependency 1840 */;
value22 = moduleValue5.clampedScrollTarget(env0_9.value, scrollEffective2, size.value.height,
layout.value.height,
value14);
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, value22, false);
if (!env0_11.value) {
env0_13.value = value22 - env0_9.value;
}
return undefined;
}
return undefined;
}
if (env0_11.value) {
if (value5 < env0_7.value) {
clampScrollIfNeeded(value5, value14);
return undefined;
}
moduleValue4 = require(1840) /* metro dependency 1840 */;
if (moduleValue4.shouldShiftContent(keyboardLiftBehavior, true)) {
if (env0_9.value === -1) {
if (env0_11.value) {
clampScrollIfNeeded(value5, value14);
}
return undefined;
}
if (keyboardLiftBehavior !== 'persistent') {
moduleValue5 = require(1840) /* metro dependency 1840 */;
value22 = moduleValue5.clampedScrollTarget(env0_9.value, scrollEffective2, size.value.height,
layout.value.height,
value14);
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, value22, false);
if (!env0_11.value) {
env0_13.value = value22 - env0_9.value;
}
return undefined;
}
if (env0_11.value) {
value26 = env0_9.value + env0_7.value;
Math = global.Math;
value29 = Math.max(size.value.height - layout.value.height + value14, 0);
moduleValue7 = require(1610) /* metro dependency 1610 */;
scrollTo = moduleValue7.scrollTo;
binding = env0_0;
Math = global.Math;
Reflect.apply(scrollTo, moduleValue7, [binding, 0, Math.min(value26, value29), false]);
return undefined;
}
moduleValue5 = require(1840) /* metro dependency 1840 */;
value22 = moduleValue5.clampedScrollTarget(env0_9.value, scrollEffective2, size.value.height,
layout.value.height,
value14);
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, value22, false);
if (!env0_11.value) {
env0_13.value = value22 - env0_9.value;
}
return undefined;
}
return undefined;
}
moduleValue4 = require(1840) /* metro dependency 1840 */;
if (moduleValue4.shouldShiftContent(keyboardLiftBehavior, true)) {
if (env0_9.value === -1) {
if (env0_11.value) {
clampScrollIfNeeded(value5, value14);
}
return undefined;
}
if (keyboardLiftBehavior !== 'persistent') {
moduleValue5 = require(1840) /* metro dependency 1840 */;
value22 = moduleValue5.clampedScrollTarget(env0_9.value, scrollEffective2, size.value.height,
layout.value.height,
value14);
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, value22, false);
if (!env0_11.value) {
env0_13.value = value22 - env0_9.value;
}
return undefined;
}
if (env0_11.value) {
value26 = env0_9.value + env0_7.value;
Math = global.Math;
value29 = Math.max(size.value.height - layout.value.height + value14, 0);
moduleValue7 = require(1610) /* metro dependency 1610 */;
scrollTo = moduleValue7.scrollTo;
binding = env0_0;
Math = global.Math;
Reflect.apply(scrollTo, moduleValue7, [binding, 0, Math.min(value26, value29), false]);
return undefined;
}
moduleValue5 = require(1840) /* metro dependency 1840 */;
value22 = moduleValue5.clampedScrollTarget(env0_9.value, scrollEffective2, size.value.height,
layout.value.height,
value14);
(require(1610) /* metro dependency 1610 */).scrollTo(env0_0, 0, value22, false);
if (!env0_11.value) {
env0_13.value = value22 - env0_9.value;
}
return undefined;
}
}
}
function useChatKeyboardOnEnd(a0) { // fn#19959, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1966:9387, owner: useChatKeyboard.onEnd, offset: 0x00ebac93, size: 154 bytes, params: 2, frame: 16
var value3;
var moduleValue;
var value5;
if (!freeze.value) {
value3 = environment.__proto__;
moduleValue = require(1840) /* metro dependency 1840 */;
value5 = moduleValue.getEffectiveHeight(a0.height, env0_10.value, offset);
env0_7.value = value5;
if (value5 > 0 && env0_9.value !== -1) {
env0_13.value = offset.value - env0_9.value;
}
}
}
}
}
global.__d(_fun19954, 1839, [1610, 1821, 1804,
1840]) /* metro module 1839, dependencies: [1610, 1821, 1804, 1840] */;