58 lines
2.4 KiB
TypeScript
58 lines
2.4 KiB
TypeScript
// Metro module 9409 (f9410).
|
|
import { View } from "react-native";
|
|
import { AnalyticEvents } from "../../../../Constants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import { isAndroid } from "../../../../utils/PlatformUtils";
|
|
import { v4 } from "../../../../_bundle/Module514";
|
|
import { BottomSheet } from "../../../../design/components/Sheet/native/BottomSheet.native";
|
|
import AnalyticsUtils from "../../../../utils/AnalyticsUtils";
|
|
import StandardEmojiContent from "./StandardEmojiContent";
|
|
import { useEmojiAndSource } from "../../../emojis/hooks/useEmojiAndSource";
|
|
import CustomEmojiContent from "./CustomEmojiContent";
|
|
let useStyles, MessageCustomEmojiActionSheet;
|
|
const MessageStandardEmojiActionSheet = function MessageStandardEmojiActionSheet(props) {
|
|
const emojiNode = props.emojiNode;
|
|
const styles = useStyles();
|
|
const nonce = v4();
|
|
return <BottomSheet startExpanded onDismiss={() => {
|
|
AnalyticsUtils.track(AnalyticEvents.CLOSE_POPOUT, {
|
|
nonce
|
|
});
|
|
}}>
|
|
<View style={styles.contentWrapper}>
|
|
<StandardEmojiContent emojiNode={emojiNode} nonce={nonce} />
|
|
</View>
|
|
</BottomSheet>;
|
|
};
|
|
MessageCustomEmojiActionSheet = function MessageCustomEmojiActionSheet(props) {
|
|
const emojiNode = props.emojiNode;
|
|
const styles = useStyles();
|
|
const emojiAndSource = useEmojiAndSource({
|
|
emojiId: emojiNode.id
|
|
});
|
|
const { sourceType, expressionSourceGuild, expressionSourceApplication, hasJoinedEmojiSourceGuild, emoji } = emojiAndSource;
|
|
if (emojiAndSource.isFetching) {
|
|
return null;
|
|
}
|
|
const nonce2 = v4();
|
|
return <BottomSheet startExpanded onDismiss={() => {
|
|
AnalyticsUtils.track(AnalyticEvents.CLOSE_POPOUT, {
|
|
nonce: nonce2
|
|
});
|
|
}}>
|
|
<View style={styles.contentWrapper}>
|
|
<CustomEmojiContent emojiNode={emojiNode} sourceType={sourceType} expressionSourceApplication={expressionSourceApplication} expressionSourceGuild={expressionSourceGuild} customEmojiFromJoinedGuild={emoji} hasJoinedEmojiSourceGuild={hasJoinedEmojiSourceGuild} nonce={nonce2} />
|
|
</View>
|
|
</BottomSheet>;
|
|
};
|
|
useStyles = createStyles({
|
|
contentWrapper: {
|
|
paddingHorizontal: 16,
|
|
paddingBottom: isAndroid() ? 16 : 0
|
|
}
|
|
});
|
|
export default function MessageEmojiActionSheet(props) {
|
|
const emojiNode = props.emojiNode;
|
|
return "surrogate" in emojiNode ? <MessageStandardEmojiActionSheet emojiNode={emojiNode} /> : <MessageCustomEmojiActionSheet emojiNode={emojiNode} />;
|
|
};
|