MM-60124-emit and read create scheduled post WS event (#28844)
* MM-60124-emit and read create scheduled post WS event * fix unit test; reorder get team id logic; use userid for ws events * MM-60145 - ws events on update scheduled posts (#28871) * MM-60145 - ws events on update scheduled posts * MM-60147 - ws events on delete scheduled posts (#28872) * MM-60147 - ws events on delete scheduled posts * remove unnecessary channelID * remove unnecesary memoization
Этот коммит содержится в:
@@ -21,6 +21,7 @@ import {
|
||||
CloudTypes,
|
||||
HostedCustomerTypes,
|
||||
ChannelBookmarkTypes,
|
||||
ScheduledPostTypes,
|
||||
} from 'mattermost-redux/action_types';
|
||||
import {getStandardAnalytics} from 'mattermost-redux/actions/admin';
|
||||
import {fetchAppBindings, fetchRHSAppsBindings} from 'mattermost-redux/actions/apps';
|
||||
@@ -83,6 +84,7 @@ import {getPost, getMostRecentPostIdInChannel, getTeamIdFromPost} from 'mattermo
|
||||
import {isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {haveISystemPermission, haveITeamPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import {
|
||||
getTeamIdByChannelId,
|
||||
getMyTeams,
|
||||
getCurrentRelativeTeamUrl,
|
||||
getCurrentTeamId,
|
||||
@@ -609,6 +611,15 @@ export function handleEvent(msg) {
|
||||
case SocketEvents.DRAFT_DELETED:
|
||||
dispatch(handleDeleteDraftEvent(msg));
|
||||
break;
|
||||
case SocketEvents.SCHEDULED_POST_CREATED:
|
||||
dispatch(handleCreateScheduledPostEvent(msg));
|
||||
break;
|
||||
case SocketEvents.SCHEDULED_POST_UPDATED:
|
||||
dispatch(handleUpdateScheduledPostEvent(msg));
|
||||
break;
|
||||
case SocketEvents.SCHEDULED_POST_DELETED:
|
||||
dispatch(handleDeleteScheduledPostEvent(msg));
|
||||
break;
|
||||
case SocketEvents.PERSISTENT_NOTIFICATION_TRIGGERED:
|
||||
dispatch(handlePersistentNotification(msg));
|
||||
break;
|
||||
@@ -1748,6 +1759,48 @@ function handleUpsertDraftEvent(msg) {
|
||||
};
|
||||
}
|
||||
|
||||
function handleCreateScheduledPostEvent(msg) {
|
||||
return async (doDispatch) => {
|
||||
const scheduledPost = JSON.parse(msg.data.scheduledPost);
|
||||
const state = getState();
|
||||
const teamId = getTeamIdByChannelId(state, scheduledPost.channel_id);
|
||||
|
||||
doDispatch({
|
||||
type: ScheduledPostTypes.SINGLE_SCHEDULED_POST_RECEIVED,
|
||||
data: {
|
||||
scheduledPost,
|
||||
teamId,
|
||||
},
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function handleUpdateScheduledPostEvent(msg) {
|
||||
return async (doDispatch) => {
|
||||
const scheduledPost = JSON.parse(msg.data.scheduledPost);
|
||||
|
||||
doDispatch({
|
||||
type: ScheduledPostTypes.SCHEDULED_POST_UPDATED,
|
||||
data: {
|
||||
scheduledPost,
|
||||
},
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function handleDeleteScheduledPostEvent(msg) {
|
||||
return async (doDispatch) => {
|
||||
const scheduledPost = JSON.parse(msg.data.scheduledPost);
|
||||
|
||||
doDispatch({
|
||||
type: ScheduledPostTypes.SCHEDULED_POST_DELETED,
|
||||
data: {
|
||||
scheduledPost,
|
||||
},
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function handleDeleteDraftEvent(msg) {
|
||||
return async (doDispatch) => {
|
||||
const draft = JSON.parse(msg.data.draft);
|
||||
|
||||
@@ -372,3 +372,12 @@ export function makeGetBadgeCountForTeamId(): (state: GlobalState, id: string) =
|
||||
export function searchTeamsInPolicy(teams: Team[], term: string): Team[] {
|
||||
return filterTeamsStartingWithTerm(teams, term);
|
||||
}
|
||||
|
||||
export function getTeamIdByChannelId(state: GlobalState, channelId: string): string | undefined {
|
||||
const channels = state.entities.channels.channels;
|
||||
if (!channels) {
|
||||
return undefined;
|
||||
}
|
||||
const channel = channels[channelId];
|
||||
return channel ? channel.team_id : undefined;
|
||||
}
|
||||
|
||||
@@ -660,6 +660,9 @@ export const SocketEvents = {
|
||||
DRAFT_CREATED: 'draft_created',
|
||||
DRAFT_UPDATED: 'draft_updated',
|
||||
DRAFT_DELETED: 'draft_deleted',
|
||||
SCHEDULED_POST_CREATED: 'scheduled_post_created',
|
||||
SCHEDULED_POST_UPDATED: 'scheduled_post_updated',
|
||||
SCHEDULED_POST_DELETED: 'scheduled_post_deleted',
|
||||
PERSISTENT_NOTIFICATION_TRIGGERED: 'persistent_notification_triggered',
|
||||
HOSTED_CUSTOMER_SIGNUP_PROGRESS_UPDATED: 'hosted_customer_signup_progress_updated',
|
||||
};
|
||||
|
||||
Ссылка в новой задаче
Block a user