decord/source/modules/user_profile/native/UserProfileEditTheme.tsx
2026-07-24 07:16:23 +00:00

175 lines
7.9 KiB
TypeScript

// Module ID: 13641
// Function ID: 104764
// Name: ColorSwatch
// Dependencies: [31, 27, 33, 4130, 689, 665, 5507, 4660, 1212, 9142, 4126, 7974, 8280, 7903, 4276, 3946, 1334, 13618, 4098, 13642, 1934, 9007, 2]
// Exports: default
// Module 13641 (ColorSwatch)
import "result";
import { View } from "get ActivityIndicator";
import jsxProd from "jsxProd";
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
let closure_4;
let closure_5;
const require = arg1;
function ColorSwatch(color) {
let accessibilityLabel;
let label;
let onPress;
let style;
color = color.color;
({ label, accessibilityLabel, onPress, style } = color);
const tmp = _createForOfIteratorHelperLoose();
let obj = require(665) /* pad2 */;
const int2hexResult = obj.int2hex(color);
let obj1 = require(5507) /* getHigherContrastColor */;
const items = [WHITE, PRIMARY_530];
obj = { style: tmp.colorSwatchContainer };
const higherContrastColor = obj1.getHigherContrastColor({ backgroundColor: int2hexResult, colors: items });
obj = { accessibilityRole: "button", accessibilityLabel };
const intl = require(1212) /* getSystemLocale */.intl;
obj.accessibilityHint = intl.string(require(1212) /* getSystemLocale */.t.Qp04hK);
const items1 = [tmp.colorSwatch, { backgroundColor: int2hexResult }, style];
obj.style = items1;
obj.onPress = onPress;
obj1 = { size: "xs", color: higherContrastColor, style: tmp.dropperIcon };
obj.children = callback(require(9142) /* PencilIcon */.PencilIcon, obj1);
const items2 = [callback(require(4660) /* PressableBase */.PressableOpacity, obj, color), ];
const obj2 = { variant: "text-sm/normal", color: "text-default", accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", children: label };
items2[1] = callback(require(4126) /* Text */.Text, obj2);
obj.children = items2;
return callback2(View, obj);
}
({ jsx: closure_4, jsxs: closure_5 } = jsxProd);
_createForOfIteratorHelperLoose = { container: { gap: 6 }, sectionHeader: { display: "flex", flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, themeColorContainer: { flexDirection: "row", gap: 12, justifyContent: "center" }, colorSwatchContainer: { position: "relative", flex: 1, flexDirection: "column", alignItems: "center", gap: 4 } };
_createForOfIteratorHelperLoose = { height: 50, width: "100%", borderRadius: require("_createForOfIteratorHelperLoose").radii.sm };
_createForOfIteratorHelperLoose.colorSwatch = _createForOfIteratorHelperLoose;
_createForOfIteratorHelperLoose.dropperIcon = { position: "absolute", top: 10, right: 10 };
_createForOfIteratorHelperLoose.overflowMenu = { tintColor: require("_createForOfIteratorHelperLoose").colors.TEXT_SUBTLE };
_createForOfIteratorHelperLoose = _createForOfIteratorHelperLoose.createStyles(_createForOfIteratorHelperLoose);
const WHITE = require("_createForOfIteratorHelperLoose").unsafe_rawColors.WHITE;
const PRIMARY_530 = require("_createForOfIteratorHelperLoose").unsafe_rawColors.PRIMARY_530;
let obj1 = { tintColor: require("_createForOfIteratorHelperLoose").colors.TEXT_SUBTLE };
let result = require("jsxProd").fileFinishedImporting("modules/user_profile/native/UserProfileEditTheme.tsx");
export default function UserProfileEditTheme(isTryItOut) {
let guildId;
let pendingAvatarSrc;
let require;
let showResetMenu;
let user;
({ user, onProfileThemeColorsChanged: require, guildId, pendingAvatarSrc, showResetMenu } = isTryItOut);
if (showResetMenu === undefined) {
showResetMenu = false;
}
let flag = isTryItOut.isTryItOut;
if (flag === undefined) {
flag = false;
}
let importDefault;
let primaryColor;
let secondaryColor;
let callback;
function handleProfileThemeColorsChanged(items, arg1) {
let themeColors;
if (null != _undefined) {
themeColors = _undefined.themeColors;
}
let tmp5;
if (!tmp(items, themeColors)) {
tmp5 = items;
}
closure_0(tmp5);
}
function makeOnPress(primaryColor, arg1) {
let closure_0 = primaryColor;
let closure_1 = arg1;
return () => {
let obj = outer2_0(primaryColor[15]);
const result = obj.UNSAFE_markDismissibleContentAsDismissed(outer2_0(primaryColor[16]).DismissibleContent.PROFILE_THEMES_SETTINGS_VIEWED_V2);
obj = { color: closure_0, onSelect: closure_1, suggestedColors: outer1_4 };
callback(primaryColor[17])(obj);
};
}
const tmp = _createForOfIteratorHelperLoose();
const tmp2 = importDefault(primaryColor[11])(user.id, guildId);
importDefault = tmp2;
let obj = { user, displayProfile: tmp2, pendingThemeColors: isTryItOut.pendingThemeColors, isPreview: flag };
const tmp3 = importDefault(primaryColor[12])(obj);
primaryColor = tmp3.primaryColor;
secondaryColor = tmp3.secondaryColor;
if (null == pendingAvatarSrc) {
pendingAvatarSrc = user.getAvatarURL(guildId, 80);
}
let obj1 = require(primaryColor[13]);
callback = obj1.useAvatarColors(pendingAvatarSrc, importDefault(primaryColor[4]).unsafe_rawColors.PRIMARY_530, false);
if (null != primaryColor) {
if (null != secondaryColor) {
obj = { style: tmp.container };
obj = { style: tmp.sectionHeader };
obj1 = { variant: "text-sm/semibold", color: "text-subtle" };
const intl6 = require(primaryColor[8]).intl;
obj1.children = intl6.string(require(primaryColor[8]).t.DMeO2X);
let items = [callback(require(primaryColor[10]).Text, obj1), ];
if (showResetMenu) {
const obj2 = { accessibilityRole: "button" };
const intl = require(primaryColor[8]).intl;
obj2.accessibilityLabel = intl.string(require(primaryColor[8]).t["+1H47t"]);
obj2.onPress = function onPress() {
let obj = _undefined(primaryColor[18]);
obj = {
onResetTheme(arg0) {
outer1_5([null, null]);
}
};
obj.openLazy(outer1_0(primaryColor[20])(primaryColor[19], primaryColor.paths), "Profile Theme", obj);
};
const obj3 = { color: tmp.overflowMenu.tintColor };
obj2.children = callback(require(primaryColor[21]).MoreHorizontalIcon, obj3);
showResetMenu = callback(require(primaryColor[7]).PressableOpacity, obj2);
}
items[1] = showResetMenu;
obj.children = items;
const items1 = [handleProfileThemeColorsChanged(secondaryColor, obj), ];
const obj4 = { style: tmp.themeColorContainer };
const obj5 = {
onPress: makeOnPress(primaryColor, (arg0) => {
if (arg0 !== primaryColor) {
const items = [arg0, secondaryColor];
handleProfileThemeColorsChanged(items);
}
}),
color: primaryColor
};
const intl2 = require(primaryColor[8]).intl;
obj5.label = intl2.string(require(primaryColor[8]).t.C3KTQk);
const intl3 = require(primaryColor[8]).intl;
const obj6 = {};
let obj7 = require(primaryColor[5]);
obj6.colorHex = obj7.int2hex(primaryColor);
obj5.accessibilityLabel = intl3.formatToPlainString(require(primaryColor[8]).t.v4X2kc, obj6);
const items2 = [callback(ColorSwatch, obj5), ];
obj7 = {
color: secondaryColor,
onPress: makeOnPress(secondaryColor, (arg0) => {
if (arg0 !== secondaryColor) {
const items = [primaryColor, arg0];
handleProfileThemeColorsChanged(items);
}
})
};
const intl4 = require(primaryColor[8]).intl;
obj7.label = intl4.string(require(primaryColor[8]).t["8elvy6"]);
const intl5 = require(primaryColor[8]).intl;
const obj8 = { colorHex: require(primaryColor[5]).int2hex(secondaryColor) };
obj7.accessibilityLabel = intl5.formatToPlainString(require(primaryColor[8]).t.I0tmru, obj8);
items2[1] = callback(ColorSwatch, obj7);
obj4.children = items2;
items1[1] = handleProfileThemeColorsChanged(secondaryColor, obj4);
obj.children = items1;
return handleProfileThemeColorsChanged(secondaryColor, obj);
}
}
return null;
};