mirror of
https://github.com/glitch-soc/mastodon.git
synced 2024-11-29 11:30:28 -05:00
604654ccb4
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
49 lines
841 B
JavaScript
49 lines
841 B
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import scrollTop from '../scroll';
|
|
|
|
export default class Column extends React.PureComponent {
|
|
|
|
static propTypes = {
|
|
children: PropTypes.node,
|
|
};
|
|
|
|
scrollTop () {
|
|
const scrollable = this.node.querySelector('.scrollable');
|
|
|
|
if (!scrollable) {
|
|
return;
|
|
}
|
|
|
|
this._interruptScrollAnimation = scrollTop(scrollable);
|
|
}
|
|
|
|
handleWheel = () => {
|
|
if (typeof this._interruptScrollAnimation !== 'function') {
|
|
return;
|
|
}
|
|
|
|
this._interruptScrollAnimation();
|
|
}
|
|
|
|
setRef = c => {
|
|
this.node = c;
|
|
}
|
|
|
|
render () {
|
|
const { children } = this.props;
|
|
|
|
return (
|
|
<div
|
|
role='region'
|
|
className='column'
|
|
ref={this.setRef}
|
|
onWheel={this.handleWheel}
|
|
>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
}
|