about summary refs log tree commit diff
path: root/app/assets/javascripts/components/containers/mastodon.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/components/containers/mastodon.jsx')
-rw-r--r--app/assets/javascripts/components/containers/mastodon.jsx11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/assets/javascripts/components/containers/mastodon.jsx b/app/assets/javascripts/components/containers/mastodon.jsx
index b2c978ee8..cf77c169d 100644
--- a/app/assets/javascripts/components/containers/mastodon.jsx
+++ b/app/assets/javascripts/components/containers/mastodon.jsx
@@ -6,6 +6,7 @@ import {
   deleteFromTimelines,
   refreshTimeline
 } from '../actions/timelines';
+import { updateNotifications } from '../actions/notifications';
 import { setAccessToken } from '../actions/meta';
 import { setAccountSelf } from '../actions/accounts';
 import PureRenderMixin from 'react-addons-pure-render-mixin';
@@ -32,6 +33,7 @@ import Following from '../features/following';
 import Reblogs from '../features/reblogs';
 import Favourites from '../features/favourites';
 import HashtagTimeline from '../features/hashtag_timeline';
+import Notifications from '../features/notifications';
 import { IntlProvider, addLocaleData } from 'react-intl';
 import en from 'react-intl/locale-data/en';
 import de from 'react-intl/locale-data/de';
@@ -75,11 +77,18 @@ const Mastodon = React.createClass({
               return store.dispatch(refreshTimeline('home', true));
             case 'block':
               return store.dispatch(refreshTimeline('mentions', true));
+            case 'notification':
+              return store.dispatch(updateNotifications(JSON.parse(data.message)));
           }
         }
 
       });
     }
+
+    // Desktop notifications
+    if (Notification.permission === 'default') {
+      Notification.requestPermission();
+    }
   },
 
   componentWillUnmount () {
@@ -103,6 +112,8 @@ const Mastodon = React.createClass({
               <Route path='timelines/public' component={PublicTimeline} />
               <Route path='timelines/tag/:id' component={HashtagTimeline} />
 
+              <Route path='notifications' component={Notifications} />
+
               <Route path='statuses/new' component={Compose} />
               <Route path='statuses/:statusId' component={Status} />
               <Route path='statuses/:statusId/reblogs' component={Reblogs} />