bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/notifications/container.jsx

47 lines
1.5 KiB
React
Raw Normal View History

2022-03-11 03:33:25 +08:00
import React from 'react';
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';
import UserService from '/imports/ui/components/user-list/service';
2022-03-11 03:33:25 +08:00
export default injectIntl(withTracker(({ intl }) => {
2022-03-11 03:33:25 +08:00
NotificationsCollection.find({}).observe({
added: (obj) => {
NotificationsCollection.remove(obj);
2022-04-06 05:02:05 +08:00
if (obj.messageId === 'app.userList.guest.pendingGuestAlert') {
return WaitingUsersAlertService.alert(obj, intl);
2022-04-06 05:02:05 +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-03-11 03:33:25 +08:00
notify(
<FormattedMessage
id={obj.messageId}
values={obj.messageValues}
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));