decord/source/design/components/Menu/native/MenuPopout.tsx

104 lines
3.3 KiB
TypeScript
Raw Normal View History

// Module ID: 14208
// Function ID: 14209
2026-07-20 16:05:17 +00:00
// Name: MenuPopout
// Dependencies: [32, 19, 21, 8739, 4341, 10720, 14205, 14206, 14207, 2]
2026-07-20 16:05:17 +00:00
// Exports: MenuPopout
// Module 14208 (MenuPopout)
import NativeMenuActionCreatorsDefault from "NativeMenuActionCreators" /* 10720 */;
import Menu from "Menu" /* 14205 */;
import _slicedToArray from "module_32" /* 32 */;
import noop from "module_19" /* 19 */;
2026-07-23 10:11:24 +00:00
require = fn;
const jsxProd = fn(21);
({ jsx: hasOwnProperty, Fragment: metroRequire } = jsxProd);
const size = fn(2);
const result = size.fileFinishedImporting("design/components/Menu/native/MenuPopout.tsx");
2026-07-20 16:05:17 +00:00
export const MenuPopout = function MenuPopout(onRequestOpen) {
({ key, menuItems } = onRequestOpen);
if (menuItems === undefined) {
menuItems = [];
}
onRequestOpen = onRequestOpen.onRequestOpen;
const onRequestClose = onRequestOpen.onRequestClose;
const position = onRequestOpen.position;
const align = onRequestOpen.align;
const offset = onRequestOpen.offset;
const offsetAnimated = onRequestOpen.offsetAnimated;
2026-07-29 08:29:29 +00:00
key = undefined;
2026-07-20 16:05:17 +00:00
let animatedRef;
let isShown;
2026-08-24 06:08:38 +00:00
closure_10 = undefined;
let onClose;
2026-07-20 16:05:17 +00:00
let memo;
let callback1;
2026-07-29 08:29:29 +00:00
if (key == null) {
key = obj.useUID();
2026-07-20 16:05:17 +00:00
}
obj = menuItems(onRequestClose[3]);
2026-07-23 10:11:24 +00:00
animatedRef = menuItems(onRequestClose[4]).useAnimatedRef();
2026-07-29 08:29:29 +00:00
const tmp4 = position(align.useState(false), 2);
isShown = tmp4[0];
2026-07-29 08:29:29 +00:00
closure_10 = tmp4[1];
const items = [key, onRequestClose];
2026-07-20 16:05:17 +00:00
const mapped = menuItems.map((label) => ({ name: label.label, label: label.label }));
onClose = align.useCallback(() => {
closure_10(false);
2026-07-29 08:29:29 +00:00
if (onRequestClose != null) {
2026-07-20 16:05:17 +00:00
onRequestClose();
}
NativeMenuActionCreatorsDefault.hideNativeMenu(key);
2026-07-20 16:05:17 +00:00
}, items);
const items1 = [animatedRef, onClose, menuItems, position, align, offset, offsetAnimated];
memo = align.useMemo(() => hasOwnProperty(Menu.Menu, {
2026-08-24 06:08:38 +00:00
toggleButtonRef: animatedRef,
onClose,
2026-08-24 06:08:38 +00:00
position,
align,
offset,
offsetAnimated,
children: menuItems.map((item, index) => {
const obj = { children: null };
const merged = Object.assign(item);
obj.children = offset(menuItems(14207).MenuItem, { showIconFirst: true });
return offset(menuItems(14206).MenuGroup, obj, "chat-context-menu-group-" + index);
2026-08-24 06:08:38 +00:00
})
}), items1);
2026-07-29 08:29:29 +00:00
const items2 = [memo, key, onRequestOpen];
2026-07-23 10:11:24 +00:00
callback1 = align.useCallback(() => {
closure_10(true);
2026-07-29 08:29:29 +00:00
if (onRequestOpen != null) {
2026-07-20 16:05:17 +00:00
onRequestOpen();
}
NativeMenuActionCreatorsDefault.showNativeMenu(key, memo);
2026-07-20 16:05:17 +00:00
}, items2);
const items3 = [isShown, onClose, callback1];
const obj2 = { children: null };
const tmpResult = menuItems(onRequestClose[4]);
obj2.children = onRequestOpen.children({
2026-07-20 16:05:17 +00:00
ref: animatedRef,
2026-07-23 10:11:24 +00:00
onPress: align.useCallback(() => {
2026-07-20 16:05:17 +00:00
if (first) {
callback();
} else {
callback1();
}
}, items3),
accessibilityState: { expanded: isShown },
2026-07-20 16:05:17 +00:00
accessibilityActions: mapped,
onAccessibilityAction(arg0) {
const nativeEvent = arg0;
2026-07-23 10:11:24 +00:00
const found = menuItems.find((label) => label.label === nativeEvent.nativeEvent.actionName);
2026-07-29 08:29:29 +00:00
if (found != null) {
const action = found.action;
if (action != null) {
action();
}
2026-07-20 16:05:17 +00:00
}
}
}, { isShown });
return offset(offsetAnimated, obj2);
2026-07-20 16:05:17 +00:00
};