2022-03-11 03:33:25 +08:00
|
|
|
import React from 'react';
|
2022-04-06 23:07:12 +08:00
|
|
|
import { FormattedMessage, injectIntl } from 'react-intl';
|
2022-03-11 03:33:25 +08:00
|
|
|
import { Notifications as NotificationsCollection } from '/imports/api/meetings';
|
|
|
|
import { notify } from '/imports/ui/services/notification';
|
|
|
|
import { withTracker } from 'meteor/react-meteor-data';
|
2022-04-06 05:02:05 +08:00
|
|
|
import WaitingUsersAlertService from '/imports/ui/components/waiting-users/alert/service';
|
2022-04-06 21:21:49 +08:00
|
|
|
import UserService from '/imports/ui/components/user-list/service';
|
2022-03-11 03:33:25 +08:00
|
|
|
|
2022-04-06 23:07:12 +08:00
|
|
|
export default injectIntl(withTracker(({ intl }) => {
|
2022-03-11 03:33:25 +08:00
|
|
|
NotificationsCollection.find({}).observe({
|
|
|
|
added: (obj) => {
|
2023-05-06 03:55:37 +08:00
|
|
|
NotificationsCollection.remove(obj);
|
|
|
|
|
2022-04-06 05:02:05 +08:00
|
|
|
if (obj.messageId === 'app.userList.guest.pendingGuestAlert') {
|
2022-04-07 21:42:26 +08:00
|
|
|
return WaitingUsersAlertService.alert(obj, intl);
|
2022-04-06 05:02:05 +08:00
|
|
|
}
|
|
|
|
|
2022-04-06 21:21:49 +08:00
|
|
|
if (obj.messageId === 'app.notification.userJoinPushAlert') {
|
|
|
|
return UserService.UserJoinedMeetingAlert(obj);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (obj.messageId === 'app.notification.userLeavePushAlert') {
|
|
|
|
return UserService.UserLeftMeetingAlert(obj);
|
|
|
|
}
|
2024-02-29 02:41:51 +08:00
|
|
|
if (obj.messageId === 'app.layoutUpdate.label') {
|
|
|
|
const last = new Date(Session.get('lastLayoutUpdateNotification'));
|
|
|
|
const now = new Date();
|
|
|
|
if (now - last < 1000) {
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
Session.set('lastLayoutUpdateNotification', now);
|
|
|
|
}
|
2022-04-06 21:21:49 +08:00
|
|
|
|
2022-03-11 03:33:25 +08:00
|
|
|
notify(
|
|
|
|
<FormattedMessage
|
|
|
|
id={obj.messageId}
|
|
|
|
values={obj.messageValues}
|
2022-03-30 22:01:12 +08:00
|
|
|
description={obj.messageDescription}
|
2022-03-11 03:33:25 +08:00
|
|
|
/>,
|
|
|
|
obj.notificationType,
|
|
|
|
obj.icon,
|
|
|
|
);
|
|
|
|
},
|
|
|
|
});
|
|
|
|
return {};
|
2022-04-07 00:15:00 +08:00
|
|
|
})(() => null));
|