diff --git a/webapp/channels/src/actions/websocket_actions.jsx b/webapp/channels/src/actions/websocket_actions.jsx index b3f20b923c..ed6e1fa0ec 100644 --- a/webapp/channels/src/actions/websocket_actions.jsx +++ b/webapp/channels/src/actions/websocket_actions.jsx @@ -240,7 +240,7 @@ export function reconnect() { } dispatch(fetchAllMyTeamsChannels()); - dispatch(fetchTeamScheduledPosts(currentTeamId, true)); + dispatch(fetchTeamScheduledPosts(currentTeamId, true, true)); dispatch(fetchAllMyChannelMembers()); dispatch(fetchMyCategories(currentTeamId)); loadProfilesForSidebar(); diff --git a/webapp/channels/src/packages/mattermost-redux/src/actions/scheduled_posts.ts b/webapp/channels/src/packages/mattermost-redux/src/actions/scheduled_posts.ts index 20ec4f0184..f9969e12eb 100644 --- a/webapp/channels/src/packages/mattermost-redux/src/actions/scheduled_posts.ts +++ b/webapp/channels/src/packages/mattermost-redux/src/actions/scheduled_posts.ts @@ -31,7 +31,7 @@ export function createSchedulePost(schedulePost: ScheduledPost, teamId: string, }; } -export function fetchTeamScheduledPosts(teamId: string, includeDirectChannels: boolean) { +export function fetchTeamScheduledPosts(teamId: string, includeDirectChannels: boolean, prune?: false) { return async (dispatch: DispatchFunc, getState: GetStateFunc) => { let scheduledPosts; @@ -41,6 +41,7 @@ export function fetchTeamScheduledPosts(teamId: string, includeDirectChannels: b type: ScheduledPostTypes.SCHEDULED_POSTS_RECEIVED, data: { scheduledPostsByTeamId: scheduledPosts.data, + prune, }, }); } catch (error) { diff --git a/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/scheduled_posts.ts b/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/scheduled_posts.ts index 7bc162e494..5aa0e7b651 100644 --- a/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/scheduled_posts.ts +++ b/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/scheduled_posts.ts @@ -175,8 +175,8 @@ function errorsByTeamId(state: ScheduledPostsState['errorsByTeamId'] = {}, actio function byChannelOrThreadId(state: ScheduledPostsState['byChannelOrThreadId'] = {}, action: MMReduxAction) { switch (action.type) { case ScheduledPostTypes.SCHEDULED_POSTS_RECEIVED: { - const {scheduledPostsByTeamId} = action.data; - const newState = {...state}; + const {scheduledPostsByTeamId, prune} = action.data; + const newState = prune ? {} : {...state}; Object.keys(scheduledPostsByTeamId).forEach((teamId: string) => { if (Object.hasOwn(scheduledPostsByTeamId, teamId)) {