From 64bf13f2507ceb578ab7fa71821d224c6946aab9 Mon Sep 17 00:00:00 2001 From: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com> Date: Tue, 12 Nov 2024 10:53:20 +0530 Subject: [PATCH] MM-60141 - Scheduled post copy text option (#29123) * verified available actions on scheduled posts * Review fixes * Added copy text option for scheudled posts * Added check for archived channel and deactivated DM * Import optimisation --- .../scheduled_post_actions.tsx | 18 +++++++++++++++++- .../src/components/drafts/draft_row.tsx | 7 +++++++ webapp/channels/src/i18n/en.json | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/webapp/channels/src/components/drafts/draft_actions/schedule_post_actions/scheduled_post_actions.tsx b/webapp/channels/src/components/drafts/draft_actions/schedule_post_actions/scheduled_post_actions.tsx index 4336b3ddf8..5cdf20bc3c 100644 --- a/webapp/channels/src/components/drafts/draft_actions/schedule_post_actions/scheduled_post_actions.tsx +++ b/webapp/channels/src/components/drafts/draft_actions/schedule_post_actions/scheduled_post_actions.tsx @@ -55,6 +55,13 @@ const sendNowTooltipText = ( /> ); +const copyTextTooltipText = ( + +); + type Props = { scheduledPost: ScheduledPost; channel?: Channel; @@ -62,9 +69,10 @@ type Props = { onDelete: (scheduledPostId: string) => Promise<{error?: string}>; onSend: (scheduledPostId: string) => void; onEdit: () => void; + onCopyText: () => void; } -function ScheduledPostActions({scheduledPost, channel, onReschedule, onDelete, onSend, onEdit}: Props) { +function ScheduledPostActions({scheduledPost, channel, onReschedule, onDelete, onSend, onEdit, onCopyText}: Props) { const dispatch = useDispatch(); const userTimezone = useSelector(getCurrentTimezone); @@ -149,6 +157,14 @@ function ScheduledPostActions({scheduledPost, channel, onReschedule, onDelete, o /> } + + { showRescheduleOption && !isEditing); }, []); + const handleCopyText = useCallback(() => { + copyToClipboard(item.message); + }, [item]); + const handleScheduledPostOnSend = useCallback(() => { handleCancelEdit(); @@ -296,6 +301,7 @@ function DraftRow({ onDelete={handleSchedulePostOnDelete} onSend={handleScheduledPostOnSend} onEdit={handleSchedulePostEdit} + onCopyText={handleCopyText} /> ); }, [ @@ -304,6 +310,7 @@ function DraftRow({ handleSchedulePostOnReschedule, handleScheduledPostOnSend, handleSchedulePostEdit, + handleCopyText, item, ]); diff --git a/webapp/channels/src/i18n/en.json b/webapp/channels/src/i18n/en.json index d1e966f216..e9435d4798 100644 --- a/webapp/channels/src/i18n/en.json +++ b/webapp/channels/src/i18n/en.json @@ -4859,6 +4859,7 @@ "Schedule_post.empty_state.subtitle": "Schedule drafts to send messages at a later time. Any scheduled drafts will show up here and can be modified after being scheduled.", "Schedule_post.empty_state.title": "No scheduled drafts at the moment", "schedule_post.tab.heading": "Scheduled", + "scheduled_post.action.copy_text": "Copy text", "scheduled_post.action.delete": "Delete scheduled post", "scheduled_post.action.edit": "Edit scheduled post", "scheduled_post.action.reschedule": "Reschedule post",