Mailspring/app/internal_packages/notifications/lib/items/offline-notification.jsx

44 lines
1.1 KiB
React
Raw Normal View History

2017-09-27 02:33:08 +08:00
import { OnlineStatusStore, React, PropTypes, Actions } from 'nylas-exports';
import { Notification, ListensToFluxStore } from 'nylas-component-kit';
2017-09-27 02:33:08 +08:00
function OfflineNotification({ isOnline, retryingInSeconds }) {
if (isOnline) {
2017-09-27 02:33:08 +08:00
return false;
}
2017-09-27 02:33:08 +08:00
const subtitle = retryingInSeconds
? `Retrying in ${retryingInSeconds} second${retryingInSeconds > 1 ? 's' : ''}`
: `Retrying now...`;
return (
<Notification
className="offline"
title="Mailspring is offline"
subtitle={subtitle}
priority="5"
icon="volstead-offline.png"
2017-09-27 02:33:08 +08:00
actions={[
{
id: 'try_now',
label: 'Try now',
fn: () => Actions.checkOnlineStatus(),
},
]}
/>
2017-09-27 02:33:08 +08:00
);
}
2017-09-27 02:33:08 +08:00
OfflineNotification.displayName = 'OfflineNotification';
OfflineNotification.propTypes = {
2017-09-27 02:33:08 +08:00
isOnline: PropTypes.bool,
retryingInSeconds: PropTypes.number,
};
export default ListensToFluxStore(OfflineNotification, {
stores: [OnlineStatusStore],
getStateFromStores() {
return {
isOnline: OnlineStatusStore.isOnline(),
retryingInSeconds: OnlineStatusStore.retryingInSeconds(),
2017-09-27 02:33:08 +08:00
};
},
2017-09-27 02:33:08 +08:00
});