// Metro module 8380 (f8381). import * as Module19 from "react"; import { useMemo } from "react"; import { PixelRatio, StyleSheet, View, processColor } from "react-native"; import { MIN_PRISM_GRADIENT_WIDTH } from "../DisplayNameStylesConstants"; import { DisplayNameEffect } from "../../../_bundle/Module1887"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { isIOS } from "../../../_bundle/Module501"; import { isIosFabric } from "../../../utils/native/FabricUtils"; import { EffectDisplayType } from "../types"; import useDisplayNameStyles from "../hooks/useDisplayNameStyles"; import { useIsDisplayNameStylesFlywheelViewersEnabled } from "../DisplayNameStylesFlywheelExperiment"; import { applyFlywheelViewingFallback, generateColorVariants } from "../DisplayNameStylesUtils"; import { useDisplayNameStylesEnabled } from "../hooks/useDisplayNameStylesEnabled"; import { useDisplayNameStylesFont } from "./useDisplayNameStylesFont"; import { useToken } from "../../../design/tokens/native/useToken"; import { useDisplayNameStylesAccessibleColors } from "../hooks/useDisplayNameStylesAccessibleColors"; import { TextStyleSheet, Text } from "../../../design/components/Text/native/Text"; import { useTypographyVariantRemap } from "../../../_bundle/Module4194"; import { getNodeText } from "../../../design/utils/shared/getNodeText"; import PerLetterEffect from "./effects/PerLetterEffect"; import { isNotNullish } from "../../../utils/GlobalUtils"; import { HermesBuiltin } from "../../../_hermes/prelude"; const r29 = {}; r29[DisplayNameEffect.NEON] = 1; r29[DisplayNameEffect.TOON] = 1.6; r29[DisplayNameEffect.POP] = 1.2; let c5373_11 = r29; const useStyles = createStyles((a0, a1) => { let r59; const r19 = PixelRatio.get(); const r4 = 0.04 * a1; const textShadowRadius = 4 + 0.12 * a1; const r16 = c5373_11[DisplayNameEffect.NEON] + 0.04 * a1; const r9 = c5373_11[DisplayNameEffect.TOON] + 0.04 * a1; const r40 = c5373_11[DisplayNameEffect.POP] + 0.04 * a1; const r47 = Math.floor(r9 / 2) / r19; const neon = { color: Module712.colors.WHITE, textShadowColor: a0, textShadowRadius, textShadowOffset: { width: 0, height: 0 } }; if (isIOS()) { const top = -r16 / 2; const marginVertical = -textShadowRadius; r59 = { top, left: top, padding: textShadowRadius, marginVertical, marginLeft: marginVertical, marginRight: marginVertical - r16 }; } else { r59 = { left: -r16, paddingRight: textShadowRadius, marginRight: -textShadowRadius - r16 }; } HermesBuiltin.copyDataProperties(neon, r59); return { neon, popContainer: { position: "relative", top: isIOS() ? -r40 / 2 : 0, left: isIOS() ? -r40 / 2 : 0, marginRight: isIOS() ? -r40 : 0 }, popBackLayer: { color: a0, position: "absolute", ...isIosFabric() ? { top: 1.2 + r4 } : { transform: [{ translateY: 1.2 + r4 }] } }, popFrontLayer: { color: Module712.colors.WHITE }, toon: { color: Module712.colors.WHITE, top: isIOS() ? -r9 / 2 : 0, left: isIOS() ? -r9 / 2 : -r47, marginRight: isIOS() ? -r9 : -r47 } }; }); const r51 = Module19.memo(function({ userId, guildId, userName, effectDisplayType = EffectDisplayType.STATIC, pendingDisplayNameStyles, defaultColor, ignoreDisabledStylesSetting = false, ...props }) { let r164, gradientAngle, gradientColors, gradientLength, textStrokeColor, textStrokeWidth2; const styles = useDisplayNameStyles({ userId, guildId, pendingDisplayNameStyles, ignoreDisabledStylesSetting }); const displayNameStyles = applyFlywheelViewingFallback(styles, useIsDisplayNameStylesFlywheelViewersEnabled("UsernameWithEffects")); const displayNameStylesEnabled = useDisplayNameStylesEnabled({ location: "UsernameWithEffects" }); const displayNameStylesFont = useDisplayNameStylesFont({ displayNameStyles, ignoreDisabledStylesSetting }); const token = useToken(Module712.colors.BACKGROUND_BASE_LOW); const token2 = useToken(Module712.colors.WHITE); const displayNameStylesAccessibleColors = useDisplayNameStylesAccessibleColors({ displayNameStyles, backgroundColor: token }); const color = displayNameStylesAccessibleColors.length > 0 ? displayNameStylesAccessibleColors[0] : void 0; let r85 = displayNameStyles?.effectId; if (r85 == null) { r85 = DisplayNameEffect.SOLID; } const r27 = color != null ? generateColorVariants(color) : null; const r100 = TextStyleSheet[useTypographyVariantRemap(props.variant, false)]; const r104 = StyleSheet.flatten(props.style); let r106 = r104?.fontSize; if (r106 == null) { r106 = r100?.fontSize; } if (r106 == null) { r106 = 16; } let c16548_1 = r106; let r29 = r104?.lineHeight; if (r29 == null) { r29 = r100?.lineHeight; } if (r29 == null) { r29 = 1.25 * r106; } const memo = useMemo(() => { let r13 = getNodeText(userName)?.length; if (r13 == null) { r13 = 10; } return r13 * c16548_1 * 0.6; }, [userName, r106]); const r118 = c5373_11[r85]; const textStrokeWidth = r118 != null ? r118 + 0.04 * r106 : void 0; let r125 = r27?.main; if (r125 == null) { r125 = ""; } const styles2 = useStyles(r125, r106); if (!(!displayNameStylesEnabled && !ignoreDisabledStylesSetting) && styles != null) { if (effectDisplayType !== EffectDisplayType.PLAIN && r27 != null) { const textStyle = [props.style, displayNameStylesFont != null && { fontFamily: displayNameStylesFont }]; if (r85 === DisplayNameEffect.GUMMY) { let name = getNodeText(userName); if (name == null) { name = ""; } return ; } L72: { if (DisplayNameEffect.GRADIENT !== r85 && DisplayNameEffect.PRISM !== r85) { if (DisplayNameEffect.NEON === r85) { const r220 = processColor(r27?.neonStroke); const r222 = r220 ?? void 0; const r224 = [textStyle, styles2.neon]; textStrokeColor = r222; gradientLength = memo; r164 = r224; textStrokeWidth2 = textStrokeWidth; gradientAngle = void 0; gradientColors = void 0; break L72; } if (DisplayNameEffect.POP === r85) { const r34 = processColor(r27?.dark2); const r33 = processColor(r27?.main); const r187 = r27 != null; gradientLength = memo; r164 = textStyle; textStrokeColor = void 0; textStrokeWidth2 = void 0; gradientAngle = void 0; gradientColors = void 0; if (!r187) { break L72; } return {userName} {userName} ; } if (DisplayNameEffect.TOON === r85) { const r28 = [textStyle, styles2.toon]; const r172 = [processColor(token2), processColor(r27.light2), processColor(r27.light1), processColor(r27.main)]; const r180 = processColor(r27.toonStroke); const r181 = r180 ?? void 0; gradientAngle = 90; textStrokeColor = r181; gradientLength = r29; r164 = r28; textStrokeWidth2 = textStrokeWidth; gradientColors = r172; break L72; } DisplayNameEffect.SOLID; r164 = [textStyle, { color }]; gradientLength = memo; textStrokeColor = void 0; textStrokeWidth2 = void 0; gradientAngle = void 0; gradientColors = void 0; } else { const r232 = displayNameStylesAccessibleColors.map((displayNameStylesAccessibleColor) => processColor(displayNameStylesAccessibleColor)).filter(isNotNullish); const r237 = r85 === DisplayNameEffect.PRISM ? 0 : 45; const PRISM = DisplayNameEffect.PRISM; gradientLength = memo; r164 = textStyle; textStrokeColor = void 0; textStrokeWidth2 = void 0; gradientAngle = r237; gradientColors = r232; if (r85 === PRISM) { const r243 = r232.length > 0 ? [...r232, r232[0]] : r232; gradientLength = Math.max(memo, MIN_PRISM_GRADIENT_WIDTH); gradientColors = r243; r164 = textStyle; textStrokeColor = void 0; textStrokeWidth2 = void 0; gradientAngle = r237; } } } return {userName}; } return {userName}; } return {userName}; }); export default r51; export const AVERAGE_FONT_WIDTH_RATIO = 0.6;