Files
discord-decomp/modules/search/native/components/tabs/SearchTabsTransitionGroup.tsx
T
2026-11-01 12:12:55 +02:00

116 lines
5.5 KiB
TypeScript

// Metro module 15553 (f15554).
import { useEffect, useCallback, useContext } from "react";
import { SearchResultExactCountEnabled } from "../../../../user_settings/UserSettings";
import { defaultCountFormatter } from "../../../../../design/components/Tabs/native/Tabs.native";
import * as _ReanimatedRexport from "../../../../reanimated/ReanimatedRexport";
import ReanimatedRexport, { useSharedValue, useAnimatedStyle, useAnimatedReaction } from "../../../../reanimated/ReanimatedRexport";
import * as _TransitionGroup from "../../../../../design/components/TransitionGroup/TransitionGroup";
import { TransitionGroup } from "../../../../../design/components/TransitionGroup/TransitionGroup";
import * as _spring from "../../../../../design/animation/reanimated/spring/spring";
import * as _springPresets from "../../../../../design/animation/reanimated/spring/springPresets";
import { SwipeForMemberListContext } from "../../../../main_tabs_v2/native/channel/SwipeForMemberListWrapper";
import { Tabs } from "../../../../../design/components/Tabs/native/Tabs.native";
let __initData, __initData2, __initData3, __initData4, __initData5, AnimatedTabs, renderItem;
const getItemKey = function getItemKey(a0) {
return a0.items.map((item) => item.id).join("-");
};
AnimatedTabs = function AnimatedTabs(props) {
let context;
const { state, transitionState, cleanUp } = props;
context = void 0;
const r0 = transitionState === _TransitionGroup.TransitionStates.MOUNTED ? 1 : 0;
let setting;
const sharedValue = useSharedValue(r0);
const f = () => {
const r7 = sharedValue.get();
const t = function t(a0) {
if (a0 ? transitionState === _TransitionGroup.TransitionStates.YEETED : a0) {
_ReanimatedRexport.runOnJS(cleanUp)();
}
};
t.__closure = {
transitionState,
TransitionStates: _TransitionGroup.TransitionStates,
runOnJS: _ReanimatedRexport.runOnJS,
cleanUp
};
t.__workletHash = 15209468679721;
t.__initData = __initData2;
return {
opacity: _spring.withSpring(r7, _springPresets.springStandard, "respect-motion-settings", t),
position: sharedValue.get() === 1 ? "relative" : "absolute"
};
};
f.__closure = {
withSpring: _spring.withSpring,
opacity: sharedValue,
springStandard: _springPresets.springStandard,
transitionState,
TransitionStates: _TransitionGroup.TransitionStates,
runOnJS: _ReanimatedRexport.runOnJS,
cleanUp
};
f.__workletHash = 10740262883803;
f.__initData = __initData;
const animatedStyle = useAnimatedStyle(f);
useEffect(() => {
sharedValue.set(transitionState === _TransitionGroup.TransitionStates.YEETED ? 0 : 1);
}, [sharedValue, transitionState]);
setting = void 0;
setting = SearchResultExactCountEnabled.useSetting();
const callback = useCallback((a0) => !setting && a0 > 1000 ? `(${defaultCountFormatter(1000)}+)` : `(${defaultCountFormatter(a0)})`, [setting]);
context = useContext(SwipeForMemberListContext);
const h = function h() {
if (context != null) {
context.disallowGesture.set(false);
}
};
h.__closure = {
swipeForMemberListContext: context
};
h.__workletHash = 5080152010224;
h.__initData = __initData3;
const callback2 = useCallback(h, [context]);
const F = () => state.scrollOffset.get() > 0;
F.__closure = {
state
};
F.__workletHash = 7791091456487;
F.__initData = __initData4;
const w = function w(a0, a1) {
if (a0 !== a1 && context != null) {
context.disallowGesture.set(a0);
}
};
w.__closure = {
swipeForMemberListContext: context
};
w.__workletHash = 15386779064911;
w.__initData = __initData5;
useAnimatedReaction(F, w);
return <ReanimatedRexport.View style={animatedStyle}>
<Tabs state={state} grow={false} formatCount={callback} simultaneousHandlers={context?.gesture} onEndDrag={context != null ? callback2 : void 0} />
</ReanimatedRexport.View>;
};
renderItem = function renderItem(a0, a1, a2, a3) {
return <AnimatedTabs key={a0} state={a1} transitionState={a2} cleanUp={a3} />;
};
__initData = {
code: "function SearchTabsTransitionGroupTsx1(){const{withSpring,opacity,springStandard,transitionState,TransitionStates,runOnJS,cleanUp}=this.__closure;return{opacity:withSpring(opacity.get(),springStandard,'respect-motion-settings',function(finished){if(finished&&transitionState===TransitionStates.YEETED){runOnJS(cleanUp)();}}),position:opacity.get()===1?'relative':'absolute'};}"
};
__initData2 = {
code: "function SearchTabsTransitionGroupTsx2(finished){const{transitionState,TransitionStates,runOnJS,cleanUp}=this.__closure;if(finished&&transitionState===TransitionStates.YEETED){runOnJS(cleanUp)();}}"
};
__initData3 = {
code: "function SearchTabsTransitionGroupTsx3(){const{swipeForMemberListContext}=this.__closure;var _swipeForMemberListCo;(_swipeForMemberListCo=swipeForMemberListContext)===null||_swipeForMemberListCo===void 0||_swipeForMemberListCo.disallowGesture.set(false);}"
};
__initData4 = {
code: "function SearchTabsTransitionGroupTsx4(){const{state}=this.__closure;return state.scrollOffset.get()>0;}"
};
__initData5 = {
code: "function SearchTabsTransitionGroupTsx5(isOffsetFromStart,prevIsOffsetFromStart){const{swipeForMemberListContext}=this.__closure;if(isOffsetFromStart!==prevIsOffsetFromStart){var _swipeForMemberListCo;(_swipeForMemberListCo=swipeForMemberListContext)===null||_swipeForMemberListCo===void 0||_swipeForMemberListCo.disallowGesture.set(isOffsetFromStart);}}"
};
export default function SearchTabsTransitionGroup(props) {
return <TransitionGroup items={[props.state]} getItemKey={getItemKey} renderItem={renderItem} />;
};