58 lines
3.4 KiB
TypeScript
58 lines
3.4 KiB
TypeScript
// Metro module 9674 (f9675).
|
|
import { useMemo, useCallback } from "react";
|
|
import { MediaPickerActionSheetEngagedActions } from "../MediaKeyboardConstants";
|
|
import { AnalyticEvents } from "../../../../Constants";
|
|
import { useSharedValue } from "../../../reanimated/ReanimatedRexport";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import { PollsIcon } from "../../../../design/components/Icon/native/redesign/generated/PollsIcon";
|
|
import { AttachmentIcon } from "../../../../design/components/Icon/native/redesign/generated/AttachmentIcon";
|
|
import MediaKeyboardBottomSheetHeaderSimple from "./MediaKeyboardBottomSheetHeaderSimple";
|
|
import { triggerHapticFeedback } from "../../../haptics/HapticUtils.native";
|
|
import HapticFeedbackTypes from "../../../haptics/HapticFeedbackTypes";
|
|
import AnalyticsUtils from "../../../../utils/AnalyticsUtils";
|
|
import useMountEffect from "../../../../hooks/useMountEffect";
|
|
import MediaKeyboardBottomSheetActions from "./MediaKeyboardBottomSheetActions";
|
|
import { ImageIcon } from "../../../../design/components/Icon/native/redesign/generated/ImageIcon";
|
|
import { BottomSheet } from "../../../../design/components/Sheet/native/BottomSheet.native";
|
|
import { isMetaQuest } from "../../../device/MetaQuestUtils.android";
|
|
import MediaKeyboardList from "./MediaKeyboardList";
|
|
export default function MediaKeyboardActionSheet(props) {
|
|
let callback;
|
|
const { channel, draftType, uploadLimit, disableWhenReachedLimit, includedUploadIds, extensions, allowCamera, onPressCamera, onAttachPress, onPressItem, onLongPressItem, onViewAll, onManageLimited, onClose, onBack } = props;
|
|
callback = void 0;
|
|
const sharedValue = useSharedValue(-1);
|
|
const memo = useMemo(() => [{
|
|
text: intl.string(t.RgIi2B),
|
|
IconComponent: PollsIcon,
|
|
onPress: () => {},
|
|
disabled: true
|
|
}, {
|
|
text: intl.string(t["8Hvr3+"]),
|
|
IconComponent: AttachmentIcon,
|
|
onPress: onAttachPress,
|
|
disabled: false
|
|
}], [onAttachPress]);
|
|
const callback2 = useCallback(() => <MediaKeyboardBottomSheetHeaderSimple animatedIndex={sharedValue} onPress={onBack} />, [sharedValue, onBack]);
|
|
const callback3 = useCallback(() => {
|
|
triggerHapticFeedback(HapticFeedbackTypes.IMPACT_LIGHT);
|
|
AnalyticsUtils.track(AnalyticEvents.MEDIA_PICKER_ACTION_SHEET_ENGAGED, {
|
|
action: MediaPickerActionSheetEngagedActions.FULLY_EXPANDED
|
|
});
|
|
}, []);
|
|
callback = useCallback(() => {
|
|
if (onClose != null) {
|
|
onClose();
|
|
}
|
|
}, [onClose]);
|
|
useMountEffect(() => () => callback == null ? void 0 : callback());
|
|
const memo2 = useMemo(() => <MediaKeyboardBottomSheetActions canPostPolls={false} onHeightChange={() => {}} uploadDisabled={false} overflowButtons={[{
|
|
text: intl.string(t.Zmm6dN),
|
|
IconComponent: ImageIcon,
|
|
onPress: onViewAll,
|
|
disabled: false
|
|
}, ...memo]} />, [onViewAll, memo]);
|
|
return <BottomSheet handleComponent={callback2} scrollable startExpanded={isMetaQuest()} onExpand={callback3} onDismiss={callback} animatedIndex={sharedValue} footer={memo2}>
|
|
<MediaKeyboardList channel={channel} draftType={draftType} onPressCamera={onPressCamera} onAttachPress={onAttachPress} onPressItem={onPressItem} onLongPressItem={onLongPressItem} onViewAll={onViewAll} onManageLimited={onManageLimited} includedUploadIds={includedUploadIds} extensions={extensions} allowCamera={allowCamera} uploadLimit={uploadLimit} disableWhenReachedLimit={disableWhenReachedLimit} />
|
|
</BottomSheet>;
|
|
};
|