about summary refs log tree commit diff
path: root/app/javascript/glitch/components/status/index.js
diff options
context:
space:
mode:
authorOndřej Hruška <ondra@ondrovo.com>2017-07-21 20:33:16 +0200
committerGitHub <noreply@github.com>2017-07-21 20:33:16 +0200
commit604654ccb417ffdc9b48d876bea76c8bec14f360 (patch)
tree1fe2c98677aa5328c8366a37114325b625399ace /app/javascript/glitch/components/status/index.js
parent0efd7e740602dd684712563b7ad0b41c23d86d69 (diff)
New notification cleaning mode (#89)
This PR adds a new notification cleaning mode, super perfectly tuned for accessibility, and removes the previous notification cleaning functionality as it's now redundant.

* w.i.p. notif clearing mode

* Better CSS for selected notification and shorter text if Stretch is off

* wip for rebase ~

* all working in notif clearing mode, except the actual removal

* bulk delete route for piggo

* cleaning + refactor. endpoint gives 422 for some reason

* formatting

* use the right route

* fix broken destroy_multiple

* load more notifs after succ cleaning

* satisfy eslint

* Removed CSS for the old notif delete button

* Tabindex=0 is mandatory

In order to make it possible to tab to this element you must have tab index = 0. Removing this violates WCAG and makes it impossible to use the interface without good eyesight and a mouse. So nobody with certain mobility impairments, vision impairments, or brain injuries would be able to use this feature if you don't have tabindex=0

* Corrected aria-label

Previous label implied a different behavior from what actually happens

* aria role localization & made the overlay behave like a checkbox

* checkboxes css and better contrast

* color tuning for the notif overlay

* fanceh checkboxes etc and nice backgrounds

* SHUT UP TRAVIS
Diffstat (limited to 'app/javascript/glitch/components/status/index.js')
-rw-r--r--app/javascript/glitch/components/status/index.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/app/javascript/glitch/components/status/index.js b/app/javascript/glitch/components/status/index.js
index 4a91b5aa3..dc06250ec 100644
--- a/app/javascript/glitch/components/status/index.js
+++ b/app/javascript/glitch/components/status/index.js
@@ -47,6 +47,7 @@ import StatusContent from './content';
 import StatusActionBar from './action_bar';
 import StatusGallery from './gallery';
 import StatusPlayer from './player';
+import NotificationOverlayContainer from '../notification/overlay/container';
 
                             /* * * * */
 
@@ -158,6 +159,7 @@ export default class Status extends ImmutablePureComponent {
     status                      : ImmutablePropTypes.map,
     account                     : ImmutablePropTypes.map,
     settings                    : ImmutablePropTypes.map,
+    notification                : ImmutablePropTypes.map,
     me                          : PropTypes.number,
     onFavourite                 : PropTypes.func,
     onReblog                    : PropTypes.func,
@@ -170,7 +172,6 @@ export default class Status extends ImmutablePureComponent {
     onReport                    : PropTypes.func,
     onOpenMedia                 : PropTypes.func,
     onOpenVideo                 : PropTypes.func,
-    onDeleteNotification        : PropTypes.func,
     reblogModal                 : PropTypes.bool,
     deleteModal                 : PropTypes.bool,
     autoPlayGif                 : PropTypes.bool,
@@ -178,7 +179,6 @@ export default class Status extends ImmutablePureComponent {
     collapse                    : PropTypes.bool,
     prepend                     : PropTypes.string,
     withDismiss                 : PropTypes.bool,
-    notificationId              : PropTypes.number,
     intersectionObserverWrapper : PropTypes.object,
   };
 
@@ -186,6 +186,7 @@ export default class Status extends ImmutablePureComponent {
     isExpanded                  : null,
     isIntersecting              : true,
     isHidden                    : false,
+    markedForDelete             : false,
   }
 
 /*
@@ -212,10 +213,12 @@ to remember to specify it here.
     'autoPlayGif',
     'muted',
     'collapse',
+    'notification',
   ]
 
   updateOnStates = [
     'isExpanded',
+    'markedForDelete',
   ]
 
 /*
@@ -523,6 +526,10 @@ applicable.
     }
   }
 
+  markNotifForDelete = () => {
+    this.setState({ 'markedForDelete' : !this.state.markedForDelete });
+  }
+
 /*
 
 ####  `render()`.
@@ -551,6 +558,7 @@ this operation are further explained in the code below.
       onOpenVideo,
       onOpenMedia,
       autoPlayGif,
+      notification,
       ...other
     } = this.props;
     const { isExpanded, isIntersecting, isHidden } = this.state;
@@ -678,6 +686,8 @@ collapsed.
             isExpanded === false ? ' collapsed' : ''
           }${
             isExpanded === false && background ? ' has-background' : ''
+          }${
+            this.state.markedForDelete ? ' marked-for-delete' : ''
           }`
         }
         style={{
@@ -689,13 +699,17 @@ collapsed.
         }}
         ref={handleRef}
       >
+        {notification ? (
+          <NotificationOverlayContainer
+            notification={notification}
+          />
+        ) : null}
         {prepend && account ? (
           <StatusPrepend
             type={prepend}
             account={account}
             parseClick={parseClick}
             notificationId={this.props.notificationId}
-            onDeleteNotification={this.props.onDeleteNotification}
           />
         ) : null}
         <StatusHeader