Upgrade ESlint to v8 (#23305)

main
Nick Schonning 2 years ago committed by GitHub
parent b58bf74e35
commit c49213f0ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -47,27 +47,27 @@ class Account extends ImmutablePureComponent {
handleFollow = () => { handleFollow = () => {
this.props.onFollow(this.props.account); this.props.onFollow(this.props.account);
} };
handleBlock = () => { handleBlock = () => {
this.props.onBlock(this.props.account); this.props.onBlock(this.props.account);
} };
handleMute = () => { handleMute = () => {
this.props.onMute(this.props.account); this.props.onMute(this.props.account);
} };
handleMuteNotifications = () => { handleMuteNotifications = () => {
this.props.onMuteNotifications(this.props.account, true); this.props.onMuteNotifications(this.props.account, true);
} };
handleUnmuteNotifications = () => { handleUnmuteNotifications = () => {
this.props.onMuteNotifications(this.props.account, false); this.props.onMuteNotifications(this.props.account, false);
} };
handleAction = () => { handleAction = () => {
this.props.onActionClick(this.props.account); this.props.onActionClick(this.props.account);
} };
render () { render () {
const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props; const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props;

@ -38,13 +38,13 @@ export default class AnimatedNumber extends React.PureComponent {
const { direction } = this.state; const { direction } = this.state;
return { y: -1 * direction }; return { y: -1 * direction };
} };
willLeave = () => { willLeave = () => {
const { direction } = this.state; const { direction } = this.state;
return { y: spring(1 * direction, { damping: 35, stiffness: 400 }) }; return { y: spring(1 * direction, { damping: 35, stiffness: 400 }) };
} };
render () { render () {
const { value, obfuscate } = this.props; const { value, obfuscate } = this.props;

@ -78,7 +78,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
} }
this.props.onChange(e); this.props.onChange(e);
} };
onKeyDown = (e) => { onKeyDown = (e) => {
const { suggestions, disabled } = this.props; const { suggestions, disabled } = this.props;
@ -136,22 +136,22 @@ export default class AutosuggestInput extends ImmutablePureComponent {
} }
this.props.onKeyDown(e); this.props.onKeyDown(e);
} };
onBlur = () => { onBlur = () => {
this.setState({ suggestionsHidden: true, focused: false }); this.setState({ suggestionsHidden: true, focused: false });
} };
onFocus = () => { onFocus = () => {
this.setState({ focused: true }); this.setState({ focused: true });
} };
onSuggestionClick = (e) => { onSuggestionClick = (e) => {
const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index')); const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index'));
e.preventDefault(); e.preventDefault();
this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion); this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion);
this.input.focus(); this.input.focus();
} };
componentWillReceiveProps (nextProps) { componentWillReceiveProps (nextProps) {
if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) { if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) {
@ -161,7 +161,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
setInput = (c) => { setInput = (c) => {
this.input = c; this.input = c;
} };
renderSuggestion = (suggestion, i) => { renderSuggestion = (suggestion, i) => {
const { selectedSuggestion } = this.state; const { selectedSuggestion } = this.state;
@ -183,7 +183,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
{inner} {inner}
</div> </div>
); );
} };
render () { render () {
const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang } = this.props; const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang } = this.props;

