TelegramPWA/src/components/main/Notifications.tsx
2021-08-21 13:33:16 +03:00

39 lines
1.1 KiB
TypeScript

import React, { FC, memo } from '../../lib/teact/teact';
import { withGlobal } from '../../lib/teact/teactn';
import { GlobalActions } from '../../global/types';
import { ApiNotification } from '../../api/types';
import { pick } from '../../util/iteratees';
import renderText from '../common/helpers/renderText';
import Notification from '../ui/Notification';
type StateProps = {
notifications: ApiNotification[];
};
type DispatchProps = Pick<GlobalActions, 'dismissNotification'>;
const Notifications: FC<StateProps & DispatchProps> = ({ notifications, dismissNotification }) => {
if (!notifications.length) {
return undefined;
}
return (
<div id="Notifications">
{notifications.map(({ message, localId }) => (
<Notification
message={renderText(message, ['emoji', 'br', 'links', 'simple_markdown'])}
onDismiss={() => dismissNotification({ localId })}
/>
))}
</div>
);
};
export default memo(withGlobal(
(global): StateProps => pick(global, ['notifications']),
(setGlobal, actions): DispatchProps => pick(actions, ['dismissNotification']),
)(Notifications));