// Metro module 14364 (f14365). import { useMemo, useState, useCallback } from "react"; import { Pressable, View } from "react-native"; import { getColorPresetsForEffect } from "../DisplayNameStylesConstants"; import { AnalyticEvents } from "../../../Constants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { useDisplayNameStylesEffectConfig } from "../hooks/useDisplayNameStylesEffectConfigs"; import { getEffectColorCount } from "../DisplayNameStylesUtils"; import { triggerHapticFeedback, HapticFeedbackTypes } from "../../haptics/HapticUtils.native"; import AnalyticsUtils from "../../../utils/AnalyticsUtils"; import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators"; import showCustomColorPickerActionSheet from "../../color_picker/native/showCustomColorPickerActionSheet"; import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native"; import { BottomSheetTitleHeader } from "../../../design/components/Sheet/native/BottomSheetTitleHeader.native"; import { Button } from "../../../design/components/Button/native/Button.native"; import { intl, t } from "../../../intl/index.native"; import Module4611 from "../../../_bundle/Module4611"; import { int2hex } from "../../../_bundle/int2hslRaw"; import { EyeDropperIcon } from "../../../design/components/Icon/native/redesign/generated/EyeDropperIcon"; import Module12 from "../../../_bundle/Module12"; import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables"; const useStyles = createStyles({ body: { paddingVertical: Module712.space.PX_12, paddingHorizontal: Module712.space.PX_12, flexGrow: 1, justifyContent: "center", alignItems: "center", gap: Module712.space.PX_16 }, gradientContainer: { flexDirection: "row", justifyContent: "center", alignItems: "center", paddingHorizontal: Module712.space.PX_8 }, dropperContainer: { left: Module712.space.PX_24, right: Module712.space.PX_24, position: "absolute", flexDirection: "row", justifyContent: "space-between" }, dropper: { borderColor: "white", padding: Module712.space.PX_8, borderRadius: Module712.radii.round, borderWidth: 1 }, gradient: { height: 50, width: "100%", borderRadius: Module712.radii.sm }, optionContainer: { flexDirection: "row", flexWrap: "wrap", paddingHorizontal: Module712.space.PX_4 }, swatchWrapper: { width: "25%", padding: 2 }, pressable: { height: 40, borderRadius: Module712.radii.sm, overflow: "hidden", borderWidth: 2, borderColor: "transparent" }, selected: { borderColor: Module712.colors.BACKGROUND_BRAND }, option: { flex: 1 } }); export default function DisplayNameStylesColorPickerSheet(props) { let state, setState, callback, callback2; const { selectedColors, selectedEffectId, onSelectColors } = props; state = void 0; setState = void 0; callback = void 0; callback2 = void 0; const styles = useStyles(); const displayNameStylesEffectConfig = useDisplayNameStylesEffectConfig(selectedEffectId); const effectColorCount = getEffectColorCount(selectedEffectId); const memo = useMemo(() => getColorPresetsForEffect(selectedEffectId), [selectedEffectId]); [state, setState] = useState(selectedColors); const callback3 = useCallback(() => { triggerHapticFeedback(HapticFeedbackTypes.IMPACT_MEDIUM); onSelectColors(state); AnalyticsUtils.track(AnalyticEvents.DISPLAY_NAME_STYLES_COLOR_SELECTED, { default: false, colors: state }); ActionSheetActionCreators.hideActionSheet(); }, [state, onSelectColors]); const callback4 = useCallback(() => { let r8 = memo[0]; if (r8 == null) { r8 = displayNameStylesEffectConfig.defaultColors; } setState([...r8]); }, [memo, displayNameStylesEffectConfig.defaultColors]); callback = useCallback((a0) => { let color = state[a0]; if (color == null) { color = 0; } showCustomColorPickerActionSheet({ color, onSelect: (c30739_0) => { triggerHapticFeedback(HapticFeedbackTypes.IMPACT_MEDIUM); setState((prevState) => prevState.map((item, index) => index === a0 ? c30739_0 : item)); }, actionButtonVariant: "primary" }, "stack"); }, [state]); callback2 = useCallback((a0) => { setState([...a0]); }, []); return } />}> int2hex(item))} start={{ x: 0, y: 0 }} end={{ x: 1, y: 0 }} /> {Array.from({ length: effectColorCount }).map((item, index) => { return callback(index)} accessibilityLabel={intl.formatToPlainString(t.n5Ve0L, { number: index + 1 })} accessibilityRole="button"> ; })} {memo.map((a0, index) => { let r14 = Module12.isEqual(a0, state); const style = [styles.pressable, ,]; if (r14) { r14 = styles.selected; } style[1] = r14; return callback2(a0)}> int2hex(item))} start={{ x: 0, y: 0 }} end={{ x: 1, y: 0 }} /> ; })}