@ -75,7 +75,7 @@ export default class AutosuggestTextarea extends ImmutablePureComponent {
} }
this.props.onChange(e); this.props.onChange(e);
} };
onKeyDown = (e) => { onKeyDown = (e) => {
const { suggestions, disabled } = this.props; const { suggestions, disabled } = this.props;
@ -133,25 +133,25 @@ export default class AutosuggestTextarea extends ImmutablePureComponent {
} }
this.props.onKeyDown(e); this.props.onKeyDown(e);
} };
onBlur = () => { onBlur = () => {
this.setState({ suggestionsHidden: true, focused: false }); this.setState({ suggestionsHidden: true, focused: false });
} };
onFocus = (e) => { onFocus = (e) => {
this.setState({ focused: true }); this.setState({ focused: true });
if (this.props.onFocus) { if (this.props.onFocus) {
this.props.onFocus(e); this.props.onFocus(e);
} }
} };
onSuggestionClick = (e) => { onSuggestionClick = (e) => {
const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index')); const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index'));
e.preventDefault(); e.preventDefault();
this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion); this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion);
this.textarea.focus(); this.textarea.focus();
} };
componentWillReceiveProps (nextProps) { componentWillReceiveProps (nextProps) {
if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) { if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) {
@ -161,14 +161,14 @@ export default class AutosuggestTextarea extends ImmutablePureComponent {
setTextarea = (c) => { setTextarea = (c) => {
this.textarea = c; this.textarea = c;
} };
onPaste = (e) => { onPaste = (e) => {
if (e.clipboardData && e.clipboardData.files.length === 1) { if (e.clipboardData && e.clipboardData.files.length === 1) {
this.props.onPaste(e.clipboardData.files); this.props.onPaste(e.clipboardData.files);
e.preventDefault(); e.preventDefault();
} }
} };
renderSuggestion = (suggestion, i) => { renderSuggestion = (suggestion, i) => {
const { selectedSuggestion } = this.state; const { selectedSuggestion } = this.state;
@ -190,7 +190,7 @@ export default class AutosuggestTextarea extends ImmutablePureComponent {
{inner} {inner}
</div> </div>
); );
} };
render () { render () {
const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, lang, children } = this.props; const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, lang, children } = this.props;

@ -27,12 +27,12 @@ export default class Avatar extends React.PureComponent {
handleMouseEnter = () => { handleMouseEnter = () => {
if (this.props.animate) return; if (this.props.animate) return;
this.setState({ hovering: true }); this.setState({ hovering: true });
} };
handleMouseLeave = () => { handleMouseLeave = () => {
if (this.props.animate) return; if (this.props.animate) return;
this.setState({ hovering: false }); this.setState({ hovering: false });
} };
render () { render () {
const { account, size, animate, inline } = this.props; const { account, size, animate, inline } = this.props;

@ -29,12 +29,12 @@ export default class AvatarOverlay extends React.PureComponent {
handleMouseEnter = () => { handleMouseEnter = () => {
if (this.props.animate) return; if (this.props.animate) return;
this.setState({ hovering: true }); this.setState({ hovering: true });
} };
handleMouseLeave = () => { handleMouseLeave = () => {
if (this.props.animate) return; if (this.props.animate) return;
this.setState({ hovering: false }); this.setState({ hovering: false });
} };
render() { render() {
const { account, friend, animate, size, baseSize, overlaySize } = this.props; const { account, friend, animate, size, baseSize, overlaySize } = this.props;

@ -24,11 +24,11 @@ export default class Button extends React.PureComponent {
if (!this.props.disabled && this.props.onClick) { if (!this.props.disabled && this.props.onClick) {
this.props.onClick(e); this.props.onClick(e);
} }
} };
setRef = (c) => { setRef = (c) => {
this.node = c; this.node = c;
} };
focus() { focus() {
this.node.focus(); this.node.focus();

@ -27,11 +27,11 @@ export default class Column extends React.PureComponent {
} }
this._interruptScrollAnimation(); this._interruptScrollAnimation();
} };
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
componentDidMount () { componentDidMount () {
if (this.props.bindToDocument) { if (this.props.bindToDocument) {

@ -20,7 +20,7 @@ export default class ColumnBackButton extends React.PureComponent {
} else { } else {
this.context.router.history.goBack(); this.context.router.history.goBack();
} }
} };
render () { render () {
const { multiColumn } = this.props; const { multiColumn } = this.props;

@ -49,32 +49,32 @@ class ColumnHeader extends React.PureComponent {
} else { } else {
this.context.router.history.goBack(); this.context.router.history.goBack();
} }
} };
handleToggleClick = (e) => { handleToggleClick = (e) => {
e.stopPropagation(); e.stopPropagation();
this.setState({ collapsed: !this.state.collapsed, animating: true }); this.setState({ collapsed: !this.state.collapsed, animating: true });
} };
handleTitleClick = () => { handleTitleClick = () => {
this.props.onClick?.(); this.props.onClick?.();
} };
handleMoveLeft = () => { handleMoveLeft = () => {
this.props.onMove(-1); this.props.onMove(-1);
} };
handleMoveRight = () => { handleMoveRight = () => {
this.props.onMove(1); this.props.onMove(1);
} };
handleBackClick = () => { handleBackClick = () => {
this.historyBack(); this.historyBack();
} };
handleTransitionEnd = () => { handleTransitionEnd = () => {
this.setState({ animating: false }); this.setState({ animating: false });
} };
handlePin = () => { handlePin = () => {
if (!this.props.pinned) { if (!this.props.pinned) {
@ -82,7 +82,7 @@ class ColumnHeader extends React.PureComponent {
} }
this.props.onPin(); this.props.onPin();
} };
render () { render () {
const { title, icon, active, children, pinned, multiColumn, extraButton, showBackButton, intl: { formatMessage }, placeholder, appendContent, collapseIssues } = this.props; const { title, icon, active, children, pinned, multiColumn, extraButton, showBackButton, intl: { formatMessage }, placeholder, appendContent, collapseIssues } = this.props;

@ -24,7 +24,7 @@ class DismissableBanner extends React.PureComponent {
handleDismiss = () => { handleDismiss = () => {
const { id } = this.props; const { id } = this.props;
this.setState({ visible: false }, () => bannerSettings.set(id, true)); this.setState({ visible: false }, () => bannerSettings.set(id, true));
} };
render () { render () {
const { visible } = this.state; const { visible } = this.state;

@ -23,7 +23,7 @@ export default class DisplayName extends React.PureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-original'); emoji.src = emoji.getAttribute('data-original');
} }
} };
handleMouseLeave = ({ currentTarget }) => { handleMouseLeave = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -36,7 +36,7 @@ export default class DisplayName extends React.PureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-static'); emoji.src = emoji.getAttribute('data-static');
} }
} };
render () { render () {
const { others, localDomain } = this.props; const { others, localDomain } = this.props;

@ -19,7 +19,7 @@ class Account extends ImmutablePureComponent {
handleDomainUnblock = () => { handleDomainUnblock = () => {
this.props.onUnblockDomain(this.props.domain); this.props.onUnblockDomain(this.props.domain);
} };
render () { render () {
const { domain, intl } = this.props; const { domain, intl } = this.props;

@ -36,7 +36,7 @@ class DropdownMenu extends React.PureComponent {
if (this.node && !this.node.contains(e.target)) { if (this.node && !this.node.contains(e.target)) {
this.props.onClose(); this.props.onClose();
} }
} };
componentDidMount () { componentDidMount () {
document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('click', this.handleDocumentClick, false);
@ -56,11 +56,11 @@ class DropdownMenu extends React.PureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
setFocusRef = c => { setFocusRef = c => {
this.focusedItem = c; this.focusedItem = c;
} };
handleKeyDown = e => { handleKeyDown = e => {
const items = Array.from(this.node.querySelectorAll('a, button')); const items = Array.from(this.node.querySelectorAll('a, button'));
@ -97,18 +97,18 @@ class DropdownMenu extends React.PureComponent {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
} }
} };
handleItemKeyPress = e => { handleItemKeyPress = e => {
if (e.key === 'Enter' || e.key === ' ') { if (e.key === 'Enter' || e.key === ' ') {
this.handleClick(e); this.handleClick(e);
} }
} };
handleClick = e => { handleClick = e => {
const { onItemClick } = this.props; const { onItemClick } = this.props;
onItemClick(e); onItemClick(e);
} };
renderItem = (option, i) => { renderItem = (option, i) => {
if (option === null) { if (option === null) {
@ -124,7 +124,7 @@ class DropdownMenu extends React.PureComponent {
</a> </a>
</li> </li>
); );
} };
render () { render () {
const { items, scrollable, renderHeader, loading } = this.props; const { items, scrollable, renderHeader, loading } = this.props;
@ -194,7 +194,7 @@ export default class Dropdown extends React.PureComponent {
} else { } else {
this.props.onOpen(this.state.id, this.handleItemClick, type !== 'click'); this.props.onOpen(this.state.id, this.handleItemClick, type !== 'click');
} }
} };
handleClose = () => { handleClose = () => {
if (this.activeElement) { if (this.activeElement) {
@ -202,13 +202,13 @@ export default class Dropdown extends React.PureComponent {
this.activeElement = null; this.activeElement = null;
} }
this.props.onClose(this.state.id); this.props.onClose(this.state.id);
} };
handleMouseDown = () => { handleMouseDown = () => {
if (!this.state.open) { if (!this.state.open) {
this.activeElement = document.activeElement; this.activeElement = document.activeElement;
} }
} };
handleButtonKeyDown = (e) => { handleButtonKeyDown = (e) => {
switch(e.key) { switch(e.key) {
@ -217,7 +217,7 @@ export default class Dropdown extends React.PureComponent {
this.handleMouseDown(); this.handleMouseDown();
break; break;
} }
} };
handleKeyPress = (e) => { handleKeyPress = (e) => {
switch(e.key) { switch(e.key) {
@ -228,7 +228,7 @@ export default class Dropdown extends React.PureComponent {
e.preventDefault(); e.preventDefault();
break; break;
} }
} };
handleItemClick = e => { handleItemClick = e => {
const { onItemClick } = this.props; const { onItemClick } = this.props;
@ -247,25 +247,25 @@ export default class Dropdown extends React.PureComponent {
e.preventDefault(); e.preventDefault();
this.context.router.history.push(item.to); this.context.router.history.push(item.to);
} }
} };
setTargetRef = c => { setTargetRef = c => {
this.target = c; this.target = c;
} };
findTarget = () => { findTarget = () => {
return this.target; return this.target;
} };
componentWillUnmount = () => { componentWillUnmount = () => {
if (this.state.id === this.props.openDropdownId) { if (this.state.id === this.props.openDropdownId) {
this.handleClose(); this.handleClose();
} }
} };
close = () => { close = () => {
this.handleClose(); this.handleClose();
} };
render () { render () {
const { const {

@ -36,7 +36,7 @@ class EditedTimestamp extends React.PureComponent {
return ( return (
<FormattedMessage id='status.edited_x_times' defaultMessage='Edited {count, plural, one {{count} time} other {{count} times}}' values={{ count: items.size - 1 }} /> <FormattedMessage id='status.edited_x_times' defaultMessage='Edited {count, plural, one {{count} time} other {{count} times}}' values={{ count: items.size - 1 }} />
); );
} };
renderItem = (item, index, { onClick, onKeyPress }) => { renderItem = (item, index, { onClick, onKeyPress }) => {
const formattedDate = <RelativeTimestamp timestamp={item.get('created_at')} short={false} />; const formattedDate = <RelativeTimestamp timestamp={item.get('created_at')} short={false} />;
@ -53,7 +53,7 @@ class EditedTimestamp extends React.PureComponent {
<button data-index={index} onClick={onClick} onKeyPress={onKeyPress}>{label}</button> <button data-index={index} onClick={onClick} onKeyPress={onKeyPress}>{label}</button>
</li> </li>
); );
} };
render () { render () {
const { timestamp, intl, statusId } = this.props; const { timestamp, intl, statusId } = this.props;

@ -64,7 +64,7 @@ export default class ErrorBoundary extends React.PureComponent {
this.setState({ copied: true }); this.setState({ copied: true });
setTimeout(() => this.setState({ copied: false }), 700); setTimeout(() => this.setState({ copied: false }), 700);
} };
render() { render() {
const { hasError, copied, errorMessage } = this.state; const { hasError, copied, errorMessage } = this.state;

@ -17,7 +17,7 @@ export default class GIFV extends React.PureComponent {
handleLoadedData = () => { handleLoadedData = () => {
this.setState({ loading: false }); this.setState({ loading: false });
} };
componentWillReceiveProps (nextProps) { componentWillReceiveProps (nextProps) {
if (nextProps.src !== this.props.src) { if (nextProps.src !== this.props.src) {
@ -32,7 +32,7 @@ export default class GIFV extends React.PureComponent {
e.stopPropagation(); e.stopPropagation();
onClick(); onClick();
} }
} };
render () { render () {
const { src, width, height, alt } = this.props; const { src, width, height, alt } = this.props;

@ -43,7 +43,7 @@ export default class IconButton extends React.PureComponent {
state = { state = {
activate: false, activate: false,
deactivate: false, deactivate: false,
} };
componentWillReceiveProps (nextProps) { componentWillReceiveProps (nextProps) {
if (!nextProps.animate) return; if (!nextProps.animate) return;
@ -61,25 +61,25 @@ export default class IconButton extends React.PureComponent {
if (!this.props.disabled) { if (!this.props.disabled) {
this.props.onClick(e); this.props.onClick(e);
} }
} };
handleKeyPress = (e) => { handleKeyPress = (e) => {
if (this.props.onKeyPress && !this.props.disabled) { if (this.props.onKeyPress && !this.props.disabled) {
this.props.onKeyPress(e); this.props.onKeyPress(e);
} }
} };
handleMouseDown = (e) => { handleMouseDown = (e) => {
if (!this.props.disabled && this.props.onMouseDown) { if (!this.props.disabled && this.props.onMouseDown) {
this.props.onMouseDown(e); this.props.onMouseDown(e);
} }
} };
handleKeyDown = (e) => { handleKeyDown = (e) => {
if (!this.props.disabled && this.props.onKeyDown) { if (!this.props.disabled && this.props.onKeyDown) {
this.props.onKeyDown(e); this.props.onKeyDown(e);
} }
} };
render () { render () {
const style = { const style = {

@ -21,7 +21,7 @@ export default class IntersectionObserverArticle extends React.Component {
state = { state = {
isHidden: false, // set to true in requestIdleCallback to trigger un-render isHidden: false, // set to true in requestIdleCallback to trigger un-render
} };
shouldComponentUpdate (nextProps, nextState) { shouldComponentUpdate (nextProps, nextState) {
const isUnrendered = !this.state.isIntersecting && (this.state.isHidden || this.props.cachedHeight); const isUnrendered = !this.state.isIntersecting && (this.state.isHidden || this.props.cachedHeight);
@ -62,7 +62,7 @@ export default class IntersectionObserverArticle extends React.Component {
scheduleIdleTask(this.calculateHeight); scheduleIdleTask(this.calculateHeight);
this.setState(this.updateStateAfterIntersection); this.setState(this.updateStateAfterIntersection);
} };
updateStateAfterIntersection = (prevState) => { updateStateAfterIntersection = (prevState) => {
if (prevState.isIntersecting !== false && !this.entry.isIntersecting) { if (prevState.isIntersecting !== false && !this.entry.isIntersecting) {
@ -72,7 +72,7 @@ export default class IntersectionObserverArticle extends React.Component {
isIntersecting: this.entry.isIntersecting, isIntersecting: this.entry.isIntersecting,
isHidden: false, isHidden: false,
}; };
} };
calculateHeight = () => { calculateHeight = () => {
const { onHeightChange, saveHeightKey, id } = this.props; const { onHeightChange, saveHeightKey, id } = this.props;
@ -83,7 +83,7 @@ export default class IntersectionObserverArticle extends React.Component {
if (onHeightChange && saveHeightKey) { if (onHeightChange && saveHeightKey) {
onHeightChange(saveHeightKey, id, this.height); onHeightChange(saveHeightKey, id, this.height);
} }
} };
hideIfNotIntersecting = () => { hideIfNotIntersecting = () => {
if (!this.componentMounted) { if (!this.componentMounted) {
@ -95,11 +95,11 @@ export default class IntersectionObserverArticle extends React.Component {
// this is to save DOM nodes and avoid using up too much memory. // this is to save DOM nodes and avoid using up too much memory.
// See: https://github.com/mastodon/mastodon/issues/2900 // See: https://github.com/mastodon/mastodon/issues/2900
this.setState((prevState) => ({ isHidden: !prevState.isIntersecting })); this.setState((prevState) => ({ isHidden: !prevState.isIntersecting }));
} };
handleRef = (node) => { handleRef = (node) => {
this.node = node; this.node = node;
} };
render () { render () {
const { children, id, index, listLength, cachedHeight } = this.props; const { children, id, index, listLength, cachedHeight } = this.props;

@ -19,7 +19,7 @@ class LoadGap extends React.PureComponent {
handleClick = () => { handleClick = () => {
this.props.onClick(this.props.maxId); this.props.onClick(this.props.maxId);
} };
render () { render () {
const { disabled, intl } = this.props; const { disabled, intl } = this.props;

@ -8,11 +8,11 @@ export default class LoadMore extends React.PureComponent {
onClick: PropTypes.func, onClick: PropTypes.func,
disabled: PropTypes.bool, disabled: PropTypes.bool,
visible: PropTypes.bool, visible: PropTypes.bool,
} };
static defaultProps = { static defaultProps = {
visible: true, visible: true,
} };
render() { render() {
const { disabled, visible } = this.props; const { disabled, visible } = this.props;

@ -7,7 +7,7 @@ export default class LoadPending extends React.PureComponent {
static propTypes = { static propTypes = {
onClick: PropTypes.func, onClick: PropTypes.func,
count: PropTypes.number, count: PropTypes.number,
} };
render() { render() {
const { count } = this.props; const { count } = this.props;

@ -29,7 +29,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
return ( return (
<div className='media-gallery' style={{ height, width }} /> <div className='media-gallery' style={{ height, width }} />
); );
} };
renderLoadingVideoPlayer = () => { renderLoadingVideoPlayer = () => {
const { height, width } = this.props; const { height, width } = this.props;
@ -37,7 +37,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
return ( return (
<div className='video-player' style={{ height, width }} /> <div className='video-player' style={{ height, width }} />
); );
} };
renderLoadingAudioPlayer = () => { renderLoadingAudioPlayer = () => {
const { height, width } = this.props; const { height, width } = this.props;
@ -45,7 +45,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
return ( return (
<div className='audio-player' style={{ height, width }} /> <div className='audio-player' style={{ height, width }} />
); );
} };
render () { render () {
const { status, width, height } = this.props; const { status, width, height } = this.props;

@ -40,14 +40,14 @@ class Item extends React.PureComponent {
if (this.hoverToPlay()) { if (this.hoverToPlay()) {
e.target.play(); e.target.play();
} }
} };
handleMouseLeave = (e) => { handleMouseLeave = (e) => {
if (this.hoverToPlay()) { if (this.hoverToPlay()) {
e.target.pause(); e.target.pause();
e.target.currentTime = 0; e.target.currentTime = 0;
} }
} };
getAutoPlay() { getAutoPlay() {
return this.props.autoplay || autoPlayGif; return this.props.autoplay || autoPlayGif;
@ -71,11 +71,11 @@ class Item extends React.PureComponent {
} }
e.stopPropagation(); e.stopPropagation();
} };
handleImageLoad = () => { handleImageLoad = () => {
this.setState({ loaded: true }); this.setState({ loaded: true });
} };
render () { render () {
const { attachment, index, size, standalone, displayWidth, visible } = this.props; const { attachment, index, size, standalone, displayWidth, visible } = this.props;
@ -277,11 +277,11 @@ class MediaGallery extends React.PureComponent {
} else { } else {
this.setState({ visible: !this.state.visible }); this.setState({ visible: !this.state.visible });
} }
} };
handleClick = (index) => { handleClick = (index) => {
this.props.onOpenMedia(this.props.media, index); this.props.onOpenMedia(this.props.media, index);
} };
handleRef = c => { handleRef = c => {
this.node = c; this.node = c;
@ -289,7 +289,7 @@ class MediaGallery extends React.PureComponent {
if (this.node) { if (this.node) {
this._setDimensions(); this._setDimensions();
} }
} };
_setDimensions () { _setDimensions () {
const width = this.node.offsetWidth; const width = this.node.offsetWidth;

@ -28,7 +28,7 @@ export default class ModalRoot extends React.PureComponent {
&& !!this.props.children) { && !!this.props.children) {
this.props.onClose(); this.props.onClose();
} }
} };
handleKeyDown = (e) => { handleKeyDown = (e) => {
if (e.key === 'Tab') { if (e.key === 'Tab') {
@ -49,7 +49,7 @@ export default class ModalRoot extends React.PureComponent {
e.preventDefault(); e.preventDefault();
} }
} }
} };
componentDidMount () { componentDidMount () {
window.addEventListener('keyup', this.handleKeyUp, false); window.addEventListener('keyup', this.handleKeyUp, false);
@ -122,11 +122,11 @@ export default class ModalRoot extends React.PureComponent {
getSiblings = () => { getSiblings = () => {
return Array(...this.node.parentElement.childNodes).filter(node => node !== this.node); return Array(...this.node.parentElement.childNodes).filter(node => node !== this.node);
} };
setRef = ref => { setRef = ref => {
this.node = ref; this.node = ref;
} };
render () { render () {
const { children, onClose } = this.props; const { children, onClose } = this.props;

@ -22,7 +22,7 @@ class PictureInPicturePlaceholder extends React.PureComponent {
handleClick = () => { handleClick = () => {
const { dispatch } = this.props; const { dispatch } = this.props;
dispatch(removePictureInPicture()); dispatch(removePictureInPicture());
} };
setRef = c => { setRef = c => {
this.node = c; this.node = c;
@ -30,7 +30,7 @@ class PictureInPicturePlaceholder extends React.PureComponent {
if (this.node) { if (this.node) {
this._setDimensions(); this._setDimensions();
} }
} };
_setDimensions () { _setDimensions () {
const width = this.node.offsetWidth; const width = this.node.offsetWidth;

@ -95,7 +95,7 @@ class Poll extends ImmutablePureComponent {
tmp[value] = true; tmp[value] = true;
this.setState({ selected: tmp }); this.setState({ selected: tmp });
} }
} };
handleOptionChange = ({ target: { value } }) => { handleOptionChange = ({ target: { value } }) => {
this._toggleOption(value); this._toggleOption(value);
@ -107,7 +107,7 @@ class Poll extends ImmutablePureComponent {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
} }
} };
handleVote = () => { handleVote = () => {
if (this.props.disabled) { if (this.props.disabled) {

@ -97,7 +97,7 @@ class ScrollableList extends PureComponent {
} else { } else {
return this.node; return this.node;
} }
} };
setScrollTop = newScrollTop => { setScrollTop = newScrollTop => {
if (this.getScrollTop() !== newScrollTop) { if (this.getScrollTop() !== newScrollTop) {
@ -143,7 +143,7 @@ class ScrollableList extends PureComponent {
this.mouseMovedRecently = false; this.mouseMovedRecently = false;
this.scrollToTopOnMouseIdle = false; this.scrollToTopOnMouseIdle = false;
} };
componentDidMount () { componentDidMount () {
this.attachScrollListener(); this.attachScrollListener();
@ -161,25 +161,25 @@ class ScrollableList extends PureComponent {
} else { } else {
return null; return null;
} }
} };
getScrollTop = () => { getScrollTop = () => {
return this._getScrollingElement().scrollTop; return this._getScrollingElement().scrollTop;
} };
getScrollHeight = () => { getScrollHeight = () => {
return this._getScrollingElement().scrollHeight; return this._getScrollingElement().scrollHeight;
} };
getClientHeight = () => { getClientHeight = () => {
return this._getScrollingElement().clientHeight; return this._getScrollingElement().clientHeight;
} };
updateScrollBottom = (snapshot) => { updateScrollBottom = (snapshot) => {
const newScrollTop = this.getScrollHeight() - snapshot; const newScrollTop = this.getScrollHeight() - snapshot;
this.setScrollTop(newScrollTop); this.setScrollTop(newScrollTop);
} };
getSnapshotBeforeUpdate (prevProps) { getSnapshotBeforeUpdate (prevProps) {
const someItemInserted = React.Children.count(prevProps.children) > 0 && const someItemInserted = React.Children.count(prevProps.children) > 0 &&
@ -206,7 +206,7 @@ class ScrollableList extends PureComponent {
if (width && this.state.cachedMediaWidth !== width) { if (width && this.state.cachedMediaWidth !== width) {
this.setState({ cachedMediaWidth: width }); this.setState({ cachedMediaWidth: width });
} }
} };
componentWillUnmount () { componentWillUnmount () {
this.clearMouseIdleTimer(); this.clearMouseIdleTimer();
@ -218,7 +218,7 @@ class ScrollableList extends PureComponent {
onFullScreenChange = () => { onFullScreenChange = () => {
this.setState({ fullscreen: isFullscreen() }); this.setState({ fullscreen: isFullscreen() });
} };
attachIntersectionObserver () { attachIntersectionObserver () {
let nodeOptions = { let nodeOptions = {
@ -269,12 +269,12 @@ class ScrollableList extends PureComponent {
setRef = (c) => { setRef = (c) => {
this.node = c; this.node = c;
} };
handleLoadMore = e => { handleLoadMore = e => {
e.preventDefault(); e.preventDefault();
this.props.onLoadMore(); this.props.onLoadMore();
} };
handleLoadPending = e => { handleLoadPending = e => {
e.preventDefault(); e.preventDefault();
@ -286,7 +286,7 @@ class ScrollableList extends PureComponent {
this.clearMouseIdleTimer(); this.clearMouseIdleTimer();
this.mouseIdleTimer = setTimeout(this.handleMouseIdle, MOUSE_IDLE_DELAY); this.mouseIdleTimer = setTimeout(this.handleMouseIdle, MOUSE_IDLE_DELAY);
this.mouseMovedRecently = true; this.mouseMovedRecently = true;
} };
render () { render () {
const { children, scrollKey, trackScroll, showLoading, isLoading, hasMore, numPending, prepend, alwaysPrepend, append, emptyMessage, onLoadMore } = this.props; const { children, scrollKey, trackScroll, showLoading, isLoading, hasMore, numPending, prepend, alwaysPrepend, append, emptyMessage, onLoadMore } = this.props;

@ -135,7 +135,7 @@ class Status extends ImmutablePureComponent {
handleToggleMediaVisibility = () => { handleToggleMediaVisibility = () => {
this.setState({ showMedia: !this.state.showMedia }); this.setState({ showMedia: !this.state.showMedia });
} };
handleClick = e => { handleClick = e => {
if (e && (e.button !== 0 || e.ctrlKey || e.metaKey)) { if (e && (e.button !== 0 || e.ctrlKey || e.metaKey)) {
@ -147,11 +147,11 @@ class Status extends ImmutablePureComponent {
} }
this.handleHotkeyOpen(); this.handleHotkeyOpen();
} };
handlePrependAccountClick = e => { handlePrependAccountClick = e => {
this.handleAccountClick(e, false); this.handleAccountClick(e, false);
} };
handleAccountClick = (e, proper = true) => { handleAccountClick = (e, proper = true) => {
if (e && (e.button !== 0 || e.ctrlKey || e.metaKey)) { if (e && (e.button !== 0 || e.ctrlKey || e.metaKey)) {
@ -163,19 +163,19 @@ class Status extends ImmutablePureComponent {
} }
this._openProfile(proper); this._openProfile(proper);
} };
handleExpandedToggle = () => { handleExpandedToggle = () => {
this.props.onToggleHidden(this._properStatus()); this.props.onToggleHidden(this._properStatus());
} };
handleCollapsedToggle = isCollapsed => { handleCollapsedToggle = isCollapsed => {
this.props.onToggleCollapsed(this._properStatus(), isCollapsed); this.props.onToggleCollapsed(this._properStatus(), isCollapsed);
} };
handleTranslate = () => { handleTranslate = () => {
this.props.onTranslate(this._properStatus()); this.props.onTranslate(this._properStatus());
} };
renderLoadingMediaGallery () { renderLoadingMediaGallery () {
return <div className='media-gallery' style={{ height: '110px' }} />; return <div className='media-gallery' style={{ height: '110px' }} />;
@ -192,11 +192,11 @@ class Status extends ImmutablePureComponent {
handleOpenVideo = (options) => { handleOpenVideo = (options) => {
const status = this._properStatus(); const status = this._properStatus();
this.props.onOpenVideo(status.get('id'), status.getIn(['media_attachments', 0]), options); this.props.onOpenVideo(status.get('id'), status.getIn(['media_attachments', 0]), options);
} };
handleOpenMedia = (media, index) => { handleOpenMedia = (media, index) => {
this.props.onOpenMedia(this._properStatus().get('id'), media, index); this.props.onOpenMedia(this._properStatus().get('id'), media, index);
} };
handleHotkeyOpenMedia = e => { handleHotkeyOpenMedia = e => {
const { onOpenMedia, onOpenVideo } = this.props; const { onOpenMedia, onOpenVideo } = this.props;
@ -211,32 +211,32 @@ class Status extends ImmutablePureComponent {
onOpenMedia(status.get('id'), status.get('media_attachments'), 0); onOpenMedia(status.get('id'), status.get('media_attachments'), 0);
} }
} }
} };
handleDeployPictureInPicture = (type, mediaProps) => { handleDeployPictureInPicture = (type, mediaProps) => {
const { deployPictureInPicture } = this.props; const { deployPictureInPicture } = this.props;
const status = this._properStatus(); const status = this._properStatus();
deployPictureInPicture(status, type, mediaProps); deployPictureInPicture(status, type, mediaProps);
} };
handleHotkeyReply = e => { handleHotkeyReply = e => {
e.preventDefault(); e.preventDefault();
this.props.onReply(this._properStatus(), this.context.router.history); this.props.onReply(this._properStatus(), this.context.router.history);
} };
handleHotkeyFavourite = () => { handleHotkeyFavourite = () => {
this.props.onFavourite(this._properStatus()); this.props.onFavourite(this._properStatus());
} };
handleHotkeyBoost = e => { handleHotkeyBoost = e => {
this.props.onReblog(this._properStatus(), e); this.props.onReblog(this._properStatus(), e);
} };
handleHotkeyMention = e => { handleHotkeyMention = e => {
e.preventDefault(); e.preventDefault();
this.props.onMention(this._properStatus().get('account'), this.context.router.history); this.props.onMention(this._properStatus().get('account'), this.context.router.history);
} };
handleHotkeyOpen = () => { handleHotkeyOpen = () => {
if (this.props.onClick) { if (this.props.onClick) {
@ -252,11 +252,11 @@ class Status extends ImmutablePureComponent {
} }
router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`);
} };
handleHotkeyOpenProfile = () => { handleHotkeyOpenProfile = () => {
this._openProfile(); this._openProfile();
} };
_openProfile = (proper = true) => { _openProfile = (proper = true) => {
const { router } = this.context; const { router } = this.context;
@ -267,32 +267,32 @@ class Status extends ImmutablePureComponent {
} }
router.history.push(`/@${status.getIn(['account', 'acct'])}`); router.history.push(`/@${status.getIn(['account', 'acct'])}`);
} };
handleHotkeyMoveUp = e => { handleHotkeyMoveUp = e => {
this.props.onMoveUp(this.props.status.get('id'), e.target.getAttribute('data-featured')); this.props.onMoveUp(this.props.status.get('id'), e.target.getAttribute('data-featured'));
} };
handleHotkeyMoveDown = e => { handleHotkeyMoveDown = e => {
this.props.onMoveDown(this.props.status.get('id'), e.target.getAttribute('data-featured')); this.props.onMoveDown(this.props.status.get('id'), e.target.getAttribute('data-featured'));
} };
handleHotkeyToggleHidden = () => { handleHotkeyToggleHidden = () => {
this.props.onToggleHidden(this._properStatus()); this.props.onToggleHidden(this._properStatus());
} };
handleHotkeyToggleSensitive = () => { handleHotkeyToggleSensitive = () => {
this.handleToggleMediaVisibility(); this.handleToggleMediaVisibility();
} };
handleUnfilterClick = e => { handleUnfilterClick = e => {
this.setState({ forceFilter: false }); this.setState({ forceFilter: false });
e.preventDefault(); e.preventDefault();
} };
handleFilterClick = () => { handleFilterClick = () => {
this.setState({ forceFilter: true }); this.setState({ forceFilter: true });
} };
_properStatus () { _properStatus () {
const { status } = this.props; const { status } = this.props;
@ -306,7 +306,7 @@ class Status extends ImmutablePureComponent {
handleRef = c => { handleRef = c => {
this.node = c; this.node = c;
} };
render () { render () {
let media = null; let media = null;

@ -97,7 +97,7 @@ class StatusActionBar extends ImmutablePureComponent {
'status', 'status',
'relationship', 'relationship',
'withDismiss', 'withDismiss',
] ];
handleReplyClick = () => { handleReplyClick = () => {
const { signedIn } = this.context.identity; const { signedIn } = this.context.identity;
@ -107,7 +107,7 @@ class StatusActionBar extends ImmutablePureComponent {
} else { } else {
this.props.onInteractionModal('reply', this.props.status); this.props.onInteractionModal('reply', this.props.status);
} }
} };
handleShareClick = () => { handleShareClick = () => {
navigator.share({ navigator.share({
@ -116,7 +116,7 @@ class StatusActionBar extends ImmutablePureComponent {
}).catch((e) => { }).catch((e) => {
if (e.name !== 'AbortError') console.error(e); if (e.name !== 'AbortError') console.error(e);
}); });
} };
handleFavouriteClick = () => { handleFavouriteClick = () => {
const { signedIn } = this.context.identity; const { signedIn } = this.context.identity;
@ -126,7 +126,7 @@ class StatusActionBar extends ImmutablePureComponent {
} else { } else {
this.props.onInteractionModal('favourite', this.props.status); this.props.onInteractionModal('favourite', this.props.status);
} }
} };
handleReblogClick = e => { handleReblogClick = e => {
const { signedIn } = this.context.identity; const { signedIn } = this.context.identity;
@ -136,35 +136,35 @@ class StatusActionBar extends ImmutablePureComponent {
} else { } else {
this.props.onInteractionModal('reblog', this.props.status); this.props.onInteractionModal('reblog', this.props.status);
} }
} };
handleBookmarkClick = () => { handleBookmarkClick = () => {
this.props.onBookmark(this.props.status); this.props.onBookmark(this.props.status);
} };
handleDeleteClick = () => { handleDeleteClick = () => {
this.props.onDelete(this.props.status, this.context.router.history); this.props.onDelete(this.props.status, this.context.router.history);
} };
handleRedraftClick = () => { handleRedraftClick = () => {
this.props.onDelete(this.props.status, this.context.router.history, true); this.props.onDelete(this.props.status, this.context.router.history, true);
} };
handleEditClick = () => { handleEditClick = () => {
this.props.onEdit(this.props.status, this.context.router.history); this.props.onEdit(this.props.status, this.context.router.history);
} };
handlePinClick = () => { handlePinClick = () => {
this.props.onPin(this.props.status); this.props.onPin(this.props.status);
} };
handleMentionClick = () => { handleMentionClick = () => {
this.props.onMention(this.props.status.get('account'), this.context.router.history); this.props.onMention(this.props.status.get('account'), this.context.router.history);
} };
handleDirectClick = () => { handleDirectClick = () => {
this.props.onDirect(this.props.status.get('account'), this.context.router.history); this.props.onDirect(this.props.status.get('account'), this.context.router.history);
} };
handleMuteClick = () => { handleMuteClick = () => {
const { status, relationship, onMute, onUnmute } = this.props; const { status, relationship, onMute, onUnmute } = this.props;
@ -175,7 +175,7 @@ class StatusActionBar extends ImmutablePureComponent {
} else { } else {
onMute(account); onMute(account);
} }
} };
handleBlockClick = () => { handleBlockClick = () => {
const { status, relationship, onBlock, onUnblock } = this.props; const { status, relationship, onBlock, onUnblock } = this.props;
@ -186,50 +186,50 @@ class StatusActionBar extends ImmutablePureComponent {
} else { } else {
onBlock(status); onBlock(status);
} }
} };
handleBlockDomain = () => { handleBlockDomain = () => {
const { status, onBlockDomain } = this.props; const { status, onBlockDomain } = this.props;
const account = status.get('account'); const account = status.get('account');
onBlockDomain(account.get('acct').split('@')[1]); onBlockDomain(account.get('acct').split('@')[1]);
} };
handleUnblockDomain = () => { handleUnblockDomain = () => {
const { status, onUnblockDomain } = this.props; const { status, onUnblockDomain } = this.props;
const account = status.get('account'); const account = status.get('account');
onUnblockDomain(account.get('acct').split('@')[1]); onUnblockDomain(account.get('acct').split('@')[1]);
} };
handleOpen = () => { handleOpen = () => {
this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}/${this.props.status.get('id')}`); this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}/${this.props.status.get('id')}`);
} };
handleEmbed = () => { handleEmbed = () => {
this.props.onEmbed(this.props.status); this.props.onEmbed(this.props.status);
} };
handleReport = () => { handleReport = () => {
this.props.onReport(this.props.status); this.props.onReport(this.props.status);
} };
handleConversationMuteClick = () => { handleConversationMuteClick = () => {
this.props.onMuteConversation(this.props.status); this.props.onMuteConversation(this.props.status);
} };
handleFilterClick = () => { handleFilterClick = () => {
this.props.onAddFilter(this.props.status); this.props.onAddFilter(this.props.status);
} };
handleCopy = () => { handleCopy = () => {
const url = this.props.status.get('url'); const url = this.props.status.get('url');
navigator.clipboard.writeText(url); navigator.clipboard.writeText(url);
} };
handleHideClick = () => { handleHideClick = () => {
this.props.onFilter(); this.props.onFilter();
} };
render () { render () {
const { status, relationship, intl, withDismiss, withCounters, scrollKey } = this.props; const { status, relationship, intl, withDismiss, withCounters, scrollKey } = this.props;

@ -130,7 +130,7 @@ class StatusContent extends React.PureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-original'); emoji.src = emoji.getAttribute('data-original');
} }
} };
handleMouseLeave = ({ currentTarget }) => { handleMouseLeave = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -143,7 +143,7 @@ class StatusContent extends React.PureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-static'); emoji.src = emoji.getAttribute('data-static');
} }
} };
componentDidMount () { componentDidMount () {
this._updateStatusLinks(); this._updateStatusLinks();
@ -158,7 +158,7 @@ class StatusContent extends React.PureComponent {
e.preventDefault(); e.preventDefault();
this.context.router.history.push(`/@${mention.get('acct')}`); this.context.router.history.push(`/@${mention.get('acct')}`);
} }
} };
onHashtagClick = (hashtag, e) => { onHashtagClick = (hashtag, e) => {
hashtag = hashtag.replace(/^#/, ''); hashtag = hashtag.replace(/^#/, '');
@ -167,11 +167,11 @@ class StatusContent extends React.PureComponent {
e.preventDefault(); e.preventDefault();
this.context.router.history.push(`/tags/${hashtag}`); this.context.router.history.push(`/tags/${hashtag}`);
} }
} };
handleMouseDown = (e) => { handleMouseDown = (e) => {
this.startXY = [e.clientX, e.clientY]; this.startXY = [e.clientX, e.clientY];
} };
handleMouseUp = (e) => { handleMouseUp = (e) => {
if (!this.startXY) { if (!this.startXY) {
@ -194,7 +194,7 @@ class StatusContent extends React.PureComponent {
} }
this.startXY = null; this.startXY = null;
} };
handleSpoilerClick = (e) => { handleSpoilerClick = (e) => {
e.preventDefault(); e.preventDefault();
@ -205,15 +205,15 @@ class StatusContent extends React.PureComponent {
} else { } else {
this.setState({ hidden: !this.state.hidden }); this.setState({ hidden: !this.state.hidden });
} }
} };
handleTranslate = () => { handleTranslate = () => {
this.props.onTranslate(); this.props.onTranslate();
} };
setRef = (c) => { setRef = (c) => {
this.node = c; this.node = c;
} };
render () { render () {
const { status, intl } = this.props; const { status, intl } = this.props;

@ -34,7 +34,7 @@ export default class StatusList extends ImmutablePureComponent {
getFeaturedStatusCount = () => { getFeaturedStatusCount = () => {
return this.props.featuredStatusIds ? this.props.featuredStatusIds.size : 0; return this.props.featuredStatusIds ? this.props.featuredStatusIds.size : 0;
} };
getCurrentStatusIndex = (id, featured) => { getCurrentStatusIndex = (id, featured) => {
if (featured) { if (featured) {
@ -42,21 +42,21 @@ export default class StatusList extends ImmutablePureComponent {
} else { } else {
return this.props.statusIds.indexOf(id) + this.getFeaturedStatusCount(); return this.props.statusIds.indexOf(id) + this.getFeaturedStatusCount();
} }
} };
handleMoveUp = (id, featured) => { handleMoveUp = (id, featured) => {
const elementIndex = this.getCurrentStatusIndex(id, featured) - 1; const elementIndex = this.getCurrentStatusIndex(id, featured) - 1;
this._selectChild(elementIndex, true); this._selectChild(elementIndex, true);
} };
handleMoveDown = (id, featured) => { handleMoveDown = (id, featured) => {
const elementIndex = this.getCurrentStatusIndex(id, featured) + 1; const elementIndex = this.getCurrentStatusIndex(id, featured) + 1;
this._selectChild(elementIndex, false); this._selectChild(elementIndex, false);
} };
handleLoadOlder = debounce(() => { handleLoadOlder = debounce(() => {
this.props.onLoadMore(this.props.statusIds.size > 0 ? this.props.statusIds.last() : undefined); this.props.onLoadMore(this.props.statusIds.size > 0 ? this.props.statusIds.last() : undefined);
}, 300, { leading: true }) }, 300, { leading: true });
_selectChild (index, align_top) { _selectChild (index, align_top) {
const container = this.node.node; const container = this.node.node;
@ -74,7 +74,7 @@ export default class StatusList extends ImmutablePureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
render () { render () {
const { statusIds, featuredStatusIds, onLoadMore, timelineId, ...other } = this.props; const { statusIds, featuredStatusIds, onLoadMore, timelineId, ...other } = this.props;

@ -39,7 +39,7 @@ export default class MediaContainer extends PureComponent {
document.documentElement.style.marginRight = `${getScrollbarWidth()}px`; document.documentElement.style.marginRight = `${getScrollbarWidth()}px`;
this.setState({ media, index }); this.setState({ media, index });
} };
handleOpenVideo = (options) => { handleOpenVideo = (options) => {
const { components } = this.props; const { components } = this.props;
@ -50,7 +50,7 @@ export default class MediaContainer extends PureComponent {
document.documentElement.style.marginRight = `${getScrollbarWidth()}px`; document.documentElement.style.marginRight = `${getScrollbarWidth()}px`;
this.setState({ media: mediaList, options }); this.setState({ media: mediaList, options });
} };
handleCloseMedia = () => { handleCloseMedia = () => {
document.body.classList.remove('with-modals--active'); document.body.classList.remove('with-modals--active');
@ -63,11 +63,11 @@ export default class MediaContainer extends PureComponent {
backgroundColor: null, backgroundColor: null,
options: null, options: null,
}); });
} };
setBackgroundColor = color => { setBackgroundColor = color => {
this.setState({ backgroundColor: color }); this.setState({ backgroundColor: color });
} };
render () { render () {
const { locale, components } = this.props; const { locale, components } = this.props;

@ -59,7 +59,7 @@ class Section extends React.PureComponent {
const { collapsed } = this.state; const { collapsed } = this.state;
this.setState({ collapsed: !collapsed }, () => onOpen && onOpen()); this.setState({ collapsed: !collapsed }, () => onOpen && onOpen());
} };
render () { render () {
const { title, children } = this.props; const { title, children } = this.props;
@ -106,7 +106,7 @@ class About extends React.PureComponent {
handleDomainBlocksOpen = () => { handleDomainBlocksOpen = () => {
const { dispatch } = this.props; const { dispatch } = this.props;
dispatch(fetchDomainBlocks()); dispatch(fetchDomainBlocks());
} };
render () { render () {
const { multiColumn, intl, server, extendedDescription, domainBlocks } = this.props; const { multiColumn, intl, server, extendedDescription, domainBlocks } = this.props;

@ -90,7 +90,7 @@ class AccountNote extends ImmutablePureComponent {
setTextareaRef = c => { setTextareaRef = c => {
this.textarea = c; this.textarea = c;
} };
handleChange = e => { handleChange = e => {
this.setState({ value: e.target.value, saving: false }); this.setState({ value: e.target.value, saving: false });
@ -114,13 +114,13 @@ class AccountNote extends ImmutablePureComponent {
} }
}); });
} }
} };
handleBlur = () => { handleBlur = () => {
if (this._isDirty()) { if (this._isDirty()) {
this._save(); this._save();
} }
} };
_save (showMessage = true) { _save (showMessage = true) {
this.setState({ saving: true }, () => this.props.onSave(this.state.value)); this.setState({ saving: true }, () => this.props.onSave(this.state.value));

@ -109,7 +109,7 @@ class Header extends ImmutablePureComponent {
openEditProfile = () => { openEditProfile = () => {
window.open('/settings/profile', '_blank'); window.open('/settings/profile', '_blank');
} };
isStatusesPageActive = (match, location) => { isStatusesPageActive = (match, location) => {
if (!match) { if (!match) {
@ -117,7 +117,7 @@ class Header extends ImmutablePureComponent {
} }
return !location.pathname.match(/\/(followers|following)\/?$/); return !location.pathname.match(/\/(followers|following)\/?$/);
} };
handleMouseEnter = ({ currentTarget }) => { handleMouseEnter = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -130,7 +130,7 @@ class Header extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-original'); emoji.src = emoji.getAttribute('data-original');
} }
} };
handleMouseLeave = ({ currentTarget }) => { handleMouseLeave = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -143,14 +143,14 @@ class Header extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-static'); emoji.src = emoji.getAttribute('data-static');
} }
} };
handleAvatarClick = e => { handleAvatarClick = e => {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault(); e.preventDefault();
this.props.onOpenAvatar(); this.props.onOpenAvatar();
} }
} };
handleShare = () => { handleShare = () => {
const { account } = this.props; const { account } = this.props;
@ -161,7 +161,7 @@ class Header extends ImmutablePureComponent {
}).catch((e) => { }).catch((e) => {
if (e.name !== 'AbortError') console.error(e); if (e.name !== 'AbortError') console.error(e);
}); });
} };
render () { render () {
const { account, hidden, intl, domain } = this.props; const { account, hidden, intl, domain } = this.props;

@ -22,20 +22,20 @@ export default class MediaItem extends ImmutablePureComponent {
handleImageLoad = () => { handleImageLoad = () => {
this.setState({ loaded: true }); this.setState({ loaded: true });
} };
handleMouseEnter = e => { handleMouseEnter = e => {
if (this.hoverToPlay()) { if (this.hoverToPlay()) {
e.target.play(); e.target.play();
} }
} };
handleMouseLeave = e => { handleMouseLeave = e => {
if (this.hoverToPlay()) { if (this.hoverToPlay()) {
e.target.pause(); e.target.pause();
e.target.currentTime = 0; e.target.currentTime = 0;
} }
} };
hoverToPlay () { hoverToPlay () {
return !autoPlayGif && ['gifv', 'video'].indexOf(this.props.attachment.get('type')) !== -1; return !autoPlayGif && ['gifv', 'video'].indexOf(this.props.attachment.get('type')) !== -1;
@ -51,7 +51,7 @@ export default class MediaItem extends ImmutablePureComponent {
this.setState({ visible: true }); this.setState({ visible: true });
} }
} }
} };
render () { render () {
const { attachment, displayWidth } = this.props; const { attachment, displayWidth } = this.props;

@ -47,7 +47,7 @@ class LoadMoreMedia extends ImmutablePureComponent {
handleLoadMore = () => { handleLoadMore = () => {
this.props.onLoadMore(this.props.maxId); this.props.onLoadMore(this.props.maxId);
} };
render () { render () {
return ( return (
@ -114,7 +114,7 @@ class AccountGallery extends ImmutablePureComponent {
if (this.props.hasMore) { if (this.props.hasMore) {
this.handleLoadMore(this.props.attachments.size > 0 ? this.props.attachments.last().getIn(['status', 'id']) : undefined); this.handleLoadMore(this.props.attachments.size > 0 ? this.props.attachments.last().getIn(['status', 'id']) : undefined);
} }
} };
handleScroll = e => { handleScroll = e => {
const { scrollTop, scrollHeight, clientHeight } = e.target; const { scrollTop, scrollHeight, clientHeight } = e.target;
@ -123,7 +123,7 @@ class AccountGallery extends ImmutablePureComponent {
if (150 > offset && !this.props.isLoading) { if (150 > offset && !this.props.isLoading) {
this.handleScrollToBottom(); this.handleScrollToBottom();
} }
} };
handleLoadMore = maxId => { handleLoadMore = maxId => {
this.props.dispatch(expandAccountMediaTimeline(this.props.accountId, { maxId })); this.props.dispatch(expandAccountMediaTimeline(this.props.accountId, { maxId }));
@ -132,7 +132,7 @@ class AccountGallery extends ImmutablePureComponent {
handleLoadOlder = e => { handleLoadOlder = e => {
e.preventDefault(); e.preventDefault();
this.handleScrollToBottom(); this.handleScrollToBottom();
} };
handleOpenMedia = attachment => { handleOpenMedia = attachment => {
const { dispatch } = this.props; const { dispatch } = this.props;
@ -148,13 +148,13 @@ class AccountGallery extends ImmutablePureComponent {
dispatch(openModal('MEDIA', { media, index, statusId })); dispatch(openModal('MEDIA', { media, index, statusId }));
} }
} };
handleRef = c => { handleRef = c => {
if (c) { if (c) {
this.setState({ width: c.offsetWidth }); this.setState({ width: c.offsetWidth });
} }
} };
render () { render () {
const { attachments, isLoading, hasMore, isAccount, multiColumn, blockedBy, suspended } = this.props; const { attachments, isLoading, hasMore, isAccount, multiColumn, blockedBy, suspended } = this.props;

@ -36,35 +36,35 @@ export default class Header extends ImmutablePureComponent {
handleFollow = () => { handleFollow = () => {
this.props.onFollow(this.props.account); this.props.onFollow(this.props.account);
} };
handleBlock = () => { handleBlock = () => {
this.props.onBlock(this.props.account); this.props.onBlock(this.props.account);
} };
handleMention = () => { handleMention = () => {
this.props.onMention(this.props.account, this.context.router.history); this.props.onMention(this.props.account, this.context.router.history);
} };
handleDirect = () => { handleDirect = () => {
this.props.onDirect(this.props.account, this.context.router.history); this.props.onDirect(this.props.account, this.context.router.history);
} };
handleReport = () => { handleReport = () => {
this.props.onReport(this.props.account); this.props.onReport(this.props.account);
} };
handleReblogToggle = () => { handleReblogToggle = () => {
this.props.onReblogToggle(this.props.account); this.props.onReblogToggle(this.props.account);
} };
handleNotifyToggle = () => { handleNotifyToggle = () => {
this.props.onNotifyToggle(this.props.account); this.props.onNotifyToggle(this.props.account);
} };
handleMute = () => { handleMute = () => {
this.props.onMute(this.props.account); this.props.onMute(this.props.account);
} };
handleBlockDomain = () => { handleBlockDomain = () => {
const domain = this.props.account.get('acct').split('@')[1]; const domain = this.props.account.get('acct').split('@')[1];
@ -72,7 +72,7 @@ export default class Header extends ImmutablePureComponent {
if (!domain) return; if (!domain) return;
this.props.onBlockDomain(domain); this.props.onBlockDomain(domain);
} };
handleUnblockDomain = () => { handleUnblockDomain = () => {
const domain = this.props.account.get('acct').split('@')[1]; const domain = this.props.account.get('acct').split('@')[1];
@ -80,31 +80,31 @@ export default class Header extends ImmutablePureComponent {
if (!domain) return; if (!domain) return;
this.props.onUnblockDomain(domain); this.props.onUnblockDomain(domain);
} };
handleEndorseToggle = () => { handleEndorseToggle = () => {
this.props.onEndorseToggle(this.props.account); this.props.onEndorseToggle(this.props.account);
} };
handleAddToList = () => { handleAddToList = () => {
this.props.onAddToList(this.props.account); this.props.onAddToList(this.props.account);
} };
handleEditAccountNote = () => { handleEditAccountNote = () => {
this.props.onEditAccountNote(this.props.account); this.props.onEditAccountNote(this.props.account);
} };
handleChangeLanguages = () => { handleChangeLanguages = () => {
this.props.onChangeLanguages(this.props.account); this.props.onChangeLanguages(this.props.account);
} };
handleInteractionModal = () => { handleInteractionModal = () => {
this.props.onInteractionModal(this.props.account); this.props.onInteractionModal(this.props.account);
} };
handleOpenAvatar = () => { handleOpenAvatar = () => {
this.props.onOpenAvatar(this.props.account); this.props.onOpenAvatar(this.props.account);
} };
render () { render () {
const { account, hidden, hideTabs } = this.props; const { account, hidden, hideTabs } = this.props;

@ -20,7 +20,7 @@ class LimitedAccountHint extends React.PureComponent {
static propTypes = { static propTypes = {
accountId: PropTypes.string.isRequired, accountId: PropTypes.string.isRequired,
reveal: PropTypes.func, reveal: PropTypes.func,
} };
render () { render () {
const { reveal } = this.props; const { reveal } = this.props;

@ -145,7 +145,7 @@ class AccountTimeline extends ImmutablePureComponent {
handleLoadMore = maxId => { handleLoadMore = maxId => {
this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies, tagged: this.props.params.tagged })); this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies, tagged: this.props.params.tagged }));
} };
render () { render () {
const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props; const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props;

@ -75,7 +75,7 @@ class Audio extends React.PureComponent {
if (this.player) { if (this.player) {
this._setDimensions(); this._setDimensions();
} }
} };
_pack() { _pack() {
return { return {
@ -105,11 +105,11 @@ class Audio extends React.PureComponent {
setSeekRef = c => { setSeekRef = c => {
this.seek = c; this.seek = c;
} };
setVolumeRef = c => { setVolumeRef = c => {
this.volume = c; this.volume = c;
} };
setAudioRef = c => { setAudioRef = c => {
this.audio = c; this.audio = c;
@ -118,13 +118,13 @@ class Audio extends React.PureComponent {
this.audio.volume = 1; this.audio.volume = 1;
this.audio.muted = false; this.audio.muted = false;
} }
} };
setCanvasRef = c => { setCanvasRef = c => {
this.canvas = c; this.canvas = c;
this.visualizer.setCanvas(c); this.visualizer.setCanvas(c);
} };
componentDidMount () { componentDidMount () {
window.addEventListener('scroll', this.handleScroll); window.addEventListener('scroll', this.handleScroll);
@ -163,7 +163,7 @@ class Audio extends React.PureComponent {
} else { } else {
this.setState({ paused: true }, () => this.audio.pause()); this.setState({ paused: true }, () => this.audio.pause());
} }
} };
handleResize = debounce(() => { handleResize = debounce(() => {
if (this.player) { if (this.player) {
@ -181,7 +181,7 @@ class Audio extends React.PureComponent {
} }
this._renderCanvas(); this._renderCanvas();
} };
handlePause = () => { handlePause = () => {
this.setState({ paused: true }); this.setState({ paused: true });
@ -189,7 +189,7 @@ class Audio extends React.PureComponent {
if (this.audioContext) { if (this.audioContext) {
this.audioContext.suspend(); this.audioContext.suspend();
} }
} };
handleProgress = () => { handleProgress = () => {
const lastTimeRange = this.audio.buffered.length - 1; const lastTimeRange = this.audio.buffered.length - 1;
@ -197,7 +197,7 @@ class Audio extends React.PureComponent {
if (lastTimeRange > -1) { if (lastTimeRange > -1) {
this.setState({ buffer: Math.ceil(this.audio.buffered.end(lastTimeRange) / this.audio.duration * 100) }); this.setState({ buffer: Math.ceil(this.audio.buffered.end(lastTimeRange) / this.audio.duration * 100) });
} }
} };
toggleMute = () => { toggleMute = () => {
const muted = !this.state.muted; const muted = !this.state.muted;
@ -207,7 +207,7 @@ class Audio extends React.PureComponent {
this.gainNode.gain.value = muted ? 0 : this.state.volume; this.gainNode.gain.value = muted ? 0 : this.state.volume;
} }
}); });
} };
toggleReveal = () => { toggleReveal = () => {
if (this.props.onToggleVisibility) { if (this.props.onToggleVisibility) {
@ -215,7 +215,7 @@ class Audio extends React.PureComponent {
} else { } else {
this.setState({ revealed: !this.state.revealed }); this.setState({ revealed: !this.state.revealed });
} }
} };
handleVolumeMouseDown = e => { handleVolumeMouseDown = e => {
document.addEventListener('mousemove', this.handleMouseVolSlide, true); document.addEventListener('mousemove', this.handleMouseVolSlide, true);
@ -227,14 +227,14 @@ class Audio extends React.PureComponent {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
} };
handleVolumeMouseUp = () => { handleVolumeMouseUp = () => {
document.removeEventListener('mousemove', this.handleMouseVolSlide, true); document.removeEventListener('mousemove', this.handleMouseVolSlide, true);
document.removeEventListener('mouseup', this.handleVolumeMouseUp, true); document.removeEventListener('mouseup', this.handleVolumeMouseUp, true);
document.removeEventListener('touchmove', this.handleMouseVolSlide, true); document.removeEventListener('touchmove', this.handleMouseVolSlide, true);
document.removeEventListener('touchend', this.handleVolumeMouseUp, true); document.removeEventListener('touchend', this.handleVolumeMouseUp, true);
} };
handleMouseDown = e => { handleMouseDown = e => {
document.addEventListener('mousemove', this.handleMouseMove, true); document.addEventListener('mousemove', this.handleMouseMove, true);
@ -248,7 +248,7 @@ class Audio extends React.PureComponent {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
} };
handleMouseUp = () => { handleMouseUp = () => {
document.removeEventListener('mousemove', this.handleMouseMove, true); document.removeEventListener('mousemove', this.handleMouseMove, true);
@ -258,7 +258,7 @@ class Audio extends React.PureComponent {
this.setState({ dragging: false }); this.setState({ dragging: false });
this.audio.play(); this.audio.play();
} };
handleMouseMove = throttle(e => { handleMouseMove = throttle(e => {
const { x } = getPointerPosition(this.seek, e); const { x } = getPointerPosition(this.seek, e);
@ -276,7 +276,7 @@ class Audio extends React.PureComponent {
currentTime: this.audio.currentTime, currentTime: this.audio.currentTime,
duration: this.audio.duration, duration: this.audio.duration,
}); });
} };
handleMouseVolSlide = throttle(e => { handleMouseVolSlide = throttle(e => {
const { x } = getPointerPosition(this.volume, e); const { x } = getPointerPosition(this.volume, e);
@ -311,11 +311,11 @@ class Audio extends React.PureComponent {
handleMouseEnter = () => { handleMouseEnter = () => {
this.setState({ hovered: true }); this.setState({ hovered: true });
} };
handleMouseLeave = () => { handleMouseLeave = () => {
this.setState({ hovered: false }); this.setState({ hovered: false });
} };
handleLoadedData = () => { handleLoadedData = () => {
const { autoPlay, currentTime } = this.props; const { autoPlay, currentTime } = this.props;
@ -327,7 +327,7 @@ class Audio extends React.PureComponent {
if (autoPlay) { if (autoPlay) {
this.togglePlay(); this.togglePlay();
} }
} };
_initAudioContext () { _initAudioContext () {
const AudioContext = window.AudioContext || window.webkitAudioContext; const AudioContext = window.AudioContext || window.webkitAudioContext;
@ -361,7 +361,7 @@ class Audio extends React.PureComponent {
}).catch(err => { }).catch(err => {
console.error(err); console.error(err);
}); });
} };
_renderCanvas () { _renderCanvas () {
requestAnimationFrame(() => { requestAnimationFrame(() => {
@ -432,7 +432,7 @@ class Audio extends React.PureComponent {
e.stopPropagation(); e.stopPropagation();
this.togglePlay(); this.togglePlay();
} }
} };
handleKeyDown = e => { handleKeyDown = e => {
switch(e.key) { switch(e.key) {
@ -457,7 +457,7 @@ class Audio extends React.PureComponent {
this.seekBy(10); this.seekBy(10);
break; break;
} }
} };
render () { render () {
const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props; const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props;

@ -48,24 +48,24 @@ class Bookmarks extends ImmutablePureComponent {
} else { } else {
dispatch(addColumn('BOOKMARKS', {})); dispatch(addColumn('BOOKMARKS', {}));
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = debounce(() => { handleLoadMore = debounce(() => {
this.props.dispatch(expandBookmarkedStatuses()); this.props.dispatch(expandBookmarkedStatuses());
}, 300, { leading: true }) }, 300, { leading: true });
render () { render () {
const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props; const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;

@ -60,16 +60,16 @@ class CommunityTimeline extends React.PureComponent {
} else { } else {
dispatch(addColumn('COMMUNITY', { other: { onlyMedia } })); dispatch(addColumn('COMMUNITY', { other: { onlyMedia } }));
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
componentDidMount () { componentDidMount () {
const { dispatch, onlyMedia } = this.props; const { dispatch, onlyMedia } = this.props;
@ -109,13 +109,13 @@ class CommunityTimeline extends React.PureComponent {
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = maxId => { handleLoadMore = maxId => {
const { dispatch, onlyMedia } = this.props; const { dispatch, onlyMedia } = this.props;
dispatch(expandCommunityTimeline({ maxId, onlyMedia })); dispatch(expandCommunityTimeline({ maxId, onlyMedia }));
} };
render () { render () {
const { intl, hasUnread, columnId, multiColumn, onlyMedia } = this.props; const { intl, hasUnread, columnId, multiColumn, onlyMedia } = this.props;

@ -31,7 +31,7 @@ class ActionBar extends React.PureComponent {
handleLogout = () => { handleLogout = () => {
this.props.onLogout(); this.props.onLogout();
} };
render () { render () {
const { intl } = this.props; const { intl } = this.props;

@ -73,17 +73,17 @@ class ComposeForm extends ImmutablePureComponent {
handleChange = (e) => { handleChange = (e) => {
this.props.onChange(e.target.value); this.props.onChange(e.target.value);
} };
handleKeyDown = (e) => { handleKeyDown = (e) => {
if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) { if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) {
this.handleSubmit(); this.handleSubmit();
} }
} };
getFulltextForCharacterCounting = () => { getFulltextForCharacterCounting = () => {
return [this.props.spoiler? this.props.spoilerText: '', countableText(this.props.text)].join(''); return [this.props.spoiler? this.props.spoilerText: '', countableText(this.props.text)].join('');
} };
canSubmit = () => { canSubmit = () => {
const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props; const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props;
@ -91,7 +91,7 @@ class ComposeForm extends ImmutablePureComponent {
const isOnlyWhitespace = fulltext.length !== 0 && fulltext.trim().length === 0; const isOnlyWhitespace = fulltext.length !== 0 && fulltext.trim().length === 0;
return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (isOnlyWhitespace && !anyMedia)); return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (isOnlyWhitespace && !anyMedia));
} };
handleSubmit = (e) => { handleSubmit = (e) => {
if (this.props.text !== this.autosuggestTextarea.textarea.value) { if (this.props.text !== this.autosuggestTextarea.textarea.value) {
@ -109,27 +109,27 @@ class ComposeForm extends ImmutablePureComponent {
if (e) { if (e) {
e.preventDefault(); e.preventDefault();
} }
} };
onSuggestionsClearRequested = () => { onSuggestionsClearRequested = () => {
this.props.onClearSuggestions(); this.props.onClearSuggestions();
} };
onSuggestionsFetchRequested = (token) => { onSuggestionsFetchRequested = (token) => {
this.props.onFetchSuggestions(token); this.props.onFetchSuggestions(token);
} };
onSuggestionSelected = (tokenStart, token, value) => { onSuggestionSelected = (tokenStart, token, value) => {
this.props.onSuggestionSelected(tokenStart, token, value, ['text']); this.props.onSuggestionSelected(tokenStart, token, value, ['text']);
} };
onSpoilerSuggestionSelected = (tokenStart, token, value) => { onSpoilerSuggestionSelected = (tokenStart, token, value) => {
this.props.onSuggestionSelected(tokenStart, token, value, ['spoiler_text']); this.props.onSuggestionSelected(tokenStart, token, value, ['spoiler_text']);
} };
handleChangeSpoilerText = (e) => { handleChangeSpoilerText = (e) => {
this.props.onChangeSpoilerText(e.target.value); this.props.onChangeSpoilerText(e.target.value);
} };
handleFocus = () => { handleFocus = () => {
if (this.composeForm && !this.props.singleColumn) { if (this.composeForm && !this.props.singleColumn) {
@ -138,7 +138,7 @@ class ComposeForm extends ImmutablePureComponent {
this.composeForm.scrollIntoView(); this.composeForm.scrollIntoView();
} }
} }
} };
componentDidMount () { componentDidMount () {
this._updateFocusAndSelection({ }); this._updateFocusAndSelection({ });
@ -184,15 +184,15 @@ class ComposeForm extends ImmutablePureComponent {
this.autosuggestTextarea.textarea.focus(); this.autosuggestTextarea.textarea.focus();
} }
} }
} };
setAutosuggestTextarea = (c) => { setAutosuggestTextarea = (c) => {
this.autosuggestTextarea = c; this.autosuggestTextarea = c;
} };
setSpoilerText = (c) => { setSpoilerText = (c) => {
this.spoilerText = c; this.spoilerText = c;
} };
setRef = c => { setRef = c => {
this.composeForm = c; this.composeForm = c;
@ -204,7 +204,7 @@ class ComposeForm extends ImmutablePureComponent {
const needsSpace = data.custom && position > 0 && !allowedAroundShortCode.includes(text[position - 1]); const needsSpace = data.custom && position > 0 && !allowedAroundShortCode.includes(text[position - 1]);
this.props.onPickEmoji(position, data, needsSpace); this.props.onPickEmoji(position, data, needsSpace);
} };
render () { render () {
const { intl, onPaste, autoFocus } = this.props; const { intl, onPaste, autoFocus } = this.props;

@ -57,7 +57,7 @@ class ModifierPickerMenu extends React.PureComponent {
handleClick = e => { handleClick = e => {
this.props.onSelect(e.currentTarget.getAttribute('data-index') * 1); this.props.onSelect(e.currentTarget.getAttribute('data-index') * 1);
} };
componentWillReceiveProps (nextProps) { componentWillReceiveProps (nextProps) {
if (nextProps.active) { if (nextProps.active) {
@ -75,7 +75,7 @@ class ModifierPickerMenu extends React.PureComponent {
if (this.node && !this.node.contains(e.target)) { if (this.node && !this.node.contains(e.target)) {
this.props.onClose(); this.props.onClose();
} }
} };
attachListeners () { attachListeners () {
document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('click', this.handleDocumentClick, false);
@ -89,7 +89,7 @@ class ModifierPickerMenu extends React.PureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
render () { render () {
const { active } = this.props; const { active } = this.props;
@ -124,12 +124,12 @@ class ModifierPicker extends React.PureComponent {
} else { } else {
this.props.onOpen(); this.props.onOpen();
} }
} };
handleSelect = modifier => { handleSelect = modifier => {
this.props.onChange(modifier); this.props.onChange(modifier);
this.props.onClose(); this.props.onClose();
} };
render () { render () {
const { active, modifier } = this.props; const { active, modifier } = this.props;
@ -174,7 +174,7 @@ class EmojiPickerMenu extends React.PureComponent {
if (this.node && !this.node.contains(e.target)) { if (this.node && !this.node.contains(e.target)) {
this.props.onClose(); this.props.onClose();
} }
} };
componentDidMount () { componentDidMount () {
document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('click', this.handleDocumentClick, false);
@ -198,7 +198,7 @@ class EmojiPickerMenu extends React.PureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
getI18n = () => { getI18n = () => {
const { intl } = this.props; const { intl } = this.props;
@ -219,7 +219,7 @@ class EmojiPickerMenu extends React.PureComponent {
custom: intl.formatMessage(messages.custom), custom: intl.formatMessage(messages.custom),
}, },
}; };
} };
handleClick = (emoji, event) => { handleClick = (emoji, event) => {
if (!emoji.native) { if (!emoji.native) {
@ -229,19 +229,19 @@ class EmojiPickerMenu extends React.PureComponent {
this.props.onClose(); this.props.onClose();
} }
this.props.onPick(emoji); this.props.onPick(emoji);
} };
handleModifierOpen = () => { handleModifierOpen = () => {
this.setState({ modifierOpen: true }); this.setState({ modifierOpen: true });
} };
handleModifierClose = () => { handleModifierClose = () => {
this.setState({ modifierOpen: false }); this.setState({ modifierOpen: false });
} };
handleModifierChange = modifier => { handleModifierChange = modifier => {
this.props.onSkinTone(modifier); this.props.onSkinTone(modifier);
} };
render () { render () {
const { loading, style, intl, custom_emojis, skinTone, frequentlyUsedEmojis } = this.props; const { loading, style, intl, custom_emojis, skinTone, frequentlyUsedEmojis } = this.props;
@ -325,7 +325,7 @@ class EmojiPickerDropdown extends React.PureComponent {
setRef = (c) => { setRef = (c) => {
this.dropdown = c; this.dropdown = c;
} };
onShowDropdown = () => { onShowDropdown = () => {
this.setState({ active: true }); this.setState({ active: true });
@ -342,11 +342,11 @@ class EmojiPickerDropdown extends React.PureComponent {
this.setState({ loading: false, active: false }); this.setState({ loading: false, active: false });
}); });
} }
} };
onHideDropdown = () => { onHideDropdown = () => {
this.setState({ active: false }); this.setState({ active: false });
} };
onToggle = (e) => { onToggle = (e) => {
if (!this.state.loading && (!e.key || e.key === 'Enter')) { if (!this.state.loading && (!e.key || e.key === 'Enter')) {
@ -356,21 +356,21 @@ class EmojiPickerDropdown extends React.PureComponent {
this.onShowDropdown(e); this.onShowDropdown(e);
} }
} }
} };
handleKeyDown = e => { handleKeyDown = e => {
if (e.key === 'Escape') { if (e.key === 'Escape') {
this.onHideDropdown(); this.onHideDropdown();
} }
} };
setTargetRef = c => { setTargetRef = c => {
this.target = c; this.target = c;
} };
findTarget = () => { findTarget = () => {
return this.target; return this.target;
} };
render () { render () {
const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis, button } = this.props; const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis, button } = this.props;

@ -40,7 +40,7 @@ class LanguageDropdownMenu extends React.PureComponent {
if (this.node && !this.node.contains(e.target)) { if (this.node && !this.node.contains(e.target)) {
this.props.onClose(); this.props.onClose();
} }
} };
componentDidMount () { componentDidMount () {
document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('click', this.handleDocumentClick, false);
@ -63,15 +63,15 @@ class LanguageDropdownMenu extends React.PureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
setListRef = c => { setListRef = c => {
this.listNode = c; this.listNode = c;
} };
handleSearchChange = ({ target }) => { handleSearchChange = ({ target }) => {
this.setState({ searchValue: target.value }); this.setState({ searchValue: target.value });
} };
search () { search () {
const { languages, value, frequentlyUsedLanguages } = this.props; const { languages, value, frequentlyUsedLanguages } = this.props;
@ -122,7 +122,7 @@ class LanguageDropdownMenu extends React.PureComponent {
this.props.onClose(); this.props.onClose();
this.props.onChange(value); this.props.onChange(value);
} };
handleKeyDown = e => { handleKeyDown = e => {
const { onClose } = this.props; const { onClose } = this.props;
@ -163,7 +163,7 @@ class LanguageDropdownMenu extends React.PureComponent {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
} }
} };
handleSearchKeyDown = e => { handleSearchKeyDown = e => {
const { onChange, onClose } = this.props; const { onChange, onClose } = this.props;
@ -199,11 +199,11 @@ class LanguageDropdownMenu extends React.PureComponent {
break; break;
} }
} };
handleClear = () => { handleClear = () => {
this.setState({ searchValue: '' }); this.setState({ searchValue: '' });
} };
renderItem = lang => { renderItem = lang => {
const { value } = this.props; const { value } = this.props;
@ -213,7 +213,7 @@ class LanguageDropdownMenu extends React.PureComponent {
<span className='language-dropdown__dropdown__results__item__native-name'>{lang[2]}</span> <span className='language-dropdown__dropdown__results__item__common-name'>({lang[1]})</span> <span className='language-dropdown__dropdown__results__item__native-name'>{lang[2]}</span> <span className='language-dropdown__dropdown__results__item__common-name'>({lang[1]})</span>
</div> </div>
); );
} };
render () { render () {
const { intl } = this.props; const { intl } = this.props;
@ -259,7 +259,7 @@ class LanguageDropdown extends React.PureComponent {
} }
this.setState({ open: !this.state.open }); this.setState({ open: !this.state.open });
} };
handleClose = () => { handleClose = () => {
const { value, onClose } = this.props; const { value, onClose } = this.props;
@ -270,24 +270,24 @@ class LanguageDropdown extends React.PureComponent {
this.setState({ open: false }); this.setState({ open: false });
onClose(value); onClose(value);
} };
handleChange = value => { handleChange = value => {
const { onChange } = this.props; const { onChange } = this.props;
onChange(value); onChange(value);
} };
setTargetRef = c => { setTargetRef = c => {
this.target = c; this.target = c;
} };
findTarget = () => { findTarget = () => {
return this.target; return this.target;
} };
handleOverlayEnter = (state) => { handleOverlayEnter = (state) => {
this.setState({ placement: state.placement }); this.setState({ placement: state.placement });
} };
render () { render () {
const { value, intl, frequentlyUsedLanguages } = this.props; const { value, intl, frequentlyUsedLanguages } = this.props;

@ -27,7 +27,7 @@ class PollButton extends React.PureComponent {
handleClick = () => { handleClick = () => {
this.props.onClick(); this.props.onClick();
} };
render () { render () {
const { intl, active, unavailable, disabled } = this.props; const { intl, active, unavailable, disabled } = this.props;

@ -58,19 +58,19 @@ class Option extends React.PureComponent {
if (e.key === 'Enter' || e.key === ' ') { if (e.key === 'Enter' || e.key === ' ') {
this.handleToggleMultiple(e); this.handleToggleMultiple(e);
} }
} };
onSuggestionsClearRequested = () => { onSuggestionsClearRequested = () => {
this.props.onClearSuggestions(); this.props.onClearSuggestions();
} };
onSuggestionsFetchRequested = (token) => { onSuggestionsFetchRequested = (token) => {
this.props.onFetchSuggestions(token); this.props.onFetchSuggestions(token);
} };
onSuggestionSelected = (tokenStart, token, value) => { onSuggestionSelected = (tokenStart, token, value) => {
this.props.onSuggestionSelected(tokenStart, token, value, ['poll', 'options', this.props.index]); this.props.onSuggestionSelected(tokenStart, token, value, ['poll', 'options', this.props.index]);
} };
render () { render () {
const { isPollMultiple, title, lang, index, autoFocus, intl } = this.props; const { isPollMultiple, title, lang, index, autoFocus, intl } = this.props;

@ -35,7 +35,7 @@ class PrivacyDropdownMenu extends React.PureComponent {
if (this.node && !this.node.contains(e.target)) { if (this.node && !this.node.contains(e.target)) {
this.props.onClose(); this.props.onClose();
} }
} };
handleKeyDown = e => { handleKeyDown = e => {
const { items } = this.props; const { items } = this.props;
@ -79,7 +79,7 @@ class PrivacyDropdownMenu extends React.PureComponent {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
} }
} };
handleClick = e => { handleClick = e => {
const value = e.currentTarget.getAttribute('data-index'); const value = e.currentTarget.getAttribute('data-index');
@ -88,7 +88,7 @@ class PrivacyDropdownMenu extends React.PureComponent {
this.props.onClose(); this.props.onClose();
this.props.onChange(value); this.props.onChange(value);
} };
componentDidMount () { componentDidMount () {
document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('click', this.handleDocumentClick, false);
@ -103,11 +103,11 @@ class PrivacyDropdownMenu extends React.PureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
setFocusRef = c => { setFocusRef = c => {
this.focusedItem = c; this.focusedItem = c;
} };
render () { render () {
const { style, items, value } = this.props; const { style, items, value } = this.props;
@ -168,7 +168,7 @@ class PrivacyDropdown extends React.PureComponent {
} }
this.setState({ open: !this.state.open }); this.setState({ open: !this.state.open });
} }
} };
handleModalActionClick = (e) => { handleModalActionClick = (e) => {
e.preventDefault(); e.preventDefault();
@ -177,7 +177,7 @@ class PrivacyDropdown extends React.PureComponent {
this.props.onModalClose(); this.props.onModalClose();
this.props.onChange(value); this.props.onChange(value);
} };
handleKeyDown = e => { handleKeyDown = e => {
switch(e.key) { switch(e.key) {
@ -185,13 +185,13 @@ class PrivacyDropdown extends React.PureComponent {
this.handleClose(); this.handleClose();
break; break;
} }
} };
handleMouseDown = () => { handleMouseDown = () => {
if (!this.state.open) { if (!this.state.open) {
this.activeElement = document.activeElement; this.activeElement = document.activeElement;
} }
} };
handleButtonKeyDown = (e) => { handleButtonKeyDown = (e) => {
switch(e.key) { switch(e.key) {
@ -200,18 +200,18 @@ class PrivacyDropdown extends React.PureComponent {
this.handleMouseDown(); this.handleMouseDown();
break; break;
} }
} };
handleClose = () => { handleClose = () => {
if (this.state.open && this.activeElement) { if (this.state.open && this.activeElement) {
this.activeElement.focus({ preventScroll: true }); this.activeElement.focus({ preventScroll: true });
} }
this.setState({ open: false }); this.setState({ open: false });
} };
handleChange = value => { handleChange = value => {
this.props.onChange(value); this.props.onChange(value);
} };
componentWillMount () { componentWillMount () {
const { intl: { formatMessage } } = this.props; const { intl: { formatMessage } } = this.props;
@ -231,15 +231,15 @@ class PrivacyDropdown extends React.PureComponent {
setTargetRef = c => { setTargetRef = c => {
this.target = c; this.target = c;
} };
findTarget = () => { findTarget = () => {
return this.target; return this.target;
} };
handleOverlayEnter = (state) => { handleOverlayEnter = (state) => {
this.setState({ placement: state.placement }); this.setState({ placement: state.placement });
} };
render () { render () {
const { value, container, disabled, intl } = this.props; const { value, container, disabled, intl } = this.props;

@ -27,14 +27,14 @@ class ReplyIndicator extends ImmutablePureComponent {
handleClick = () => { handleClick = () => {
this.props.onCancel(); this.props.onCancel();
} };
handleAccountClick = (e) => { handleAccountClick = (e) => {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault(); e.preventDefault();
this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`); this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`);
} }
} };
render () { render () {
const { status, intl } = this.props; const { status, intl } = this.props;

@ -58,11 +58,11 @@ class Search extends React.PureComponent {
setRef = c => { setRef = c => {
this.searchForm = c; this.searchForm = c;
} };
handleChange = (e) => { handleChange = (e) => {
this.props.onChange(e.target.value); this.props.onChange(e.target.value);
} };
handleClear = (e) => { handleClear = (e) => {
e.preventDefault(); e.preventDefault();
@ -70,7 +70,7 @@ class Search extends React.PureComponent {
if (this.props.value.length > 0 || this.props.submitted) { if (this.props.value.length > 0 || this.props.submitted) {
this.props.onClear(); this.props.onClear();
} }
} };
handleKeyUp = (e) => { handleKeyUp = (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@ -84,7 +84,7 @@ class Search extends React.PureComponent {
} else if (e.key === 'Escape') { } else if (e.key === 'Escape') {
document.querySelector('.ui').parentElement.focus(); document.querySelector('.ui').parentElement.focus();
} }
} };
handleFocus = () => { handleFocus = () => {
this.setState({ expanded: true }); this.setState({ expanded: true });
@ -96,15 +96,15 @@ class Search extends React.PureComponent {
this.searchForm.scrollIntoView(); this.searchForm.scrollIntoView();
} }
} }
} };
handleBlur = () => { handleBlur = () => {
this.setState({ expanded: false }); this.setState({ expanded: false });
} };
findTarget = () => { findTarget = () => {
return this.searchForm; return this.searchForm;
} };
render () { render () {
const { intl, value, submitted } = this.props; const { intl, value, submitted } = this.props;

@ -22,12 +22,12 @@ export default class Upload extends ImmutablePureComponent {
handleUndoClick = e => { handleUndoClick = e => {
e.stopPropagation(); e.stopPropagation();
this.props.onUndo(this.props.media.get('id')); this.props.onUndo(this.props.media.get('id'));
} };
handleFocalPointClick = e => { handleFocalPointClick = e => {
e.stopPropagation(); e.stopPropagation();
this.props.onOpenFocalPoint(this.props.media.get('id')); this.props.onOpenFocalPoint(this.props.media.get('id'));
} };
render () { render () {
const { media } = this.props; const { media } = this.props;

@ -41,15 +41,15 @@ class UploadButton extends ImmutablePureComponent {
if (e.target.files.length > 0) { if (e.target.files.length > 0) {
this.props.onSelectFile(e.target.files); this.props.onSelectFile(e.target.files);
} }
} };
handleClick = () => { handleClick = () => {
this.fileElement.click(); this.fileElement.click();
} };
setRef = (c) => { setRef = (c) => {
this.fileElement = c; this.fileElement = c;
} };
render () { render () {
const { intl, resetFileKey, unavailable, disabled, acceptContentTypes } = this.props; const { intl, resetFileKey, unavailable, disabled, acceptContentTypes } = this.props;

@ -74,15 +74,15 @@ class Compose extends React.PureComponent {
})); }));
return false; return false;
} };
onFocus = () => { onFocus = () => {
this.props.dispatch(changeComposing(true)); this.props.dispatch(changeComposing(true));
} };
onBlur = () => { onBlur = () => {
this.props.dispatch(changeComposing(false)); this.props.dispatch(changeComposing(false));
} };
render () { render () {
const { multiColumn, showSearch, intl } = this.props; const { multiColumn, showSearch, intl } = this.props;

@ -55,7 +55,7 @@ class Conversation extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-original'); emoji.src = emoji.getAttribute('data-original');
} }
} };
handleMouseLeave = ({ currentTarget }) => { handleMouseLeave = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -68,7 +68,7 @@ class Conversation extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-static'); emoji.src = emoji.getAttribute('data-static');
} }
} };
handleClick = () => { handleClick = () => {
if (!this.context.router) { if (!this.context.router) {
@ -82,35 +82,35 @@ class Conversation extends ImmutablePureComponent {
} }
this.context.router.history.push(`/@${lastStatus.getIn(['account', 'acct'])}/${lastStatus.get('id')}`); this.context.router.history.push(`/@${lastStatus.getIn(['account', 'acct'])}/${lastStatus.get('id')}`);
} };
handleMarkAsRead = () => { handleMarkAsRead = () => {
this.props.markRead(); this.props.markRead();
} };
handleReply = () => { handleReply = () => {
this.props.reply(this.props.lastStatus, this.context.router.history); this.props.reply(this.props.lastStatus, this.context.router.history);
} };
handleDelete = () => { handleDelete = () => {
this.props.delete(); this.props.delete();
} };
handleHotkeyMoveUp = () => { handleHotkeyMoveUp = () => {
this.props.onMoveUp(this.props.conversationId); this.props.onMoveUp(this.props.conversationId);
} };
handleHotkeyMoveDown = () => { handleHotkeyMoveDown = () => {
this.props.onMoveDown(this.props.conversationId); this.props.onMoveDown(this.props.conversationId);
} };
handleConversationMute = () => { handleConversationMute = () => {
this.props.onMute(this.props.lastStatus); this.props.onMute(this.props.lastStatus);
} };
handleShowMore = () => { handleShowMore = () => {
this.props.onToggleHidden(this.props.lastStatus); this.props.onToggleHidden(this.props.lastStatus);
} };
render () { render () {
const { accounts, lastStatus, unread, scrollKey, intl } = this.props; const { accounts, lastStatus, unread, scrollKey, intl } = this.props;

@ -16,17 +16,17 @@ export default class ConversationsList extends ImmutablePureComponent {
onLoadMore: PropTypes.func, onLoadMore: PropTypes.func,
}; };
getCurrentIndex = id => this.props.conversations.findIndex(x => x.get('id') === id) getCurrentIndex = id => this.props.conversations.findIndex(x => x.get('id') === id);
handleMoveUp = id => { handleMoveUp = id => {
const elementIndex = this.getCurrentIndex(id) - 1; const elementIndex = this.getCurrentIndex(id) - 1;
this._selectChild(elementIndex, true); this._selectChild(elementIndex, true);
} };
handleMoveDown = id => { handleMoveDown = id => {
const elementIndex = this.getCurrentIndex(id) + 1; const elementIndex = this.getCurrentIndex(id) + 1;
this._selectChild(elementIndex, false); this._selectChild(elementIndex, false);
} };
_selectChild (index, align_top) { _selectChild (index, align_top) {
const container = this.node.node; const container = this.node.node;
@ -44,7 +44,7 @@ export default class ConversationsList extends ImmutablePureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
handleLoadOlder = debounce(() => { handleLoadOlder = debounce(() => {
const last = this.props.conversations.last(); const last = this.props.conversations.last();
@ -52,7 +52,7 @@ export default class ConversationsList extends ImmutablePureComponent {
if (last && last.get('last_status')) { if (last && last.get('last_status')) {
this.props.onLoadMore(last.get('last_status')); this.props.onLoadMore(last.get('last_status'));
} }
}, 300, { leading: true }) }, 300, { leading: true });
render () { render () {
const { conversations, onLoadMore, ...other } = this.props; const { conversations, onLoadMore, ...other } = this.props;

@ -34,16 +34,16 @@ class DirectTimeline extends React.PureComponent {
} else { } else {
dispatch(addColumn('DIRECT', {})); dispatch(addColumn('DIRECT', {}));
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
componentDidMount () { componentDidMount () {
const { dispatch } = this.props; const { dispatch } = this.props;
@ -64,11 +64,11 @@ class DirectTimeline extends React.PureComponent {
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = maxId => { handleLoadMore = maxId => {
this.props.dispatch(expandConversations({ maxId })); this.props.dispatch(expandConversations({ maxId }));
} };
render () { render () {
const { intl, hasUnread, columnId, multiColumn } = this.props; const { intl, hasUnread, columnId, multiColumn } = this.props;

@ -115,7 +115,7 @@ class AccountCard extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-original'); emoji.src = emoji.getAttribute('data-original');
} }
} };
handleMouseLeave = ({ currentTarget }) => { handleMouseLeave = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -128,7 +128,7 @@ class AccountCard extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-static'); emoji.src = emoji.getAttribute('data-static');
} }
} };
handleFollow = () => { handleFollow = () => {
this.props.onFollow(this.props.account); this.props.onFollow(this.props.account);
@ -140,11 +140,11 @@ class AccountCard extends ImmutablePureComponent {
handleMute = () => { handleMute = () => {
this.props.onMute(this.props.account); this.props.onMute(this.props.account);
} };
handleEditProfile = () => { handleEditProfile = () => {
window.open('/settings/profile', '_blank'); window.open('/settings/profile', '_blank');
} };
render() { render() {
const { account, intl } = this.props; const { account, intl } = this.props;

@ -64,7 +64,7 @@ class Directory extends React.PureComponent {
} else { } else {
dispatch(addColumn('DIRECTORY', this.getParams(this.props, this.state))); dispatch(addColumn('DIRECTORY', this.getParams(this.props, this.state)));
} }
} };
getParams = (props, state) => ({ getParams = (props, state) => ({
order: state.order === null ? (props.params.order || 'active') : state.order, order: state.order === null ? (props.params.order || 'active') : state.order,
@ -74,11 +74,11 @@ class Directory extends React.PureComponent {
handleMove = dir => { handleMove = dir => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
componentDidMount () { componentDidMount () {
const { dispatch } = this.props; const { dispatch } = this.props;
@ -97,7 +97,7 @@ class Directory extends React.PureComponent {
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleChangeOrder = e => { handleChangeOrder = e => {
const { dispatch, columnId } = this.props; const { dispatch, columnId } = this.props;
@ -107,7 +107,7 @@ class Directory extends React.PureComponent {
} else { } else {
this.setState({ order: e.target.value }); this.setState({ order: e.target.value });
} }
} };
handleChangeLocal = e => { handleChangeLocal = e => {
const { dispatch, columnId } = this.props; const { dispatch, columnId } = this.props;
@ -117,12 +117,12 @@ class Directory extends React.PureComponent {
} else { } else {
this.setState({ local: e.target.value === '1' }); this.setState({ local: e.target.value === '1' });
} }
} };
handleLoadMore = () => { handleLoadMore = () => {
const { dispatch } = this.props; const { dispatch } = this.props;
dispatch(expandDirectory(this.getParams(this.props, this.state))); dispatch(expandDirectory(this.getParams(this.props, this.state)));
} };
render () { render () {
const { isLoading, accountIds, intl, columnId, multiColumn, domain } = this.props; const { isLoading, accountIds, intl, columnId, multiColumn, domain } = this.props;

@ -41,11 +41,11 @@ class Explore extends React.PureComponent {
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
render() { render() {
const { intl, multiColumn, isSearching } = this.props; const { intl, multiColumn, isSearching } = this.props;

@ -33,7 +33,7 @@ class Statuses extends React.PureComponent {
handleLoadMore = debounce(() => { handleLoadMore = debounce(() => {
const { dispatch } = this.props; const { dispatch } = this.props;
dispatch(expandTrendingStatuses()); dispatch(expandTrendingStatuses());
}, 300, { leading: true }) }, 300, { leading: true });
render () { render () {
const { isLoading, hasMore, statusIds, multiColumn } = this.props; const { isLoading, hasMore, statusIds, multiColumn } = this.props;

@ -48,24 +48,24 @@ class Favourites extends ImmutablePureComponent {
} else { } else {
dispatch(addColumn('FAVOURITES', {})); dispatch(addColumn('FAVOURITES', {}));
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = debounce(() => { handleLoadMore = debounce(() => {
this.props.dispatch(expandFavouritedStatuses()); this.props.dispatch(expandFavouritedStatuses());
}, 300, { leading: true }) }, 300, { leading: true });
render () { render () {
const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props; const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;

@ -47,7 +47,7 @@ class Favourites extends ImmutablePureComponent {
handleRefresh = () => { handleRefresh = () => {
this.props.dispatch(fetchFavourites(this.props.params.statusId)); this.props.dispatch(fetchFavourites(this.props.params.statusId));
} };
render () { render () {
const { intl, accountIds, multiColumn } = this.props; const { intl, accountIds, multiColumn } = this.props;

@ -71,7 +71,7 @@ class SelectFilter extends React.PureComponent {
<span className='language-dropdown__dropdown__results__item__native-name'>{filter[1]}</span> {warning} <span className='language-dropdown__dropdown__results__item__native-name'>{filter[1]}</span> {warning}
</div> </div>
); );
} };
renderCreateNew (name) { renderCreateNew (name) {
return ( return (
@ -83,11 +83,11 @@ class SelectFilter extends React.PureComponent {
handleSearchChange = ({ target }) => { handleSearchChange = ({ target }) => {
this.setState({ searchValue: target.value }); this.setState({ searchValue: target.value });
} };
setListRef = c => { setListRef = c => {
this.listNode = c; this.listNode = c;
} };
handleKeyDown = e => { handleKeyDown = e => {
const index = Array.from(this.listNode.childNodes).findIndex(node => node === e.currentTarget); const index = Array.from(this.listNode.childNodes).findIndex(node => node === e.currentTarget);
@ -125,7 +125,7 @@ class SelectFilter extends React.PureComponent {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
} }
} };
handleSearchKeyDown = e => { handleSearchKeyDown = e => {
let element = null; let element = null;
@ -143,11 +143,11 @@ class SelectFilter extends React.PureComponent {
break; break;
} }
} };
handleClear = () => { handleClear = () => {
this.setState({ searchValue: '' }); this.setState({ searchValue: '' });
} };
handleItemClick = e => { handleItemClick = e => {
const value = e.currentTarget.getAttribute('data-index'); const value = e.currentTarget.getAttribute('data-index');
@ -155,7 +155,7 @@ class SelectFilter extends React.PureComponent {
e.preventDefault(); e.preventDefault();
this.props.onSelectFilter(value); this.props.onSelectFilter(value);
} };
handleNewFilterClick = e => { handleNewFilterClick = e => {
e.preventDefault(); e.preventDefault();

@ -50,7 +50,7 @@ class Account extends ImmutablePureComponent {
} else { } else {
dispatch(followAccount(account.get('id'))); dispatch(followAccount(account.get('id')));
} }
} };
render () { render () {
const { account, intl } = this.props; const { account, intl } = this.props;

@ -69,7 +69,7 @@ class FollowRecommendations extends ImmutablePureComponent {
})); }));
router.history.push('/home'); router.history.push('/home');
} };
render () { render () {
const { suggestions, isLoading } = this.props; const { suggestions, isLoading } = this.props;

@ -35,7 +35,7 @@ class Content extends ImmutablePureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
componentDidMount () { componentDidMount () {
this._updateLinks(); this._updateLinks();
@ -89,7 +89,7 @@ class Content extends ImmutablePureComponent {
e.preventDefault(); e.preventDefault();
this.context.router.history.push(`/@${mention.get('acct')}`); this.context.router.history.push(`/@${mention.get('acct')}`);
} }
} };
onHashtagClick = (hashtag, e) => { onHashtagClick = (hashtag, e) => {
hashtag = hashtag.replace(/^#/, ''); hashtag = hashtag.replace(/^#/, '');
@ -98,14 +98,14 @@ class Content extends ImmutablePureComponent {
e.preventDefault(); e.preventDefault();
this.context.router.history.push(`/tags/${hashtag}`); this.context.router.history.push(`/tags/${hashtag}`);
} }
} };
onStatusClick = (status, e) => { onStatusClick = (status, e) => {
if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) { if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault(); e.preventDefault();
this.context.router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); this.context.router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`);
} }
} };
handleMouseEnter = ({ currentTarget }) => { handleMouseEnter = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -118,7 +118,7 @@ class Content extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-original'); emoji.src = emoji.getAttribute('data-original');
} }
} };
handleMouseLeave = ({ currentTarget }) => { handleMouseLeave = ({ currentTarget }) => {
if (autoPlayGif) { if (autoPlayGif) {
@ -131,7 +131,7 @@ class Content extends ImmutablePureComponent {
let emoji = emojis[i]; let emoji = emojis[i];
emoji.src = emoji.getAttribute('data-static'); emoji.src = emoji.getAttribute('data-static');
} }
} };
render () { render () {
const { announcement } = this.props; const { announcement } = this.props;
@ -216,11 +216,11 @@ class Reaction extends ImmutablePureComponent {
} else { } else {
addReaction(announcementId, reaction.get('name')); addReaction(announcementId, reaction.get('name'));
} }
} };
handleMouseEnter = () => this.setState({ hovered: true }) handleMouseEnter = () => this.setState({ hovered: true });
handleMouseLeave = () => this.setState({ hovered: false }) handleMouseLeave = () => this.setState({ hovered: false });
render () { render () {
const { reaction } = this.props; const { reaction } = this.props;
@ -254,7 +254,7 @@ class ReactionsBar extends ImmutablePureComponent {
handleEmojiPick = data => { handleEmojiPick = data => {
const { addReaction, announcementId } = this.props; const { addReaction, announcementId } = this.props;
addReaction(announcementId, data.native.replace(/:/g, '')); addReaction(announcementId, data.native.replace(/:/g, ''));
} };
willEnter () { willEnter () {
return { scale: reduceMotion ? 1 : 0 }; return { scale: reduceMotion ? 1 : 0 };
@ -397,15 +397,15 @@ class Announcements extends ImmutablePureComponent {
handleChangeIndex = index => { handleChangeIndex = index => {
this.setState({ index: index % this.props.announcements.size }); this.setState({ index: index % this.props.announcements.size });
} };
handleNextClick = () => { handleNextClick = () => {
this.setState({ index: (this.state.index + 1) % this.props.announcements.size }); this.setState({ index: (this.state.index + 1) % this.props.announcements.size });
} };
handlePrevClick = () => { handlePrevClick = () => {
this.setState({ index: (this.props.announcements.size + this.state.index - 1) % this.props.announcements.size }); this.setState({ index: (this.props.announcements.size + this.state.index - 1) % this.props.announcements.size });
} };
render () { render () {
const { announcements, intl } = this.props; const { announcements, intl } = this.props;

@ -54,7 +54,7 @@ class HashtagTimeline extends React.PureComponent {
} else { } else {
dispatch(addColumn('HASHTAG', { id: this.props.params.id })); dispatch(addColumn('HASHTAG', { id: this.props.params.id }));
} }
} };
title = () => { title = () => {
const { id } = this.props.params; const { id } = this.props.params;
@ -73,7 +73,7 @@ class HashtagTimeline extends React.PureComponent {
} }
return title; return title;
} };
additionalFor = (mode) => { additionalFor = (mode) => {
const { tags } = this.props.params; const { tags } = this.props.params;
@ -83,16 +83,16 @@ class HashtagTimeline extends React.PureComponent {
} else { } else {
return ''; return '';
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
_subscribe (dispatch, id, tags = {}, local) { _subscribe (dispatch, id, tags = {}, local) {
const { signedIn } = this.context.identity; const { signedIn } = this.context.identity;
@ -157,14 +157,14 @@ class HashtagTimeline extends React.PureComponent {
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = maxId => { handleLoadMore = maxId => {
const { dispatch, params } = this.props; const { dispatch, params } = this.props;
const { id, tags, local } = params; const { id, tags, local } = params;
dispatch(expandHashtagTimeline(id, { maxId, tags, local })); dispatch(expandHashtagTimeline(id, { maxId, tags, local }));
} };
handleFollow = () => { handleFollow = () => {
const { dispatch, params, tag } = this.props; const { dispatch, params, tag } = this.props;
@ -180,7 +180,7 @@ class HashtagTimeline extends React.PureComponent {
} else { } else {
dispatch(followHashtag(id)); dispatch(followHashtag(id));
} }
} };
render () { render () {
const { hasUnread, columnId, multiColumn, tag, intl } = this.props; const { hasUnread, columnId, multiColumn, tag, intl } = this.props;

@ -58,24 +58,24 @@ class HomeTimeline extends React.PureComponent {
} else { } else {
dispatch(addColumn('HOME', {})); dispatch(addColumn('HOME', {}));
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = maxId => { handleLoadMore = maxId => {
this.props.dispatch(expandHomeTimeline({ maxId })); this.props.dispatch(expandHomeTimeline({ maxId }));
} };
componentDidMount () { componentDidMount () {
setTimeout(() => this.props.dispatch(fetchAnnouncements()), 700); setTimeout(() => this.props.dispatch(fetchAnnouncements()), 700);
@ -114,7 +114,7 @@ class HomeTimeline extends React.PureComponent {
handleToggleAnnouncementsClick = (e) => { handleToggleAnnouncementsClick = (e) => {
e.stopPropagation(); e.stopPropagation();
this.props.dispatch(toggleShowAnnouncements()); this.props.dispatch(toggleShowAnnouncements());
} };
render () { render () {
const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props;

@ -30,14 +30,14 @@ class Copypaste extends React.PureComponent {
setRef = c => { setRef = c => {
this.input = c; this.input = c;
} };
handleInputClick = () => { handleInputClick = () => {
this.setState({ copied: false }); this.setState({ copied: false });
this.input.focus(); this.input.focus();
this.input.select(); this.input.select();
this.input.setSelectionRange(0, this.input.value.length); this.input.setSelectionRange(0, this.input.value.length);
} };
handleButtonClick = () => { handleButtonClick = () => {
const { value } = this.props; const { value } = this.props;
@ -45,7 +45,7 @@ class Copypaste extends React.PureComponent {
this.input.blur(); this.input.blur();
this.setState({ copied: true }); this.setState({ copied: true });
this.timeout = setTimeout(() => this.setState({ copied: false }), 700); this.timeout = setTimeout(() => this.setState({ copied: false }), 700);
} };
componentWillUnmount () { componentWillUnmount () {
if (this.timeout) clearTimeout(this.timeout); if (this.timeout) clearTimeout(this.timeout);
@ -86,7 +86,7 @@ class InteractionModal extends React.PureComponent {
handleSignupClick = () => { handleSignupClick = () => {
this.props.onSignupClick(); this.props.onSignupClick();
} };
render () { render () {
const { url, type, displayNameHtml } = this.props; const { url, type, displayNameHtml } = this.props;

@ -33,16 +33,16 @@ class ListForm extends React.PureComponent {
handleChange = e => { handleChange = e => {
this.props.onChange(e.target.value); this.props.onChange(e.target.value);
} };
handleSubmit = e => { handleSubmit = e => {
e.preventDefault(); e.preventDefault();
this.props.onSubmit(); this.props.onSubmit();
} };
handleClick = () => { handleClick = () => {
this.props.onSubmit(); this.props.onSubmit();
} };
render () { render () {
const { value, disabled, intl } = this.props; const { value, disabled, intl } = this.props;

@ -34,17 +34,17 @@ class Search extends React.PureComponent {
handleChange = e => { handleChange = e => {
this.props.onChange(e.target.value); this.props.onChange(e.target.value);
} };
handleKeyUp = e => { handleKeyUp = e => {
if (e.keyCode === 13) { if (e.keyCode === 13) {
this.props.onSubmit(this.props.value); this.props.onSubmit(this.props.value);
} }
} };
handleClear = () => { handleClear = () => {
this.props.onClear(); this.props.onClear();
} };
render () { render () {
const { value, intl } = this.props; const { value, intl } = this.props;

@ -58,16 +58,16 @@ class ListTimeline extends React.PureComponent {
dispatch(addColumn('LIST', { id: this.props.params.id })); dispatch(addColumn('LIST', { id: this.props.params.id }));
this.context.router.history.push('/'); this.context.router.history.push('/');
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
componentDidMount () { componentDidMount () {
const { dispatch } = this.props; const { dispatch } = this.props;
@ -105,16 +105,16 @@ class ListTimeline extends React.PureComponent {
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = maxId => { handleLoadMore = maxId => {
const { id } = this.props.params; const { id } = this.props.params;
this.props.dispatch(expandListTimeline(id, { maxId })); this.props.dispatch(expandListTimeline(id, { maxId }));
} };
handleEditClick = () => { handleEditClick = () => {
this.props.dispatch(openModal('LIST_EDITOR', { listId: this.props.params.id })); this.props.dispatch(openModal('LIST_EDITOR', { listId: this.props.params.id }));
} };
handleDeleteClick = () => { handleDeleteClick = () => {
const { dispatch, columnId, intl } = this.props; const { dispatch, columnId, intl } = this.props;
@ -133,13 +133,13 @@ class ListTimeline extends React.PureComponent {
} }
}, },
})); }));
} };
handleRepliesPolicyChange = ({ target }) => { handleRepliesPolicyChange = ({ target }) => {
const { dispatch } = this.props; const { dispatch } = this.props;
const { id } = this.props.params; const { id } = this.props.params;
dispatch(updateList(id, undefined, false, target.value)); dispatch(updateList(id, undefined, false, target.value));
} };
render () { render () {
const { hasUnread, columnId, multiColumn, list, intl } = this.props; const { hasUnread, columnId, multiColumn, list, intl } = this.props;

@ -34,16 +34,16 @@ class NewListForm extends React.PureComponent {
handleChange = e => { handleChange = e => {
this.props.onChange(e.target.value); this.props.onChange(e.target.value);
} };
handleSubmit = e => { handleSubmit = e => {
e.preventDefault(); e.preventDefault();
this.props.onSubmit(); this.props.onSubmit();
} };
handleClick = () => { handleClick = () => {
this.props.onSubmit(); this.props.onSubmit();
} };
render () { render () {
const { value, disabled, intl } = this.props; const { value, disabled, intl } = this.props;

@ -26,7 +26,7 @@ export default class ColumnSettings extends React.PureComponent {
onPushChange = (path, checked) => { onPushChange = (path, checked) => {
this.props.onChange(['push', ...path], checked); this.props.onChange(['push', ...path], checked);
} };
render () { render () {
const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission } = this.props; const { settings, pushSettings, onChange, onClear, alertsEnabled, browserSupport, browserPermission, onRequestNotificationPermission } = this.props;

@ -61,12 +61,12 @@ class Notification extends ImmutablePureComponent {
handleMoveUp = () => { handleMoveUp = () => {
const { notification, onMoveUp } = this.props; const { notification, onMoveUp } = this.props;
onMoveUp(notification.get('id')); onMoveUp(notification.get('id'));
} };
handleMoveDown = () => { handleMoveDown = () => {
const { notification, onMoveDown } = this.props; const { notification, onMoveDown } = this.props;
onMoveDown(notification.get('id')); onMoveDown(notification.get('id'));
} };
handleOpen = () => { handleOpen = () => {
const { notification } = this.props; const { notification } = this.props;
@ -76,34 +76,34 @@ class Notification extends ImmutablePureComponent {
} else { } else {
this.handleOpenProfile(); this.handleOpenProfile();
} }
} };
handleOpenProfile = () => { handleOpenProfile = () => {
const { notification } = this.props; const { notification } = this.props;
this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`); this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`);
} };
handleMention = e => { handleMention = e => {
e.preventDefault(); e.preventDefault();
const { notification, onMention } = this.props; const { notification, onMention } = this.props;
onMention(notification.get('account'), this.context.router.history); onMention(notification.get('account'), this.context.router.history);
} };
handleHotkeyFavourite = () => { handleHotkeyFavourite = () => {
const { status } = this.props; const { status } = this.props;
if (status) this.props.onFavourite(status); if (status) this.props.onFavourite(status);
} };
handleHotkeyBoost = e => { handleHotkeyBoost = e => {
const { status } = this.props; const { status } = this.props;
if (status) this.props.onReblog(status, e); if (status) this.props.onReblog(status, e);
} };
handleHotkeyToggleHidden = () => { handleHotkeyToggleHidden = () => {
const { status } = this.props; const { status } = this.props;
if (status) this.props.onToggleHidden(status); if (status) this.props.onToggleHidden(status);
} };
getHandlers () { getHandlers () {
return { return {

@ -23,11 +23,11 @@ class NotificationsPermissionBanner extends React.PureComponent {
handleClick = () => { handleClick = () => {
this.props.dispatch(requestBrowserPermission()); this.props.dispatch(requestBrowserPermission());
} };
handleClose = () => { handleClose = () => {
this.props.dispatch(changeSetting(['notifications', 'dismissPermissionBanner'], true)); this.props.dispatch(changeSetting(['notifications', 'dismissPermissionBanner'], true));
} };
render () { render () {
const { intl } = this.props; const { intl } = this.props;

@ -13,11 +13,11 @@ export default class SettingToggle extends React.PureComponent {
onChange: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired,
defaultValue: PropTypes.bool, defaultValue: PropTypes.bool,
disabled: PropTypes.bool, disabled: PropTypes.bool,
} };
onChange = ({ target }) => { onChange = ({ target }) => {
this.props.onChange(this.props.settingPath, target.checked); this.props.onChange(this.props.settingPath, target.checked);
} };
render () { render () {
const { prefix, settings, settingPath, label, defaultValue, disabled } = this.props; const { prefix, settings, settingPath, label, defaultValue, disabled } = this.props;

@ -136,30 +136,30 @@ class Notifications extends React.PureComponent {
} else { } else {
dispatch(addColumn('NOTIFICATIONS', {})); dispatch(addColumn('NOTIFICATIONS', {}));
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
setColumnRef = c => { setColumnRef = c => {
this.column = c; this.column = c;
} };
handleMoveUp = id => { handleMoveUp = id => {
const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) - 1; const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) - 1;
this._selectChild(elementIndex, true); this._selectChild(elementIndex, true);
} };
handleMoveDown = id => { handleMoveDown = id => {
const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) + 1; const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) + 1;
this._selectChild(elementIndex, false); this._selectChild(elementIndex, false);
} };
_selectChild (index, align_top) { _selectChild (index, align_top) {
const container = this.column.node; const container = this.column.node;

@ -112,7 +112,7 @@ class Footer extends ImmutablePureComponent {
_performReblog = (status, privacy) => { _performReblog = (status, privacy) => {
const { dispatch } = this.props; const { dispatch } = this.props;
dispatch(reblog(status, privacy)); dispatch(reblog(status, privacy));
} };
handleReblogClick = e => { handleReblogClick = e => {
const { dispatch, status } = this.props; const { dispatch, status } = this.props;
@ -149,7 +149,7 @@ class Footer extends ImmutablePureComponent {
} }
router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`); router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`);
} };
render () { render () {
const { status, intl, withOpenButton } = this.props; const { status, intl, withOpenButton } = this.props;

@ -32,7 +32,7 @@ class PictureInPicture extends React.Component {
handleClose = () => { handleClose = () => {
const { dispatch } = this.props; const { dispatch } = this.props;
dispatch(removePictureInPicture()); dispatch(removePictureInPicture());
} };
render () { render () {
const { type, src, currentTime, accountId, statusId } = this.props; const { type, src, currentTime, accountId, statusId } = this.props;

@ -37,11 +37,11 @@ class PinnedStatuses extends ImmutablePureComponent {
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
render () { render () {
const { intl, statusIds, hasMore, multiColumn } = this.props; const { intl, statusIds, hasMore, multiColumn } = this.props;

@ -62,16 +62,16 @@ class PublicTimeline extends React.PureComponent {
} else { } else {
dispatch(addColumn(onlyRemote ? 'REMOTE' : 'PUBLIC', { other: { onlyMedia, onlyRemote } })); dispatch(addColumn(onlyRemote ? 'REMOTE' : 'PUBLIC', { other: { onlyMedia, onlyRemote } }));
} }
} };
handleMove = (dir) => { handleMove = (dir) => {
const { columnId, dispatch } = this.props; const { columnId, dispatch } = this.props;
dispatch(moveColumn(columnId, dir)); dispatch(moveColumn(columnId, dir));
} };
handleHeaderClick = () => { handleHeaderClick = () => {
this.column.scrollTop(); this.column.scrollTop();
} };
componentDidMount () { componentDidMount () {
const { dispatch, onlyMedia, onlyRemote } = this.props; const { dispatch, onlyMedia, onlyRemote } = this.props;
@ -111,13 +111,13 @@ class PublicTimeline extends React.PureComponent {
setRef = c => { setRef = c => {
this.column = c; this.column = c;
} };
handleLoadMore = maxId => { handleLoadMore = maxId => {
const { dispatch, onlyMedia, onlyRemote } = this.props; const { dispatch, onlyMedia, onlyRemote } = this.props;
dispatch(expandPublicTimeline({ maxId, onlyMedia, onlyRemote })); dispatch(expandPublicTimeline({ maxId, onlyMedia, onlyRemote }));
} };
render () { render () {
const { intl, columnId, hasUnread, multiColumn, onlyMedia, onlyRemote } = this.props; const { intl, columnId, hasUnread, multiColumn, onlyMedia, onlyRemote } = this.props;

@ -47,7 +47,7 @@ class Reblogs extends ImmutablePureComponent {
handleRefresh = () => { handleRefresh = () => {
this.props.dispatch(fetchReblogs(this.props.params.statusId)); this.props.dispatch(fetchReblogs(this.props.params.statusId));
} };
render () { render () {
const { intl, accountIds, multiColumn } = this.props; const { intl, accountIds, multiColumn } = this.props;

@ -24,12 +24,12 @@ export default class Option extends React.PureComponent {
e.preventDefault(); e.preventDefault();
onToggle(value, !checked); onToggle(value, !checked);
} }
} };
handleChange = e => { handleChange = e => {
const { value, onToggle } = this.props; const { value, onToggle } = this.props;
onToggle(value, e.target.checked); onToggle(value, e.target.checked);
} };
render () { render () {
const { name, value, checked, label, labelComponent, description, multiple } = this.props; const { name, value, checked, label, labelComponent, description, multiple } = this.props;

@ -82,39 +82,39 @@ class ActionBar extends React.PureComponent {
handleReplyClick = () => { handleReplyClick = () => {
this.props.onReply(this.props.status); this.props.onReply(this.props.status);
} };
handleReblogClick = (e) => { handleReblogClick = (e) => {
this.props.onReblog(this.props.status, e); this.props.onReblog(this.props.status, e);
} };
handleFavouriteClick = () => { handleFavouriteClick = () => {
this.props.onFavourite(this.props.status); this.props.onFavourite(this.props.status);
} };
handleBookmarkClick = (e) => { handleBookmarkClick = (e) => {
this.props.onBookmark(this.props.status, e); this.props.onBookmark(this.props.status, e);
} };
handleDeleteClick = () => { handleDeleteClick = () => {
this.props.onDelete(this.props.status, this.context.router.history); this.props.onDelete(this.props.status, this.context.router.history);
} };
handleRedraftClick = () => { handleRedraftClick = () => {
this.props.onDelete(this.props.status, this.context.router.history, true); this.props.onDelete(this.props.status, this.context.router.history, true);
} };
handleEditClick = () => { handleEditClick = () => {
this.props.onEdit(this.props.status, this.context.router.history); this.props.onEdit(this.props.status, this.context.router.history);
} };
handleDirectClick = () => { handleDirectClick = () => {
this.props.onDirect(this.props.status.get('account'), this.context.router.history); this.props.onDirect(this.props.status.get('account'), this.context.router.history);
} };
handleMentionClick = () => { handleMentionClick = () => {
this.props.onMention(this.props.status.get('account'), this.context.router.history); this.props.onMention(this.props.status.get('account'), this.context.router.history);
} };
handleMuteClick = () => { handleMuteClick = () => {
const { status, relationship, onMute, onUnmute } = this.props; const { status, relationship, onMute, onUnmute } = this.props;
@ -125,7 +125,7 @@ class ActionBar extends React.PureComponent {
} else { } else {
onMute(account); onMute(account);
} }
} };
handleBlockClick = () => { handleBlockClick = () => {
const { status, relationship, onBlock, onUnblock } = this.props; const { status, relationship, onBlock, onUnblock } = this.props;
@ -136,49 +136,49 @@ class ActionBar extends React.PureComponent {
} else { } else {
onBlock(status); onBlock(status);
} }
} };
handleBlockDomain = () => { handleBlockDomain = () => {
const { status, onBlockDomain } = this.props; const { status, onBlockDomain } = this.props;
const account = status.get('account'); const account = status.get('account');
onBlockDomain(account.get('acct').split('@')[1]); onBlockDomain(account.get('acct').split('@')[1]);
} };
handleUnblockDomain = () => { handleUnblockDomain = () => {
const { status, onUnblockDomain } = this.props; const { status, onUnblockDomain } = this.props;
const account = status.get('account'); const account = status.get('account');
onUnblockDomain(account.get('acct').split('@')[1]); onUnblockDomain(account.get('acct').split('@')[1]);
} };
handleConversationMuteClick = () => { handleConversationMuteClick = () => {
this.props.onMuteConversation(this.props.status); this.props.onMuteConversation(this.props.status);
} };
handleReport = () => { handleReport = () => {
this.props.onReport(this.props.status); this.props.onReport(this.props.status);
} };
handlePinClick = () => { handlePinClick = () => {
this.props.onPin(this.props.status); this.props.onPin(this.props.status);
} };
handleShare = () => { handleShare = () => {
navigator.share({ navigator.share({
text: this.props.status.get('search_index'), text: this.props.status.get('search_index'),
url: this.props.status.get('url'), url: this.props.status.get('url'),
}); });
} };
handleEmbed = () => { handleEmbed = () => {
this.props.onEmbed(this.props.status); this.props.onEmbed(this.props.status);
} };
handleCopy = () => { handleCopy = () => {
const url = this.props.status.get('url'); const url = this.props.status.get('url');
navigator.clipboard.writeText(url); navigator.clipboard.writeText(url);
} };
render () { render () {
const { status, relationship, intl } = this.props; const { status, relationship, intl } = this.props;

@ -146,7 +146,7 @@ export default class Card extends React.PureComponent {
} else { } else {
this.setState({ embedded: true }); this.setState({ embedded: true });
} }
} };
setRef = c => { setRef = c => {
this.node = c; this.node = c;
@ -154,17 +154,17 @@ export default class Card extends React.PureComponent {
if (this.node) { if (this.node) {
this._setDimensions(); this._setDimensions();
} }
} };
handleImageLoad = () => { handleImageLoad = () => {
this.setState({ previewLoaded: true }); this.setState({ previewLoaded: true });
} };
handleReveal = e => { handleReveal = e => {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
this.setState({ revealed: true }); this.setState({ revealed: true });
} };
renderVideo () { renderVideo () {
const { card } = this.props; const { card } = this.props;

@ -61,15 +61,15 @@ class DetailedStatus extends ImmutablePureComponent {
} }
e.stopPropagation(); e.stopPropagation();
} };
handleOpenVideo = (options) => { handleOpenVideo = (options) => {
this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), options); this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), options);
} };
handleExpandedToggle = () => { handleExpandedToggle = () => {
this.props.onToggleHidden(this.props.status); this.props.onToggleHidden(this.props.status);
} };
_measureHeight (heightJustChanged) { _measureHeight (heightJustChanged) {
if (this.props.measureHeight && this.node) { if (this.props.measureHeight && this.node) {
@ -84,7 +84,7 @@ class DetailedStatus extends ImmutablePureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
this._measureHeight(); this._measureHeight();
} };
componentDidUpdate (prevProps, prevState) { componentDidUpdate (prevProps, prevState) {
this._measureHeight(prevState.height !== this.state.height); this._measureHeight(prevState.height !== this.state.height);
@ -102,12 +102,12 @@ class DetailedStatus extends ImmutablePureComponent {
} }
window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');
} };
handleTranslate = () => { handleTranslate = () => {
const { onTranslate, status } = this.props; const { onTranslate, status } = this.props;
onTranslate(status); onTranslate(status);
} };
render () { render () {
const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status; const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status;

@ -233,7 +233,7 @@ class Status extends ImmutablePureComponent {
handleToggleMediaVisibility = () => { handleToggleMediaVisibility = () => {
this.setState({ showMedia: !this.state.showMedia }); this.setState({ showMedia: !this.state.showMedia });
} };
handleFavouriteClick = (status) => { handleFavouriteClick = (status) => {
const { dispatch } = this.props; const { dispatch } = this.props;
@ -252,7 +252,7 @@ class Status extends ImmutablePureComponent {
url: status.get('url'), url: status.get('url'),
})); }));
} }
} };
handlePin = (status) => { handlePin = (status) => {
if (status.get('pinned')) { if (status.get('pinned')) {
@ -260,7 +260,7 @@ class Status extends ImmutablePureComponent {
} else { } else {
this.props.dispatch(pin(status)); this.props.dispatch(pin(status));
} }
} };
handleReplyClick = (status) => { handleReplyClick = (status) => {
const { askReplyConfirmation, dispatch, intl } = this.props; const { askReplyConfirmation, dispatch, intl } = this.props;
@ -283,11 +283,11 @@ class Status extends ImmutablePureComponent {
url: status.get('url'), url: status.get('url'),
})); }));
} }
} };
handleModalReblog = (status, privacy) => { handleModalReblog = (status, privacy) => {
this.props.dispatch(reblog(status, privacy)); this.props.dispatch(reblog(status, privacy));
} };
handleReblogClick = (status, e) => { handleReblogClick = (status, e) => {
const { dispatch } = this.props; const { dispatch } = this.props;
@ -310,7 +310,7 @@ class Status extends ImmutablePureComponent {
url: status.get('url'), url: status.get('url'),
})); }));
} }
} };
handleBookmarkClick = (status) => { handleBookmarkClick = (status) => {
if (status.get('bookmarked')) { if (status.get('bookmarked')) {
@ -318,7 +318,7 @@ class Status extends ImmutablePureComponent {
} else { } else {
this.props.dispatch(bookmark(status)); this.props.dispatch(bookmark(status));
} }
} };
handleDeleteClick = (status, history, withRedraft = false) => { handleDeleteClick = (status, history, withRedraft = false) => {
const { dispatch, intl } = this.props; const { dispatch, intl } = this.props;
@ -332,27 +332,27 @@ class Status extends ImmutablePureComponent {
onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)), onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)),
})); }));
} }
} };
handleEditClick = (status, history) => { handleEditClick = (status, history) => {
this.props.dispatch(editStatus(status.get('id'), history)); this.props.dispatch(editStatus(status.get('id'), history));
} };
handleDirectClick = (account, router) => { handleDirectClick = (account, router) => {
this.props.dispatch(directCompose(account, router)); this.props.dispatch(directCompose(account, router));
} };
handleMentionClick = (account, router) => { handleMentionClick = (account, router) => {
this.props.dispatch(mentionCompose(account, router)); this.props.dispatch(mentionCompose(account, router));
} };
handleOpenMedia = (media, index) => { handleOpenMedia = (media, index) => {
this.props.dispatch(openModal('MEDIA', { statusId: this.props.status.get('id'), media, index })); this.props.dispatch(openModal('MEDIA', { statusId: this.props.status.get('id'), media, index }));
} };
handleOpenVideo = (media, options) => { handleOpenVideo = (media, options) => {
this.props.dispatch(openModal('VIDEO', { statusId: this.props.status.get('id'), media, options })); this.props.dispatch(openModal('VIDEO', { statusId: this.props.status.get('id'), media, options }));
} };
handleHotkeyOpenMedia = e => { handleHotkeyOpenMedia = e => {
const { status } = this.props; const { status } = this.props;
@ -366,11 +366,11 @@ class Status extends ImmutablePureComponent {
this.handleOpenMedia(status.get('media_attachments'), 0); this.handleOpenMedia(status.get('media_attachments'), 0);
} }
} }
} };
handleMuteClick = (account) => { handleMuteClick = (account) => {
this.props.dispatch(initMuteModal(account)); this.props.dispatch(initMuteModal(account));
} };
handleConversationMuteClick = (status) => { handleConversationMuteClick = (status) => {
if (status.get('muted')) { if (status.get('muted')) {
@ -378,7 +378,7 @@ class Status extends ImmutablePureComponent {
} else { } else {
this.props.dispatch(muteStatus(status.get('id'))); this.props.dispatch(muteStatus(status.get('id')));
} }
} };
handleToggleHidden = (status) => { handleToggleHidden = (status) => {
if (status.get('hidden')) { if (status.get('hidden')) {
@ -386,7 +386,7 @@ class Status extends ImmutablePureComponent {
} else { } else {
this.props.dispatch(hideStatus(status.get('id'))); this.props.dispatch(hideStatus(status.get('id')));
} }
} };
handleToggleAll = () => { handleToggleAll = () => {
const { status, ancestorsIds, descendantsIds } = this.props; const { status, ancestorsIds, descendantsIds } = this.props;
@ -397,7 +397,7 @@ class Status extends ImmutablePureComponent {
} else { } else {
this.props.dispatch(hideStatus(statusIds)); this.props.dispatch(hideStatus(statusIds));
} }
} };
handleTranslate = status => { handleTranslate = status => {
const { dispatch } = this.props; const { dispatch } = this.props;
@ -407,29 +407,29 @@ class Status extends ImmutablePureComponent {
} else { } else {
dispatch(translateStatus(status.get('id'))); dispatch(translateStatus(status.get('id')));
} }
} };
handleBlockClick = (status) => { handleBlockClick = (status) => {
const { dispatch } = this.props; const { dispatch } = this.props;
const account = status.get('account'); const account = status.get('account');
dispatch(initBlockModal(account)); dispatch(initBlockModal(account));
} };
handleReport = (status) => { handleReport = (status) => {
this.props.dispatch(initReport(status.get('account'), status)); this.props.dispatch(initReport(status.get('account'), status));
} };
handleEmbed = (status) => { handleEmbed = (status) => {
this.props.dispatch(openModal('EMBED', { url: status.get('url') })); this.props.dispatch(openModal('EMBED', { url: status.get('url') }));
} };
handleUnmuteClick = account => { handleUnmuteClick = account => {
this.props.dispatch(unmuteAccount(account.get('id'))); this.props.dispatch(unmuteAccount(account.get('id')));
} };
handleUnblockClick = account => { handleUnblockClick = account => {
this.props.dispatch(unblockAccount(account.get('id'))); this.props.dispatch(unblockAccount(account.get('id')));
} };
handleBlockDomainClick = domain => { handleBlockDomainClick = domain => {
this.props.dispatch(openModal('CONFIRM', { this.props.dispatch(openModal('CONFIRM', {
@ -437,50 +437,50 @@ class Status extends ImmutablePureComponent {
confirm: this.props.intl.formatMessage(messages.blockDomainConfirm), confirm: this.props.intl.formatMessage(messages.blockDomainConfirm),
onConfirm: () => this.props.dispatch(blockDomain(domain)), onConfirm: () => this.props.dispatch(blockDomain(domain)),
})); }));
} };
handleUnblockDomainClick = domain => { handleUnblockDomainClick = domain => {
this.props.dispatch(unblockDomain(domain)); this.props.dispatch(unblockDomain(domain));
} };
handleHotkeyMoveUp = () => { handleHotkeyMoveUp = () => {
this.handleMoveUp(this.props.status.get('id')); this.handleMoveUp(this.props.status.get('id'));
} };
handleHotkeyMoveDown = () => { handleHotkeyMoveDown = () => {
this.handleMoveDown(this.props.status.get('id')); this.handleMoveDown(this.props.status.get('id'));
} };
handleHotkeyReply = e => { handleHotkeyReply = e => {
e.preventDefault(); e.preventDefault();
this.handleReplyClick(this.props.status); this.handleReplyClick(this.props.status);
} };
handleHotkeyFavourite = () => { handleHotkeyFavourite = () => {
this.handleFavouriteClick(this.props.status); this.handleFavouriteClick(this.props.status);
} };
handleHotkeyBoost = () => { handleHotkeyBoost = () => {
this.handleReblogClick(this.props.status); this.handleReblogClick(this.props.status);
} };
handleHotkeyMention = e => { handleHotkeyMention = e => {
e.preventDefault(); e.preventDefault();
this.handleMentionClick(this.props.status.get('account')); this.handleMentionClick(this.props.status.get('account'));
} };
handleHotkeyOpenProfile = () => { handleHotkeyOpenProfile = () => {
this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`); this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`);
} };
handleHotkeyToggleHidden = () => { handleHotkeyToggleHidden = () => {
this.handleToggleHidden(this.props.status); this.handleToggleHidden(this.props.status);
} };
handleHotkeyToggleSensitive = () => { handleHotkeyToggleSensitive = () => {
this.handleToggleMediaVisibility(); this.handleToggleMediaVisibility();
} };
handleMoveUp = id => { handleMoveUp = id => {
const { status, ancestorsIds, descendantsIds } = this.props; const { status, ancestorsIds, descendantsIds } = this.props;
@ -497,7 +497,7 @@ class Status extends ImmutablePureComponent {
this._selectChild(index - 1, true); this._selectChild(index - 1, true);
} }
} }
} };
handleMoveDown = id => { handleMoveDown = id => {
const { status, ancestorsIds, descendantsIds } = this.props; const { status, ancestorsIds, descendantsIds } = this.props;
@ -514,7 +514,7 @@ class Status extends ImmutablePureComponent {
this._selectChild(index + 1, false); this._selectChild(index + 1, false);
} }
} }
} };
_selectChild (index, align_top) { _selectChild (index, align_top) {
const container = this.node; const container = this.node;
@ -544,7 +544,7 @@ class Status extends ImmutablePureComponent {
setRef = c => { setRef = c => {
this.node = c; this.node = c;
} };
componentDidUpdate () { componentDidUpdate () {
if (this._scrolledIntoView) { if (this._scrolledIntoView) {
@ -569,7 +569,7 @@ class Status extends ImmutablePureComponent {
onFullScreenChange = () => { onFullScreenChange = () => {
this.setState({ fullscreen: isFullscreen() }); this.setState({ fullscreen: isFullscreen() });
} };
render () { render () {
let ancestors, descendants; let ancestors, descendants;

@ -72,7 +72,7 @@ class SubscribedLanguagesModal extends ImmutablePureComponent {
handleSubmit = () => { handleSubmit = () => {
this.props.onSubmit(this.state.selectedLanguages.toArray()); this.props.onSubmit(this.state.selectedLanguages.toArray());
this.props.onClose(); this.props.onClose();
} };
renderItem (value) { renderItem (value) {
const language = this.props.languages.find(language => language[0] === value); const language = this.props.languages.find(language => language[0] === value);

@ -31,7 +31,7 @@ export default class ActionsModal extends ImmutablePureComponent {
</a> </a>
</li> </li>
); );
} };
render () { render () {
return ( return (

@ -55,20 +55,20 @@ class BlockModal extends React.PureComponent {
handleClick = () => { handleClick = () => {
this.props.onClose(); this.props.onClose();
this.props.onConfirm(this.props.account); this.props.onConfirm(this.props.account);
} };
handleSecondary = () => { handleSecondary = () => {
this.props.onClose(); this.props.onClose();
this.props.onBlockAndReport(this.props.account); this.props.onBlockAndReport(this.props.account);
} };
handleCancel = () => { handleCancel = () => {
this.props.onClose(); this.props.onClose();
} };
setRef = (c) => { setRef = (c) => {
this.button = c; this.button = c;
} };
render () { render () {
const { account } = this.props; const { account } = this.props;

@ -62,7 +62,7 @@ class BoostModal extends ImmutablePureComponent {
handleReblog = () => { handleReblog = () => {
this.props.onReblog(this.props.status, this.props.privacy); this.props.onReblog(this.props.status, this.props.privacy);
this.props.onClose(); this.props.onClose();
} };
handleAccountClick = (e) => { handleAccountClick = (e) => {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
@ -70,7 +70,7 @@ class BoostModal extends ImmutablePureComponent {
this.props.onClose(); this.props.onClose();
this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`); this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`);
} }
} };
_findContainer = () => { _findContainer = () => {
return document.getElementsByClassName('modal-root__container')[0]; return document.getElementsByClassName('modal-root__container')[0];
@ -78,7 +78,7 @@ class BoostModal extends ImmutablePureComponent {
setRef = (c) => { setRef = (c) => {
this.button = c; this.button = c;
} };
render () { render () {
const { status, privacy, intl } = this.props; const { status, privacy, intl } = this.props;

@ -15,7 +15,7 @@ class Bundle extends React.PureComponent {
onFetch: PropTypes.func, onFetch: PropTypes.func,
onFetchSuccess: PropTypes.func, onFetchSuccess: PropTypes.func,
onFetchFail: PropTypes.func, onFetchFail: PropTypes.func,
} };
static defaultProps = { static defaultProps = {
loading: emptyComponent, loading: emptyComponent,
@ -24,14 +24,14 @@ class Bundle extends React.PureComponent {
onFetch: noop, onFetch: noop,
onFetchSuccess: noop, onFetchSuccess: noop,
onFetchFail: noop, onFetchFail: noop,
} };
static cache = new Map static cache = new Map;
state = { state = {
mod: undefined, mod: undefined,
forceRender: false, forceRender: false,
} };
componentWillMount() { componentWillMount() {
this.load(this.props); this.load(this.props);
@ -83,7 +83,7 @@ class Bundle extends React.PureComponent {
this.setState({ mod: null }); this.setState({ mod: null });
onFetchFail(error); onFetchFail(error);
}); });
} };
render() { render() {
const { loading: Loading, error: Error, children, renderDelay } = this.props; const { loading: Loading, error: Error, children, renderDelay } = this.props;

@ -31,7 +31,7 @@ class GIF extends React.PureComponent {
if (!animate) { if (!animate) {
this.setState({ hovering: true }); this.setState({ hovering: true });
} }
} };
handleMouseLeave = () => { handleMouseLeave = () => {
const { animate } = this.props; const { animate } = this.props;
@ -39,7 +39,7 @@ class GIF extends React.PureComponent {
if (!animate) { if (!animate) {
this.setState({ hovering: false }); this.setState({ hovering: false });
} }
} };
render () { render () {
const { src, staticSrc, className, animate } = this.props; const { src, staticSrc, className, animate } = this.props;
@ -75,7 +75,7 @@ class CopyButton extends React.PureComponent {
navigator.clipboard.writeText(value); navigator.clipboard.writeText(value);
this.setState({ copied: true }); this.setState({ copied: true });
this.timeout = setTimeout(() => this.setState({ copied: false }), 700); this.timeout = setTimeout(() => this.setState({ copied: false }), 700);
} };
componentWillUnmount () { componentWillUnmount () {
if (this.timeout) clearTimeout(this.timeout); if (this.timeout) clearTimeout(this.timeout);
@ -113,7 +113,7 @@ class BundleColumnError extends React.PureComponent {
if (onRetry) { if (onRetry) {
onRetry(); onRetry();
} }
} };
render () { render () {
const { errorType, multiColumn, stacktrace } = this.props; const { errorType, multiColumn, stacktrace } = this.props;

@ -16,11 +16,11 @@ class BundleModalError extends React.PureComponent {
onRetry: PropTypes.func.isRequired, onRetry: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired, intl: PropTypes.object.isRequired,
} };
handleRetry = () => { handleRetry = () => {
this.props.onRetry(); this.props.onRetry();
} };
render () { render () {
const { onClose, intl: { formatMessage } } = this.props; const { onClose, intl: { formatMessage } } = this.props;

@ -23,7 +23,7 @@ export default class Column extends React.PureComponent {
} }
this._interruptScrollAnimation = scrollTop(scrollable); this._interruptScrollAnimation = scrollTop(scrollable);
} };
scrollTop () { scrollTop () {
const scrollable = this.node.querySelector('.scrollable'); const scrollable = this.node.querySelector('.scrollable');
@ -40,11 +40,11 @@ export default class Column extends React.PureComponent {
if (typeof this._interruptScrollAnimation !== 'undefined') { if (typeof this._interruptScrollAnimation !== 'undefined') {
this._interruptScrollAnimation(); this._interruptScrollAnimation();
} }
}, 200) }, 200);
setRef = (c) => { setRef = (c) => {
this.node = c; this.node = c;
} };
render () { render () {
const { heading, icon, children, active, hideHeadingOnMobile } = this.props; const { heading, icon, children, active, hideHeadingOnMobile } = this.props;

@ -15,7 +15,7 @@ export default class ColumnHeader extends React.PureComponent {
handleClick = () => { handleClick = () => {
this.props.onClick(); this.props.onClick();
} };
render () { render () {
const { icon, type, active, columnHeaderId } = this.props; const { icon, type, active, columnHeaderId } = this.props;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save