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

65 lines
2.6 KiB
TypeScript

// Metro module 12236 (f12237).
import * as Module19 from "react";
import { useState, useMemo, useEffect } from "react";
import { ScrollView, View } from "react-native";
import { SHARE_ITEMS, SHARE_ITEMS_DEFAULT } from "./InstantInviteConstants";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { useFontScale } from "../../../screen/native/useFontScale";
import { Gesture, GestureDetector } from "../../../../_bundle/Module5273";
import { ImageButton } from "../../../../design/components/Button/native/ImageButton.native";
import { IconButton } from "../../../../design/components/Button/native/IconButton.native";
import Module12238 from "../../../../_bundle/Module12238";
const useStyles = createStyles({
contentContainer: {
padding: Module712.space.PX_16,
gap: Module712.space.PX_12,
alignItems: "center"
}
});
const r44 = Module19.memo(function InstantInviteShareApps(props) {
const { onItemPressed, contentContainerStyle } = props;
const styles = useStyles();
const fontScale = useFontScale();
const [state, setState] = useState(SHARE_ITEMS_DEFAULT);
const memo = useMemo(() => Gesture.Native().disallowInterruption(true), []);
useEffect(() => {
Promise.all(SHARE_ITEMS.map((item) => item.isAvailable)).then((result) => {
const r2 = [];
let c30514_0 = r2;
result.forEach((item, index) => {
if (item) {
c30514_0.push(SHARE_ITEMS[index]);
}
});
setState(r2);
});
}, []);
return <GestureDetector gesture={memo}>
<ScrollView contentContainerStyle={[styles.contentContainer, contentContainerStyle]} showsHorizontalScrollIndicator={false} horizontal>
{state.map((item) => {
let r29;
const { fullIcon, getLabel } = item;
let icon = item.icon;
let IconComponent = item.IconComponent;
const { onPress: onPress2, type } = item;
if (fullIcon != null) {
r29 = <ImageButton image={fullIcon} label={getLabel()} onPress={() => onItemPressed(onPress2)} maxFontSizeMultiplier={2} />;
} else {
if (IconComponent == null) {
if (icon == null) {
icon = Module12238;
}
IconComponent = icon;
}
r29 = <IconButton variant="secondary" icon={IconComponent} label={getLabel()} onPress={() => onItemPressed(onPress2)} maxFontSizeMultiplier={2} />;
}
return <View key={type} style={{
maxWidth: 76 * fontScale
}}>{r29}</View>;
})}
</ScrollView>
</GestureDetector>;
});
export default r44;