161 lines
6.0 KiB
TypeScript
161 lines
6.0 KiB
TypeScript
// Metro module 9634 (f9635).
|
|
import _slicedToArray from "../../../_bundle/_slicedToArray";
|
|
import { View } from "react-native";
|
|
import UserStore from "../../../stores/UserStore";
|
|
import { StickerAnimationSettings } from "../StickersConstants";
|
|
import { STICKER_SIZE, ROW_HEIGHT } from "./StickerPickerConstants";
|
|
import { PADDING_VERTICAL } from "../../expression_picker/ExpressionPickerConstants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import { isAndroid } from "../../../utils/PlatformUtils";
|
|
import { AnimateStickers } from "../../user_settings/UserSettings";
|
|
import { triggerHapticFeedback } from "../../haptics/HapticUtils.native";
|
|
import HapticFeedbackTypes from "../../haptics/HapticFeedbackTypes";
|
|
import { shouldAnimateSticker } from "../StickersUtils";
|
|
import { isSendableSticker } from "../StickerSendability";
|
|
import { StickerFormat } from "../StickersTypes";
|
|
import Sticker, { getStickerAssetUrl } from "./Sticker";
|
|
import Module9638 from "../../../_bundle/Module9638";
|
|
import SentryUtils_native from "../../../utils/SentryUtils.native";
|
|
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
|
|
const useStyles = createStyles({
|
|
row: {
|
|
height: ROW_HEIGHT,
|
|
flexDirection: "row",
|
|
alignItems: "center",
|
|
justifyContent: "space-between",
|
|
overflow: "hidden"
|
|
},
|
|
stickerImage: {
|
|
height: STICKER_SIZE,
|
|
width: STICKER_SIZE
|
|
}
|
|
});
|
|
export default function StickerPickerListRow(props) {
|
|
let r89;
|
|
let styles, setting, c17364_9, c17364_10;
|
|
const { containerWidth, stickers, rowSize, onPressSticker: onPressSticker2, onLongPressStickerDetail, focusedSticker, setFocusedSticker, channel, nativeRow = isAndroid() } = props;
|
|
styles = void 0;
|
|
setting = void 0;
|
|
c17364_9 = void 0;
|
|
c17364_10 = void 0;
|
|
const handleOnLongPressSticker2 = function handleOnLongPressSticker(a0) {
|
|
if (onLongPressStickerDetail != null) {
|
|
triggerHapticFeedback(HapticFeedbackTypes.IMPACT_LIGHT);
|
|
onLongPressStickerDetail(a0);
|
|
return void 0;
|
|
}
|
|
if (AnimateStickers.getSetting() === StickerAnimationSettings.ANIMATE_ON_INTERACTION) {
|
|
triggerHapticFeedback(HapticFeedbackTypes.IMPACT_LIGHT);
|
|
if (setFocusedSticker != null) {
|
|
setFocusedSticker(a0);
|
|
}
|
|
}
|
|
};
|
|
const rowTraits = function rowTraits(a0) {
|
|
return [shouldAnimateSticker(setting, a0.id === focusedSticker?.id), channel == null || isSendableSticker(a0, UserStore.getCurrentUser(), channel), onPressSticker2 == null];
|
|
};
|
|
styles = useStyles();
|
|
setting = AnimateStickers.useSetting();
|
|
const items = [];
|
|
if (nativeRow) {
|
|
const r53 = 0 < rowSize;
|
|
let r56 = 0;
|
|
if (r53) {
|
|
do {
|
|
const r25 = stickers[r56];
|
|
const r57 = r56;
|
|
if (r25 !== void 0) {
|
|
const [stickerAnimated, stickerOpaque, stickerDisabled] = rowTraits(r25);
|
|
items.push({
|
|
stickerId: r25.id,
|
|
stickerName: r25.name,
|
|
stickerType: r25.format_type,
|
|
stickerUrl: getStickerAssetUrl(r25, STICKER_SIZE, stickerAnimated),
|
|
stickerAnimated,
|
|
stickerDisabled,
|
|
stickerOpaque
|
|
});
|
|
} else {
|
|
items.push({
|
|
stickerId: null,
|
|
stickerName: "",
|
|
stickerType: StickerFormat.PNG,
|
|
stickerUrl: "",
|
|
stickerAnimated: false,
|
|
stickerDisabled: true,
|
|
stickerOpaque: false
|
|
});
|
|
}
|
|
r56 = r57 + 1;
|
|
} while (r56 < rowSize);
|
|
}
|
|
try {
|
|
r89 = <Module9638 style={styles.row} rowData={{
|
|
rowContentWidth: containerWidth,
|
|
rowContentPaddingVertical: PADDING_VERTICAL,
|
|
itemSize: STICKER_SIZE,
|
|
items
|
|
}} onPressSticker={(c26494_0) => {
|
|
const r10 = stickers.find((sticker) => sticker.id === c26494_0.nativeEvent.stickerId);
|
|
if (r10 != null) {
|
|
triggerHapticFeedback(HapticFeedbackTypes.IMPACT_LIGHT);
|
|
if (onPressSticker2 != null) {
|
|
onPressSticker2(r10);
|
|
}
|
|
}
|
|
}} onLongPressSticker={(c26495_0) => {
|
|
const r8 = stickers.find((sticker) => sticker.id === c26495_0.nativeEvent.stickerId);
|
|
if (r8 != null) {
|
|
handleOnLongPressSticker2(r8);
|
|
}
|
|
}} />;
|
|
} catch (r90) {
|
|
SentryUtils_native.addBreadcrumb({
|
|
message: "Error in StickerPickerListRowNativeComponent",
|
|
category: "sticker",
|
|
data: {
|
|
itemLength: items.length,
|
|
items: items.filter((item) => item.stickerId == null || item.stickerName == null || item.stickerUrl == null).map((item) => ({
|
|
stickerId: item.stickerId,
|
|
stickerName: item.stickerName,
|
|
stickerUrl: item.stickerUrl
|
|
}))
|
|
}
|
|
});
|
|
throw r90;
|
|
}
|
|
return r89;
|
|
}
|
|
c17364_9 = items;
|
|
const _loop = function _loop() {
|
|
const key = c17364_10;
|
|
const sticker = stickers[key];
|
|
let c26493_0 = sticker;
|
|
if (sticker === void 0) {
|
|
c17364_9.push(<View key={key} style={styles.stickerImage} />);
|
|
return 1;
|
|
}
|
|
const r34 = _slicedToArray([shouldAnimateSticker(setting, sticker.id === focusedSticker?.id), channel == null || isSendableSticker(sticker, UserStore.getCurrentUser(), channel), onPressSticker2 == null], 3);
|
|
c17364_9.push(<PressableOpacity key={sticker.id} accessibilityRole="button" accessibilityLabel={sticker.name} style={styles.stickerImage} disabled={r34[2]} onPress={() => {
|
|
triggerHapticFeedback(HapticFeedbackTypes.IMPACT_LIGHT);
|
|
if (onPressSticker2 != null) {
|
|
onPressSticker2(c26493_0);
|
|
}
|
|
}} onLongPress={() => handleOnLongPressSticker2(c26493_0)}>
|
|
<Sticker key={key} sticker={sticker} size={STICKER_SIZE} animated={r34[0]} opaque={r34[1]} />
|
|
</PressableOpacity>);
|
|
};
|
|
c17364_10 = 0;
|
|
const r14 = 0 < rowSize;
|
|
let r45 = 0;
|
|
if (r14) {
|
|
do {
|
|
_loop();
|
|
const r47 = r45 + 1;
|
|
c17364_10 = r47;
|
|
r45 = r47;
|
|
} while (r45 < rowSize);
|
|
}
|
|
return <View style={styles.row}>{items}</View>;
|
|
};
|