149 lines
5.1 KiB
TypeScript
149 lines
5.1 KiB
TypeScript
// Module ID: 11704
|
|
// Function ID: 11705
|
|
// Name: Spoiler
|
|
// Dependencies: [19, 17, 1085, 11697, 21, 4890, 1369, 587, 4589, 1188, 2]
|
|
|
|
// Module 11704 (Spoiler)
|
|
import Fragment from "Fragment" /* 21 */;
|
|
import nativeDefault from "native" /* 587 */;
|
|
import Constants from "Constants" /* 1085 */;
|
|
import native from "native" /* 4589 */;
|
|
import RedesignChannelListConstants from "RedesignChannelListConstants" /* 11697 */;
|
|
import react from "react" /* 19 */;
|
|
import react_native from "react-native" /* 17 */;
|
|
import createStyles from "createStyles" /* 4890 */;
|
|
import PlatformUtils from "PlatformUtils" /* 1369 */;
|
|
import size_mod from "module_2" /* 2 */;
|
|
|
|
const require = globalThis.__r;
|
|
let _require;
|
|
|
|
let c3;
|
|
let closure_4;
|
|
let obj2;
|
|
let size;
|
|
({ View: c3, StyleSheet: closure_4 } = react_native);
|
|
const EMOJI_CHAT_SIZE = Constants.EMOJI_CHAT_SIZE;
|
|
const MUTED_OPACITY_CONTENT = RedesignChannelListConstants.MUTED_OPACITY_CONTENT;
|
|
const jsx = Fragment.jsx;
|
|
const createLegacyClassComponentStyles = createStyles.createLegacyClassComponentStyles;
|
|
let str = "transparent";
|
|
if (PlatformUtils.isAndroid()) {
|
|
str = "rgba(0,0,0,0.0019607844)";
|
|
}
|
|
let obj = { spoiler: obj2, placeholder: size, spoilerRevealed: { color: nativeDefault.colors.TEXT_DEFAULT, backgroundColor: nativeDefault.colors.SPOILER_REVEALED_BACKGROUND }, muted: { opacity: MUTED_OPACITY_CONTENT } };
|
|
obj2 = { color: str, backgroundColor: nativeDefault.colors.SPOILER_HIDDEN_BACKGROUND };
|
|
size = { width: EMOJI_CHAT_SIZE, height: EMOJI_CHAT_SIZE, backgroundColor: nativeDefault.colors.SPOILER_HIDDEN_BACKGROUND };
|
|
({ color: nativeDefault.colors.TEXT_DEFAULT, backgroundColor: nativeDefault.colors.SPOILER_REVEALED_BACKGROUND });
|
|
const metroRequire = createLegacyClassComponentStyles(obj);
|
|
const PureComponent = react.PureComponent;
|
|
class Spoiler extends PureComponent {
|
|
constructor() {
|
|
const applyArgumentsResult = HermesBuiltin.applyArguments(this, new.target);
|
|
applyArgumentsResult.state = { revealed: false };
|
|
applyArgumentsResult.handleTap = function handleTap() {
|
|
const tmp = applyArgumentsResult.state.revealed || applyArgumentsResult.props.disableReveal;
|
|
if (!tmp) {
|
|
const obj2 = { revealed: !applyArgumentsResult.state.revealed };
|
|
applyArgumentsResult.setState(obj2);
|
|
}
|
|
};
|
|
return applyArgumentsResult;
|
|
}
|
|
render() {
|
|
let handleTap;
|
|
let items1;
|
|
let placeholder;
|
|
let tmp2;
|
|
const self = this;
|
|
let tmp = closure_6(this.context);
|
|
_require = tmp;
|
|
const revealed = this.state.revealed;
|
|
const children = this.props.children;
|
|
if (revealed) {
|
|
let items = [tmp.spoilerRevealed, tmp3];
|
|
items1 = items;
|
|
} else {
|
|
items1 = [tmp.spoiler, tmp2];
|
|
}
|
|
let Children = react.Children;
|
|
const tmp4 = react;
|
|
if (0 === Children.count(children)) {
|
|
return null;
|
|
} else {
|
|
const Children1 = tmp4.Children;
|
|
let tmp9 = _require;
|
|
let mapped = Children1.map(children, (type) => {
|
|
let validElement;
|
|
const f108794 = (props) => {
|
|
let Children;
|
|
let cloneElement;
|
|
let items;
|
|
const tmp = validElement;
|
|
if (validElement.isValidElement(props)) {
|
|
const style = props.props.style;
|
|
const _Array = Array;
|
|
let flattenResult = style;
|
|
if (Array.isArray(style)) {
|
|
flattenResult = closure_2_4.flatten(style);
|
|
}
|
|
const obj = { children: Children.map(props.props.children, f108794), style: items, onPress: "Array" };
|
|
({ Children, cloneElement } = tmp);
|
|
items = [flattenResult, spoiler.spoiler];
|
|
return cloneElement(props, obj);
|
|
} else {
|
|
return props;
|
|
}
|
|
};
|
|
let tmp = react;
|
|
let tmp2 = type;
|
|
if (react.isValidElement(type)) {
|
|
if ("Image" === type.type.displayName) {
|
|
let tmp9;
|
|
const tmp5 = revealed;
|
|
if (!tmp5) {
|
|
tmp9 = <_false style={placeholder.placeholder} />;
|
|
}
|
|
tmp2 = tmp9;
|
|
} else {
|
|
const props = type.props;
|
|
let source;
|
|
if (props != null) {
|
|
source = props.source;
|
|
}
|
|
}
|
|
let mapped = type;
|
|
if (null != type.props) {
|
|
mapped = type;
|
|
if (!revealed) {
|
|
const Children = tmp.Children;
|
|
mapped = Children.map(type, f108794);
|
|
}
|
|
}
|
|
tmp9 = mapped;
|
|
}
|
|
return tmp2;
|
|
});
|
|
const items2 = [items1, ];
|
|
let muted = self.props.muted;
|
|
const LegacyText = require("native").LegacyText;
|
|
const tmp8 = jsx;
|
|
if (muted) {
|
|
muted = tmp.muted;
|
|
}
|
|
let obj = { accessibilityRole: "button", style: items2, onPress: handleTap, children: mapped };
|
|
items2[1] = muted;
|
|
handleTap = undefined;
|
|
if (!self.props.disableReveal) {
|
|
handleTap = self.handleTap;
|
|
}
|
|
return tmp8(LegacyText, obj);
|
|
}
|
|
}
|
|
}
|
|
const prototype = Spoiler.prototype;
|
|
Spoiler.contextType = native.ThemeContext;
|
|
size = size_mod;
|
|
const result = size.fileFinishedImporting("modules/markup/native/Spoiler.tsx");
|
|
|
|
export default Spoiler;
|