decord/alpha/source/components_native/common/IconLabelBlock.tsx
2026-10-13 12:43:34 +00:00

114 lines
4.1 KiB
TypeScript

// Module ID: 17618
// Function ID: 17619
// Name: IconLabelBlock
// Dependencies: [109, 19, 17, 21, 5092, 587, 4827, 1200, 5088, 9640, 6157, 4969, 2]
// Module 17618 (IconLabelBlock)
import react_native from "react-native" /* 17 */;
import nativeDefault from "native" /* 587 */;
import native from "native" /* 1200 */;
import native2 from "native" /* 4827 */;
import shared from "shared" /* 4969 */;
import Text_Text from "Text/Text" /* 5088 */;
import FastImageDefault from "FastImage" /* 6157 */;
import IconUploaderDefault from "IconUploader" /* 9640 */;
import _objectWithoutProperties from "_objectWithoutProperties" /* 109 */;
import react from "react" /* 19 */;
import Fragment from "Fragment" /* 21 */;
import createStyles from "createStyles" /* 5092 */;
import size from "module_2" /* 2 */;
let metroImportDefault;
let metroRequire;
let obj2;
let obj3;
let closure_3 = ["error"];
const View = react_native.View;
({ jsx: metroRequire, jsxs: metroImportDefault } = Fragment);
let obj = { wrapper: { alignItems: "center", paddingTop: 26, paddingBottom: 16 }, error: obj2, label: obj3, iconUploaderWrapper: { alignSelf: "stretch", alignItems: "center" }, text: { marginTop: 9 } };
obj2 = { fontSize: 12, textAlign: "center", alignSelf: "center", marginBottom: 10, color: nativeDefault.unsafe_rawColors.RED_400 };
const createLegacyClassComponentStyles = createStyles.createLegacyClassComponentStyles;
obj3 = { fontSize: 12, marginTop: 20, color: nativeDefault.colors.TEXT_SUBTLE };
const metroImportAll = createLegacyClassComponentStyles(obj);
const PureComponent = react.PureComponent;
class IconLabelBlock extends PureComponent {
renderLabel() {
let items;
const label = this.props.label;
let tmp3 = null;
if (null != label) {
const obj = { style: items, children: label };
items = [tmp.label, tmp2];
tmp3 = metroRequire(native.LegacyText, obj);
}
return tmp3;
}
renderText() {
let items;
const text = this.props.text;
let tmp4 = null;
if (null != text) {
const obj = { variant: "heading-md/medium", color: "text-default", style: items, accessibilityRole: tmp3, children: text };
items = [tmp.text, tmp2];
tmp4 = metroRequire(Text_Text.Text, obj);
}
return tmp4;
}
renderIcon() {
let darkSource;
let errorProps;
let iconProps;
let items;
let items1;
let source;
const tmp = closure_8(this.context);
({ iconProps, source, darkSource, errorProps } = this.props);
if (null != iconProps) {
const error = iconProps.error;
const obj2 = { style: tmp.iconUploaderWrapper, children: items };
const obj3 = {};
const tmp12 = _objectWithoutProperties(iconProps, closure_3);
const tmp18 = IconUploaderDefault;
const merged = Object.assign(tmp12);
items = [metroRequire(tmp18, obj3), ];
let tmp15Result = null;
const tmp13 = metroImportDefault;
const tmp14 = View;
const tmp15 = metroRequire;
if (null != error) {
const obj4 = { style: items1, children: error };
items1 = [tmp.error, tmp4];
const LegacyText = native.LegacyText;
const merged1 = Object.assign(errorProps);
tmp15Result = tmp15(LegacyText, obj4);
}
items[1] = tmp15Result;
return tmp13(tmp14, obj2);
} else {
const tmp5 = metroRequire;
const tmp8 = FastImageDefault;
if (null == source) {
const obj = shared;
if (obj.isThemeLight(this.context.theme)) {
darkSource = tmp2;
}
source = darkSource;
}
const obj5 = { source, style: tmp3, resizeMode: "contain" };
return tmp5(tmp8, obj5);
}
}
render() {
let items;
let items1;
const obj = { style: items, children: items1 };
items = [closure_8(this.context).wrapper, this.props.wrapperStyles];
items1 = [this.renderIcon(), this.props.children, this.renderLabel(), this.renderText()];
return metroImportDefault(View, obj);
}
}
const prototype = IconLabelBlock.prototype;
IconLabelBlock.contextType = native2.ThemeContext;
const result = size.fileFinishedImporting("components_native/common/IconLabelBlock.tsx");
export default IconLabelBlock;