Files
discord-decomp/modules/saved_messages/native/ForLaterCardActionButtons.tsx
T
2026-11-01 12:12:55 +02:00

63 lines
2.7 KiB
TypeScript

// Metro module 9944 (f9945).
import { useCallback } from "react";
import { View } from "react-native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import { addOrUpdateSavedMessage, removeSavedMessage } from "../SavedMessageHelpers.native";
import { intl, t } from "../../../intl/index.native";
import { ChatArrowRightIcon } from "../../../design/components/Icon/native/redesign/generated/ChatArrowRightIcon";
import { XSmallIcon } from "../../../design/components/Icon/native/redesign/generated/XSmallIcon";
import { PencilIcon } from "../../../design/components/Icon/native/redesign/generated/PencilIcon";
import { ContextMenu } from "../../../design/components/ContextMenu/native/ContextMenu.native";
import { IconButton } from "../../../design/components/Button/native/IconButton.native";
import Module8964 from "../../../_bundle/Module8964";
const useStyles = createStyles({
actionGroup: {
flexDirection: "row",
gap: 8
}
});
export default function ForLaterCardActionButtons(props) {
const { savedMessage, jumpToMessage } = props;
const styles = useStyles();
const callback = useCallback(() => ActionSheetActionCreators.openLazy(import("../message_reminders/native/MessageReminderDurationActionSheet"), "MessageReminderDurationActionSheet", {
createReminder: (a0) => addOrUpdateSavedMessage({
...savedMessage.saveData,
dueAt: a0
}),
removeReminder: () => removeSavedMessage({
channelId: savedMessage.saveData.channelId,
messageId: savedMessage.saveData.messageId,
displayToast: true,
isReminder: true
}),
channelId: savedMessage.saveData.channelId,
messageId: savedMessage.saveData.messageId
}), [savedMessage]);
const items = [{
label: intl.string(t["+TSRGD"]),
IconComponent: ChatArrowRightIcon,
action: () => jumpToMessage()
}, {
label: intl.string(savedMessage.saveData.dueAt != null ? t["a6gcZ/"] : t.SvXS1Z),
IconComponent: XSmallIcon,
action: () => removeSavedMessage(savedMessage.saveData),
variant: "destructive"
}];
if (savedMessage.saveData.dueAt != null) {
items.unshift({
label: intl.string(t.vrbqs1),
IconComponent: PencilIcon,
action: callback
});
}
return <View style={styles.actionGroup}>
<ContextMenu items={items} keyboardShouldPersistTaps="handled" triggerOnTap>
{(a0) => {
const { ref, ...rest } = a0;
return <IconButton ref={a0.ref} {...rest} variant="secondary" accessibilityLabel={intl.string(t.e1heBD)} size="sm" icon={Module8964} />;
}}
</ContextMenu>
</View>;
};