Files
discord-decomp/modules/user_profile/native/UserProfileApplicationWidgetFieldUtils.tsx
T
2026-11-01 12:12:55 +02:00

56 lines
1.7 KiB
TypeScript

// Metro module 12157 (f12158).
import { Image as Image2, View } from "react-native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { intl, t } from "../../../intl/index.native";
import { TextSkeleton } from "./UserProfileApplicationWidgetSkeletons";
import { Text } from "../../../design/components/Text/native/Text";
const useStyles = createStyles({
fieldTextRow: {
flexDirection: "row",
alignItems: "center",
gap: Module712.space.PX_4
},
fieldIcon: {
width: 16,
height: 16
}
});
export function formatDurationNarrow(a0) {
const r9 = Number.isFinite(a0) ? Math.max(0, Math.floor(a0)) : 0;
const hours = Math.floor(r9 / 3600000);
const minutes = Math.floor(r9 / 60000) % 60;
const seconds = Math.floor(r9 / 1000) % 60;
const r33 = [];
if (hours > 0) {
r33.push(intl.formatToPlainString(t.rhY1Rs, {
hours
}));
}
if (0 < minutes) {
r33.push(intl.formatToPlainString(t["XIGt+W"], {
minutes
}));
}
let r63 = seconds > 0;
if (!(0 < seconds)) {
r63 = r33.length === 0;
}
if (r63) {
r33.push(intl.formatToPlainString(t.pyvjRp, {
seconds
}));
}
return r33.join(" ");
}
export function FieldText(props) {
const { field, variant, color, skeletonWidthChars } = props;
const styles = useStyles();
return field.status !== "hidden" ? field.status === "skeleton" ? <TextSkeleton variant={variant} widthChars={skeletonWidthChars} /> : <View style={styles.fieldTextRow}>
<Text variant={variant} color={color} lineClamp={2}>{field.text}</Text>
{field.icon != null && <Image2 source={{
uri: field.icon.url
}} style={styles.fieldIcon} resizeMode="contain" />}
</View> : null;
}