80 lines
4.6 KiB
TypeScript
80 lines
4.6 KiB
TypeScript
// Metro module 11978 (f11979).
|
|
import { useCallback } from "react";
|
|
import { View } from "react-native";
|
|
import { PROFILE_CONTENT_WITHOUT_STATUS_TOP_PADDING, UserProfileThemeTypes } from "../../user_profile/native/Constants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import useDisplayProfile from "../../user_profile/hooks/useDisplayProfile";
|
|
import useBadges from "../../user_profile/hooks/useBadges";
|
|
import useProfileTheme from "../../user_profile/hooks/useProfileTheme";
|
|
import UserProfileSharedStyles from "../../user_profile/native/UserProfileSharedStyles";
|
|
import { useUserProfileColors } from "../../user_profile/hooks/native/useUserProfileColors";
|
|
import { dismissKeyboard } from "../../../utils/native/ChatInputUtils";
|
|
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
|
|
import { ThemeContextProvider } from "../../../_bundle/Module3901";
|
|
import UserProfileBanner from "../../user_profile/native/UserProfileBanner";
|
|
import UserProfileAvatar from "../../user_profile/native/UserProfileAvatar";
|
|
import UserProfileGradientContainer from "../../user_profile/native/UserProfileGradientContainer";
|
|
import UserProfileCustomStatusBubble from "../../user_profile/native/UserProfileCustomStatusBubble";
|
|
import UserProfilePrimaryInfo from "../../user_profile/native/UserProfilePrimaryInfo";
|
|
import ProfileEffect from "../../collectibles/profile_effects/native/ProfileEffect";
|
|
const useStyles = createStyles((a0) => ({
|
|
profileContainer: {
|
|
flex: 1,
|
|
position: "relative",
|
|
overflow: "hidden",
|
|
width: 323,
|
|
maxHeight: 301,
|
|
borderWidth: a0 ? void 0 : 1,
|
|
borderColor: a0 ? Module712.colors.BORDER_MUTED : Module712.colors.BACKGROUND_SURFACE_HIGH,
|
|
borderRadius: Module712.radii.lg,
|
|
...Module712.shadows.SHADOW_HIGH
|
|
},
|
|
profileEffect: {
|
|
zIndex: 1
|
|
}
|
|
}));
|
|
export default function CustomStatusPreview(props) {
|
|
const { user, pendingStatusText, pendingStatusEmoji, placeholderText } = props;
|
|
const displayProfile = useDisplayProfile(user.id);
|
|
const badges = useBadges(displayProfile);
|
|
const profileTheme = useProfileTheme({
|
|
user,
|
|
displayProfile
|
|
});
|
|
const { theme, primaryColor, secondaryColor } = profileTheme;
|
|
const hasCustomProfileTheme = primaryColor != null;
|
|
const styles = useStyles(hasCustomProfileTheme);
|
|
const styles2 = UserProfileSharedStyles();
|
|
const userProfileColors = useUserProfileColors({
|
|
theme,
|
|
primaryColor,
|
|
secondaryColor
|
|
});
|
|
const { gradientFallbackBackground, avatarBackground, containerBackground } = userProfileColors;
|
|
const callback = useCallback(() => {
|
|
dismissKeyboard();
|
|
ActionSheetActionCreators.openLazy(import("../../user_profile/native/UserProfileCustomStatusActionSheet"), "UserProfileCustomStatusActionSheet", {
|
|
user,
|
|
previewText: pendingStatusText,
|
|
previewEmoji: pendingStatusEmoji
|
|
}, "stack");
|
|
}, [user, pendingStatusText, pendingStatusEmoji]);
|
|
const r64 = [<UserProfileBanner user={user} displayProfile={displayProfile} bannerHeight={132} disableInteraction />, , ,];
|
|
const r68 = [<UserProfileAvatar user={user} backgroundColor={avatarBackground} disableStatus />, ,];
|
|
const containerStyle = [styles2.profileContentWrapper, styles2.profileContent, ,];
|
|
const r1 = pendingStatusText !== "" || pendingStatusEmoji !== null || placeholderText !== "";
|
|
containerStyle[2] = r1 ? !r1 : {
|
|
paddingTop: PROFILE_CONTENT_WITHOUT_STATUS_TOP_PADDING
|
|
};
|
|
r68[1] = <UserProfileGradientContainer fallbackBackground={gradientFallbackBackground} primaryColor={primaryColor} secondaryColor={primaryColor} containerStyle={containerStyle}>
|
|
<UserProfileCustomStatusBubble hasCustomProfileTheme={hasCustomProfileTheme} style={styles2.customStatusBubble} emojiOnlyStyle={styles2.emojiOnlyCustomStatusBubble} onPressTruncatedStatus={callback} previewEmoji={pendingStatusEmoji} previewText={pendingStatusText} placeholderText={placeholderText} />
|
|
<UserProfilePrimaryInfo user={user} themeType={UserProfileThemeTypes.PREVIEW} pronouns={displayProfile?.pronouns} badges={badges} badgeContainerBackground={containerBackground} showBadgeToastOnPress={false} />
|
|
</UserProfileGradientContainer>;
|
|
r64[1] = <View>{r68}</View>;
|
|
r64[2] = displayProfile?.profileEffect != null && <ProfileEffect skuId={displayProfile == null ? void 0 : displayProfile.profileEffect.skuId} style={styles.profileEffect} />;
|
|
return <ThemeContextProvider theme={theme} primaryColor={primaryColor} secondaryColor={secondaryColor}>
|
|
<View style={[styles.profileContainer]}>{r64}</View>
|
|
</ThemeContextProvider>;
|
|
};
|