decord/source/design/components/ContextMenu/native/ContextMenuState.native.tsx

95 lines
4.8 KiB
TypeScript
Raw Normal View History

// Module ID: 8672
// Function ID: 8673
2026-07-20 16:05:17 +00:00
// Name: updateContextMenuState
// Dependencies: [19, 560, 1249, 4296, 4528, 2]
2026-07-29 08:29:29 +00:00
// Exports: hideContextMenu, resetContextMenuState, showContextMenu, updateContextMenuState, useActiveContextMenu, useContextMenuState
2026-07-20 16:05:17 +00:00
// Module 8672 (updateContextMenuState)
import batchUpdates from "batchUpdates" /* 1249 */;
import _mod4296 from "module_4296" /* 4296 */;
import HapticFeedbackTypes from "HapticFeedbackTypes" /* 4528 */;
2026-08-24 06:08:38 +00:00
import closure_2 from "noop" /* 19 */;
import keys from "keys" /* 560 */;
2026-07-23 10:11:24 +00:00
2026-08-24 06:08:38 +00:00
require = arg1;
2026-07-23 10:11:24 +00:00
keys = keys.create(() => ({ menu: null }));
function updateContextMenuState(absoluteX, absoluteY, closure_18) {
({ pan, itemMeasurements, activeIndex } = closure_18);
2026-07-29 08:29:29 +00:00
const result = pan.set(absoluteY);
const value = itemMeasurements.get();
let num = 0;
if (0 < value.length) {
while (true) {
let tmp3 = value[num + 1];
let tmp4 = value[num];
let tmp5 = num;
if (absoluteY >= tmp3) {
if (absoluteY <= tmp3 + value[num + 3]) {
if (absoluteX >= tmp4) {
if (absoluteX <= tmp4 + tmp2) {
break;
2026-07-20 16:05:17 +00:00
}
}
}
}
2026-07-29 08:29:29 +00:00
num = num + 4;
}
const result1 = num / 4;
if (activeIndex.get() !== result1) {
const result2 = activeIndex.set(result1);
const obj = _mod4296;
_mod4296.runOnJS(HapticFeedbackTypes.triggerHapticFeedback)(HapticFeedbackTypes.HapticFeedbackTypes.IMPACT_LIGHT);
const runOnJSResult = _mod4296.runOnJS(HapticFeedbackTypes.triggerHapticFeedback);
2026-07-20 16:05:17 +00:00
}
}
2026-07-29 08:29:29 +00:00
const result3 = activeIndex.set(-1);
}
keys = { INDEX_BOUNDS_WIDTH_OFFSET: 2, INDEX_BOUNDS_HEIGHT_OFFSET: 3, INDEX_BOUNDS_PAGE_Y_OFFSET: 1, INDEX_BOUNDS_PAGE_X_OFFSET: 0, INDEX_BOUNDS_OFFSET: 4, runOnJS: require("module_4296").runOnJS, triggerHapticFeedback: require("HapticFeedbackTypes").triggerHapticFeedback, HapticFeedbackTypes: require("HapticFeedbackTypes").HapticFeedbackTypes };
2026-07-29 08:29:29 +00:00
updateContextMenuState.__closure = keys;
updateContextMenuState.__workletHash = 10158111154044;
updateContextMenuState.__initData = { code: "function updateContextMenuState_ContextMenuStateNativeTsx1(absoluteX,absoluteY,state){const{INDEX_BOUNDS_WIDTH_OFFSET,INDEX_BOUNDS_HEIGHT_OFFSET,INDEX_BOUNDS_PAGE_Y_OFFSET,INDEX_BOUNDS_PAGE_X_OFFSET,INDEX_BOUNDS_OFFSET,runOnJS,triggerHapticFeedback,HapticFeedbackTypes}=this.__closure;const{pan:pan,itemMeasurements:itemMeasurements,activeIndex:activeIndex}=state;pan.set(absoluteY);const bounds=itemMeasurements.get();let offset=0;while(offset<bounds.length){const width=bounds[offset+INDEX_BOUNDS_WIDTH_OFFSET];const height=bounds[offset+INDEX_BOUNDS_HEIGHT_OFFSET];const pageY=bounds[offset+INDEX_BOUNDS_PAGE_Y_OFFSET];const pageX=bounds[offset+INDEX_BOUNDS_PAGE_X_OFFSET];const lowerY=pageY;const upperY=pageY+height;const lowerX=pageX;const upperX=pageX+width;if(absoluteY>=lowerY&&absoluteY<=upperY&&absoluteX>=lowerX&&absoluteX<=upperX){const index=offset/INDEX_BOUNDS_OFFSET;if(activeIndex.get()!==index){activeIndex.set(index);runOnJS(triggerHapticFeedback)(HapticFeedbackTypes.IMPACT_LIGHT);}return;}offset+=INDEX_BOUNDS_OFFSET;}activeIndex.set(-1);}" };
2026-08-24 06:08:38 +00:00
let result = require("set").fileFinishedImporting("design/components/ContextMenu/native/ContextMenuState.native.tsx");
2026-07-20 16:05:17 +00:00
export const INDEX_BOUNDS_OFFSET = 4;
export const INDEX_BOUNDS_PAGE_X_OFFSET = 0;
export const INDEX_BOUNDS_PAGE_Y_OFFSET = 1;
export const INDEX_BOUNDS_WIDTH_OFFSET = 2;
export const INDEX_BOUNDS_HEIGHT_OFFSET = 3;
2026-07-23 10:11:24 +00:00
export const ContextMenuStore = keys;
2026-07-20 16:05:17 +00:00
export const showContextMenu = function showContextMenu(arg0) {
2026-07-23 10:11:24 +00:00
const _require = arg0;
_require(1249).batchUpdates(() => closure_1_3.setState({ menu: closure_0 }));
2026-07-20 16:05:17 +00:00
};
export const hideContextMenu = function hideContextMenu() {
2026-08-24 06:08:38 +00:00
batchUpdates.batchUpdates(() => {
2026-07-29 08:29:29 +00:00
state.setState((menu) => {
let obj = menu;
2026-07-20 16:05:17 +00:00
if (null != menu.menu) {
2026-07-29 08:29:29 +00:00
obj = { menu: null };
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return obj;
2026-07-20 16:05:17 +00:00
});
});
};
export const useActiveContextMenu = function useActiveContextMenu() {
2026-07-23 10:11:24 +00:00
return keys((menu) => menu.menu);
2026-07-20 16:05:17 +00:00
};
2026-07-29 08:29:29 +00:00
export { updateContextMenuState };
2026-07-20 16:05:17 +00:00
export const useContextMenuState = function useContextMenuState() {
2026-07-23 10:11:24 +00:00
sharedValue = sharedValue(sharedValue1[3]).useSharedValue(-1);
const obj = sharedValue(sharedValue1[3]);
sharedValue1 = sharedValue(sharedValue1[3]).useSharedValue([]);
const obj2 = sharedValue(sharedValue1[3]);
const sharedValue2 = sharedValue(sharedValue1[3]).useSharedValue(-1);
2026-07-20 16:05:17 +00:00
const items = [sharedValue, sharedValue1, sharedValue2];
2026-07-23 10:11:24 +00:00
return sharedValue2.useMemo(() => ({ pan: sharedValue, itemMeasurements: sharedValue1, activeIndex: sharedValue2 }), items);
2026-07-20 16:05:17 +00:00
};
export const resetContextMenuState = function resetContextMenuState(contextMenuState) {
({ activeIndex, pan, itemMeasurements } = contextMenuState);
const result = activeIndex.set(-1);
const result1 = pan.set(-1);
if (itemMeasurements.get().length > 0) {
const result2 = itemMeasurements.set([]);
}
};