Enforce import order with ESLint (#25096)
This commit is contained in:
		
							
								
								
									
										98
									
								
								.eslintrc.js
									
									
									
									
									
								
							
							
						
						
									
										98
									
								
								.eslintrc.js
									
									
									
									
									
								
							@@ -198,6 +198,55 @@ module.exports = {
 | 
				
			|||||||
    'import/no-useless-path-segments': 'error',
 | 
					    'import/no-useless-path-segments': 'error',
 | 
				
			||||||
    'import/no-webpack-loader-syntax': 'error',
 | 
					    'import/no-webpack-loader-syntax': 'error',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'import/order': [
 | 
				
			||||||
 | 
					      'error',
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        alphabetize: { order: 'asc' },
 | 
				
			||||||
 | 
					        'newlines-between': 'always',
 | 
				
			||||||
 | 
					        groups: [
 | 
				
			||||||
 | 
					          'builtin',
 | 
				
			||||||
 | 
					          'external',
 | 
				
			||||||
 | 
					          'internal',
 | 
				
			||||||
 | 
					          'parent',
 | 
				
			||||||
 | 
					          ['index', 'sibling'],
 | 
				
			||||||
 | 
					          'object',
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        pathGroups: [
 | 
				
			||||||
 | 
					          // React core packages
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            pattern: '{react,react-dom,react-dom/client,prop-types}',
 | 
				
			||||||
 | 
					            group: 'builtin',
 | 
				
			||||||
 | 
					            position: 'after',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          // I18n
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            pattern: '{react-intl,intl-messageformat}',
 | 
				
			||||||
 | 
					            group: 'builtin',
 | 
				
			||||||
 | 
					            position: 'after',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          // Common React utilities
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            pattern: '{classnames,react-helmet,react-router-dom}',
 | 
				
			||||||
 | 
					            group: 'external',
 | 
				
			||||||
 | 
					            position: 'before',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          // Immutable / Redux / data store
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            pattern: '{immutable,react-redux,react-immutable-proptypes,react-immutable-pure-component,reselect}',
 | 
				
			||||||
 | 
					            group: 'external',
 | 
				
			||||||
 | 
					            position: 'before',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          // Internal packages
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            pattern: '{mastodon/**}',
 | 
				
			||||||
 | 
					            group: 'internal',
 | 
				
			||||||
 | 
					            position: 'after',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        pathGroupsExcludedImportTypes: [],
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'promise/always-return': 'off',
 | 
					    'promise/always-return': 'off',
 | 
				
			||||||
    'promise/catch-or-return': [
 | 
					    'promise/catch-or-return': [
 | 
				
			||||||
      'error',
 | 
					      'error',
 | 
				
			||||||
@@ -286,55 +335,6 @@ module.exports = {
 | 
				
			|||||||
      rules: {
 | 
					      rules: {
 | 
				
			||||||
        'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
 | 
					        'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        'import/order': [
 | 
					 | 
				
			||||||
          'error',
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            alphabetize: { order: 'asc' },
 | 
					 | 
				
			||||||
            'newlines-between': 'always',
 | 
					 | 
				
			||||||
            groups: [
 | 
					 | 
				
			||||||
              'builtin',
 | 
					 | 
				
			||||||
              'external',
 | 
					 | 
				
			||||||
              'internal',
 | 
					 | 
				
			||||||
              'parent',
 | 
					 | 
				
			||||||
              ['index', 'sibling'],
 | 
					 | 
				
			||||||
              'object',
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            pathGroups: [
 | 
					 | 
				
			||||||
              // React core packages
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                pattern: '{react,react-dom,prop-types}',
 | 
					 | 
				
			||||||
                group: 'builtin',
 | 
					 | 
				
			||||||
                position: 'after',
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              // I18n
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                pattern: 'react-intl',
 | 
					 | 
				
			||||||
                group: 'builtin',
 | 
					 | 
				
			||||||
                position: 'after',
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              // Common React utilities
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                pattern: '{classnames,react-helmet}',
 | 
					 | 
				
			||||||
                group: 'external',
 | 
					 | 
				
			||||||
                position: 'before',
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              // Immutable / Redux / data store
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                pattern: '{immutable,react-redux,react-immutable-proptypes,react-immutable-pure-component,reselect}',
 | 
					 | 
				
			||||||
                group: 'external',
 | 
					 | 
				
			||||||
                position: 'before',
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              // Internal packages
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                pattern: '{mastodon/**}',
 | 
					 | 
				
			||||||
                group: 'internal',
 | 
					 | 
				
			||||||
                position: 'after',
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            pathGroupsExcludedImportTypes: [],
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        '@typescript-eslint/consistent-type-definitions': ['warn', 'interface'],
 | 
					        '@typescript-eslint/consistent-type-definitions': ['warn', 'interface'],
 | 
				
			||||||
        '@typescript-eslint/consistent-type-exports': 'error',
 | 
					        '@typescript-eslint/consistent-type-exports': 'error',
 | 
				
			||||||
        '@typescript-eslint/consistent-type-imports': 'error',
 | 
					        '@typescript-eslint/consistent-type-imports': 'error',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedAccount, importFetchedAccounts } from './importer';
 | 
					import { importFetchedAccount, importFetchedAccounts } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const ACCOUNT_FETCH_REQUEST = 'ACCOUNT_FETCH_REQUEST';
 | 
					export const ACCOUNT_FETCH_REQUEST = 'ACCOUNT_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { normalizeAnnouncement } from './importer/normalizer';
 | 
					import { normalizeAnnouncement } from './importer/normalizer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const ANNOUNCEMENTS_FETCH_REQUEST = 'ANNOUNCEMENTS_FETCH_REQUEST';
 | 
					export const ANNOUNCEMENTS_FETCH_REQUEST = 'ANNOUNCEMENTS_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { fetchRelationships } from './accounts';
 | 
					import { fetchRelationships } from './accounts';
 | 
				
			||||||
import { importFetchedAccounts } from './importer';
 | 
					import { importFetchedAccounts } from './importer';
 | 
				
			||||||
import { openModal } from './modal';
 | 
					import { openModal } from './modal';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedStatuses } from './importer';
 | 
					import { importFetchedStatuses } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const BOOKMARKED_STATUSES_FETCH_REQUEST = 'BOOKMARKED_STATUSES_FETCH_REQUEST';
 | 
					export const BOOKMARKED_STATUSES_FETCH_REQUEST = 'BOOKMARKED_STATUSES_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,12 @@
 | 
				
			|||||||
 | 
					import { defineMessages } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import axios from 'axios';
 | 
					import axios from 'axios';
 | 
				
			||||||
import { throttle } from 'lodash';
 | 
					import { throttle } from 'lodash';
 | 
				
			||||||
import { defineMessages } from 'react-intl';
 | 
					
 | 
				
			||||||
import api from 'mastodon/api';
 | 
					import api from 'mastodon/api';
 | 
				
			||||||
import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light';
 | 
					import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light';
 | 
				
			||||||
import { tagHistory } from 'mastodon/settings';
 | 
					import { tagHistory } from 'mastodon/settings';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { showAlert, showAlertForError } from './alerts';
 | 
					import { showAlert, showAlertForError } from './alerts';
 | 
				
			||||||
import { useEmoji } from './emojis';
 | 
					import { useEmoji } from './emojis';
 | 
				
			||||||
import { importFetchedAccounts, importFetchedStatus } from './importer';
 | 
					import { importFetchedAccounts, importFetchedStatus } from './importer';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  importFetchedAccounts,
 | 
					  importFetchedAccounts,
 | 
				
			||||||
  importFetchedStatuses,
 | 
					  importFetchedStatuses,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
import { importFetchedAccounts } from './importer';
 | 
					
 | 
				
			||||||
import { fetchRelationships } from './accounts';
 | 
					import { fetchRelationships } from './accounts';
 | 
				
			||||||
 | 
					import { importFetchedAccounts } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const DIRECTORY_FETCH_REQUEST = 'DIRECTORY_FETCH_REQUEST';
 | 
					export const DIRECTORY_FETCH_REQUEST = 'DIRECTORY_FETCH_REQUEST';
 | 
				
			||||||
export const DIRECTORY_FETCH_SUCCESS = 'DIRECTORY_FETCH_SUCCESS';
 | 
					export const DIRECTORY_FETCH_SUCCESS = 'DIRECTORY_FETCH_SUCCESS';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedStatuses } from './importer';
 | 
					import { importFetchedStatuses } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST';
 | 
					export const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { openModal } from './modal';
 | 
					import { openModal } from './modal';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const FILTERS_FETCH_REQUEST = 'FILTERS_FETCH_REQUEST';
 | 
					export const FILTERS_FETCH_REQUEST = 'FILTERS_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedAccounts } from './importer';
 | 
					import { importFetchedAccounts } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const HISTORY_FETCH_REQUEST = 'HISTORY_FETCH_REQUEST';
 | 
					export const HISTORY_FETCH_REQUEST = 'HISTORY_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,8 @@
 | 
				
			|||||||
import escapeTextContentForBrowser from 'escape-html';
 | 
					import escapeTextContentForBrowser from 'escape-html';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import emojify from '../../features/emoji/emoji';
 | 
					import emojify from '../../features/emoji/emoji';
 | 
				
			||||||
import { unescapeHTML } from '../../utils/html';
 | 
					 | 
				
			||||||
import { expandSpoilers } from '../../initial_state';
 | 
					import { expandSpoilers } from '../../initial_state';
 | 
				
			||||||
 | 
					import { unescapeHTML } from '../../utils/html';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const domParser = new DOMParser();
 | 
					const domParser = new DOMParser();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedAccounts, importFetchedStatus } from './importer';
 | 
					import { importFetchedAccounts, importFetchedStatus } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const REBLOG_REQUEST = 'REBLOG_REQUEST';
 | 
					export const REBLOG_REQUEST = 'REBLOG_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
import { importFetchedAccounts } from './importer';
 | 
					
 | 
				
			||||||
import { showAlertForError } from './alerts';
 | 
					import { showAlertForError } from './alerts';
 | 
				
			||||||
 | 
					import { importFetchedAccounts } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const LIST_FETCH_REQUEST = 'LIST_FETCH_REQUEST';
 | 
					export const LIST_FETCH_REQUEST = 'LIST_FETCH_REQUEST';
 | 
				
			||||||
export const LIST_FETCH_SUCCESS = 'LIST_FETCH_SUCCESS';
 | 
					export const LIST_FETCH_SUCCESS = 'LIST_FETCH_SUCCESS';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
import api from '../api';
 | 
					 | 
				
			||||||
import { debounce } from 'lodash';
 | 
					 | 
				
			||||||
import { compareId } from '../compare_id';
 | 
					 | 
				
			||||||
import { List as ImmutableList } from 'immutable';
 | 
					import { List as ImmutableList } from 'immutable';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { debounce } from 'lodash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					import { compareId } from '../compare_id';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const MARKERS_FETCH_REQUEST = 'MARKERS_FETCH_REQUEST';
 | 
					export const MARKERS_FETCH_REQUEST = 'MARKERS_FETCH_REQUEST';
 | 
				
			||||||
export const MARKERS_FETCH_SUCCESS = 'MARKERS_FETCH_SUCCESS';
 | 
					export const MARKERS_FETCH_SUCCESS = 'MARKERS_FETCH_SUCCESS';
 | 
				
			||||||
export const MARKERS_FETCH_FAIL    = 'MARKERS_FETCH_FAIL';
 | 
					export const MARKERS_FETCH_FAIL    = 'MARKERS_FETCH_FAIL';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { fetchRelationships } from './accounts';
 | 
					import { fetchRelationships } from './accounts';
 | 
				
			||||||
import { importFetchedAccounts } from './importer';
 | 
					import { importFetchedAccounts } from './importer';
 | 
				
			||||||
import { openModal } from './modal';
 | 
					import { openModal } from './modal';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,15 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					 | 
				
			||||||
import IntlMessageFormat from 'intl-messageformat';
 | 
					import IntlMessageFormat from 'intl-messageformat';
 | 
				
			||||||
 | 
					import { defineMessages } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { List as ImmutableList } from 'immutable';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { compareId } from 'mastodon/compare_id';
 | 
				
			||||||
 | 
					import { usePendingItems as preferPendingItems } from 'mastodon/initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					import { unescapeHTML } from '../utils/html';
 | 
				
			||||||
 | 
					import { requestNotificationPermission } from '../utils/notifications';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { fetchFollowRequests, fetchRelationships } from './accounts';
 | 
					import { fetchFollowRequests, fetchRelationships } from './accounts';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  importFetchedAccount,
 | 
					  importFetchedAccount,
 | 
				
			||||||
@@ -9,12 +19,6 @@ import {
 | 
				
			|||||||
} from './importer';
 | 
					} from './importer';
 | 
				
			||||||
import { submitMarkers } from './markers';
 | 
					import { submitMarkers } from './markers';
 | 
				
			||||||
import { saveSettings } from './settings';
 | 
					import { saveSettings } from './settings';
 | 
				
			||||||
import { defineMessages } from 'react-intl';
 | 
					 | 
				
			||||||
import { List as ImmutableList } from 'immutable';
 | 
					 | 
				
			||||||
import { unescapeHTML } from '../utils/html';
 | 
					 | 
				
			||||||
import { usePendingItems as preferPendingItems } from 'mastodon/initial_state';
 | 
					 | 
				
			||||||
import { compareId } from 'mastodon/compare_id';
 | 
					 | 
				
			||||||
import { requestNotificationPermission } from '../utils/notifications';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const NOTIFICATIONS_UPDATE      = 'NOTIFICATIONS_UPDATE';
 | 
					export const NOTIFICATIONS_UPDATE      = 'NOTIFICATIONS_UPDATE';
 | 
				
			||||||
export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
 | 
					export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
import { importFetchedStatuses } from './importer';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { me } from '../initial_state';
 | 
					import { me } from '../initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { importFetchedStatuses } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const PINNED_STATUSES_FETCH_REQUEST = 'PINNED_STATUSES_FETCH_REQUEST';
 | 
					export const PINNED_STATUSES_FETCH_REQUEST = 'PINNED_STATUSES_FETCH_REQUEST';
 | 
				
			||||||
export const PINNED_STATUSES_FETCH_SUCCESS = 'PINNED_STATUSES_FETCH_SUCCESS';
 | 
					export const PINNED_STATUSES_FETCH_SUCCESS = 'PINNED_STATUSES_FETCH_SUCCESS';
 | 
				
			||||||
export const PINNED_STATUSES_FETCH_FAIL = 'PINNED_STATUSES_FETCH_FAIL';
 | 
					export const PINNED_STATUSES_FETCH_FAIL = 'PINNED_STATUSES_FETCH_FAIL';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedPoll } from './importer';
 | 
					import { importFetchedPoll } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const POLL_VOTE_REQUEST = 'POLL_VOTE_REQUEST';
 | 
					export const POLL_VOTE_REQUEST = 'POLL_VOTE_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
import { setAlerts } from './setter';
 | 
					 | 
				
			||||||
import { saveSettings } from './registerer';
 | 
					import { saveSettings } from './registerer';
 | 
				
			||||||
 | 
					import { setAlerts } from './setter';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function changeAlerts(path, value) {
 | 
					export function changeAlerts(path, value) {
 | 
				
			||||||
  return dispatch => {
 | 
					  return dispatch => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,9 @@
 | 
				
			|||||||
import api from '../../api';
 | 
					import api from '../../api';
 | 
				
			||||||
import { decode as decodeBase64 } from '../../utils/base64';
 | 
					 | 
				
			||||||
import { pushNotificationsSetting } from '../../settings';
 | 
					 | 
				
			||||||
import { setBrowserSupport, setSubscription, clearSubscription } from './setter';
 | 
					 | 
				
			||||||
import { me } from '../../initial_state';
 | 
					import { me } from '../../initial_state';
 | 
				
			||||||
 | 
					import { pushNotificationsSetting } from '../../settings';
 | 
				
			||||||
 | 
					import { decode as decodeBase64 } from '../../utils/base64';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { setBrowserSupport, setSubscription, clearSubscription } from './setter';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Taken from https://www.npmjs.com/package/web-push
 | 
					// Taken from https://www.npmjs.com/package/web-push
 | 
				
			||||||
const urlBase64ToUint8Array = (base64String) => {
 | 
					const urlBase64ToUint8Array = (base64String) => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { openModal } from './modal';
 | 
					import { openModal } from './modal';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const REPORT_SUBMIT_REQUEST = 'REPORT_SUBMIT_REQUEST';
 | 
					export const REPORT_SUBMIT_REQUEST = 'REPORT_SUBMIT_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { fetchRelationships } from './accounts';
 | 
					import { fetchRelationships } from './accounts';
 | 
				
			||||||
import { importFetchedAccounts, importFetchedStatuses } from './importer';
 | 
					import { importFetchedAccounts, importFetchedStatuses } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedAccount } from './importer';
 | 
					import { importFetchedAccount } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST';
 | 
					export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
import api from '../api';
 | 
					 | 
				
			||||||
import { debounce } from 'lodash';
 | 
					import { debounce } from 'lodash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { showAlertForError } from './alerts';
 | 
					import { showAlertForError } from './alerts';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const SETTING_CHANGE = 'SETTING_CHANGE';
 | 
					export const SETTING_CHANGE = 'SETTING_CHANGE';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { deleteFromTimelines } from './timelines';
 | 
					 | 
				
			||||||
import { importFetchedStatus, importFetchedStatuses, importFetchedAccount } from './importer';
 | 
					 | 
				
			||||||
import { ensureComposeIsVisible, setComposeToStatus } from './compose';
 | 
					import { ensureComposeIsVisible, setComposeToStatus } from './compose';
 | 
				
			||||||
 | 
					import { importFetchedStatus, importFetchedStatuses, importFetchedAccount } from './importer';
 | 
				
			||||||
 | 
					import { deleteFromTimelines } from './timelines';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const STATUS_FETCH_REQUEST = 'STATUS_FETCH_REQUEST';
 | 
					export const STATUS_FETCH_REQUEST = 'STATUS_FETCH_REQUEST';
 | 
				
			||||||
export const STATUS_FETCH_SUCCESS = 'STATUS_FETCH_SUCCESS';
 | 
					export const STATUS_FETCH_SUCCESS = 'STATUS_FETCH_SUCCESS';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import { Iterable, fromJS } from 'immutable';
 | 
					import { Iterable, fromJS } from 'immutable';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { hydrateCompose } from './compose';
 | 
					import { hydrateCompose } from './compose';
 | 
				
			||||||
import { importFetchedAccounts } from './importer';
 | 
					import { importFetchedAccounts } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,17 @@
 | 
				
			|||||||
// @ts-check
 | 
					// @ts-check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { getLocale } from '../locales';
 | 
				
			||||||
import { connectStream } from '../stream';
 | 
					import { connectStream } from '../stream';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  fetchAnnouncements,
 | 
				
			||||||
 | 
					  updateAnnouncements,
 | 
				
			||||||
 | 
					  updateReaction as updateAnnouncementsReaction,
 | 
				
			||||||
 | 
					  deleteAnnouncement,
 | 
				
			||||||
 | 
					} from './announcements';
 | 
				
			||||||
 | 
					import { updateConversations } from './conversations';
 | 
				
			||||||
 | 
					import { updateNotifications, expandNotifications } from './notifications';
 | 
				
			||||||
 | 
					import { updateStatus } from './statuses';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  updateTimeline,
 | 
					  updateTimeline,
 | 
				
			||||||
  deleteFromTimelines,
 | 
					  deleteFromTimelines,
 | 
				
			||||||
@@ -12,16 +23,6 @@ import {
 | 
				
			|||||||
  fillCommunityTimelineGaps,
 | 
					  fillCommunityTimelineGaps,
 | 
				
			||||||
  fillListTimelineGaps,
 | 
					  fillListTimelineGaps,
 | 
				
			||||||
} from './timelines';
 | 
					} from './timelines';
 | 
				
			||||||
import { updateNotifications, expandNotifications } from './notifications';
 | 
					 | 
				
			||||||
import { updateConversations } from './conversations';
 | 
					 | 
				
			||||||
import { updateStatus } from './statuses';
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  fetchAnnouncements,
 | 
					 | 
				
			||||||
  updateAnnouncements,
 | 
					 | 
				
			||||||
  updateReaction as updateAnnouncementsReaction,
 | 
					 | 
				
			||||||
  deleteAnnouncement,
 | 
					 | 
				
			||||||
} from './announcements';
 | 
					 | 
				
			||||||
import { getLocale } from '../locales';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { messages } = getLocale();
 | 
					const { messages } = getLocale();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import api from '../api';
 | 
					import api from '../api';
 | 
				
			||||||
import { importFetchedAccounts } from './importer';
 | 
					
 | 
				
			||||||
import { fetchRelationships } from './accounts';
 | 
					import { fetchRelationships } from './accounts';
 | 
				
			||||||
 | 
					import { importFetchedAccounts } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const SUGGESTIONS_FETCH_REQUEST = 'SUGGESTIONS_FETCH_REQUEST';
 | 
					export const SUGGESTIONS_FETCH_REQUEST = 'SUGGESTIONS_FETCH_REQUEST';
 | 
				
			||||||
export const SUGGESTIONS_FETCH_SUCCESS = 'SUGGESTIONS_FETCH_SUCCESS';
 | 
					export const SUGGESTIONS_FETCH_SUCCESS = 'SUGGESTIONS_FETCH_SUCCESS';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,12 @@
 | 
				
			|||||||
import { importFetchedStatus, importFetchedStatuses } from './importer';
 | 
					 | 
				
			||||||
import { submitMarkers } from './markers';
 | 
					 | 
				
			||||||
import api, { getLinks } from 'mastodon/api';
 | 
					 | 
				
			||||||
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
 | 
					import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api, { getLinks } from 'mastodon/api';
 | 
				
			||||||
import { compareId } from 'mastodon/compare_id';
 | 
					import { compareId } from 'mastodon/compare_id';
 | 
				
			||||||
import { usePendingItems as preferPendingItems } from 'mastodon/initial_state';
 | 
					import { usePendingItems as preferPendingItems } from 'mastodon/initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { importFetchedStatus, importFetchedStatuses } from './importer';
 | 
				
			||||||
 | 
					import { submitMarkers } from './markers';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const TIMELINE_UPDATE  = 'TIMELINE_UPDATE';
 | 
					export const TIMELINE_UPDATE  = 'TIMELINE_UPDATE';
 | 
				
			||||||
export const TIMELINE_DELETE  = 'TIMELINE_DELETE';
 | 
					export const TIMELINE_DELETE  = 'TIMELINE_DELETE';
 | 
				
			||||||
export const TIMELINE_CLEAR   = 'TIMELINE_CLEAR';
 | 
					export const TIMELINE_CLEAR   = 'TIMELINE_CLEAR';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import api, { getLinks } from '../api';
 | 
					import api, { getLinks } from '../api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { importFetchedStatuses } from './importer';
 | 
					import { importFetchedStatuses } from './importer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const TRENDS_TAGS_FETCH_REQUEST = 'TRENDS_TAGS_FETCH_REQUEST';
 | 
					export const TRENDS_TAGS_FETCH_REQUEST = 'TRENDS_TAGS_FETCH_REQUEST';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import axios from 'axios';
 | 
					import axios from 'axios';
 | 
				
			||||||
import LinkHeader from 'http-link-header';
 | 
					import LinkHeader from 'http-link-header';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ready from './ready';
 | 
					import ready from './ready';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import renderer from 'react-test-renderer';
 | 
					import renderer from 'react-test-renderer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import AutosuggestEmoji from '../autosuggest_emoji';
 | 
					import AutosuggestEmoji from '../autosuggest_emoji';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<AutosuggestEmoji />', () => {
 | 
					describe('<AutosuggestEmoji />', () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
import renderer from 'react-test-renderer';
 | 
					 | 
				
			||||||
import { fromJS } from 'immutable';
 | 
					import { fromJS } from 'immutable';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import renderer from 'react-test-renderer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Avatar } from '../avatar';
 | 
					import { Avatar } from '../avatar';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<Avatar />', () => {
 | 
					describe('<Avatar />', () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
import renderer from 'react-test-renderer';
 | 
					 | 
				
			||||||
import { fromJS } from 'immutable';
 | 
					import { fromJS } from 'immutable';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import renderer from 'react-test-renderer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { AvatarOverlay } from '../avatar_overlay';
 | 
					import { AvatarOverlay } from '../avatar_overlay';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<AvatarOverlay', () => {
 | 
					describe('<AvatarOverlay', () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
import { render, fireEvent, screen } from '@testing-library/react';
 | 
					import { render, fireEvent, screen } from '@testing-library/react';
 | 
				
			||||||
import renderer from 'react-test-renderer';
 | 
					import renderer from 'react-test-renderer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Button from '../button';
 | 
					import Button from '../button';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<Button />', () => {
 | 
					describe('<Button />', () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
import renderer from 'react-test-renderer';
 | 
					 | 
				
			||||||
import { fromJS }  from 'immutable';
 | 
					import { fromJS }  from 'immutable';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import renderer from 'react-test-renderer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { DisplayName } from '../display_name';
 | 
					import { DisplayName } from '../display_name';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<DisplayName />', () => {
 | 
					describe('<DisplayName />', () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,24 @@
 | 
				
			|||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { defineMessages, injectIntl } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					import { Link } from 'react-router-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { counterRenderer } from 'mastodon/components/common_counter';
 | 
				
			||||||
 | 
					import { EmptyAccount } from 'mastodon/components/empty_account';
 | 
				
			||||||
 | 
					import ShortNumber from 'mastodon/components/short_number';
 | 
				
			||||||
 | 
					import { VerifiedBadge } from 'mastodon/components/verified_badge';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { me } from '../initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Avatar } from './avatar';
 | 
					import { Avatar } from './avatar';
 | 
				
			||||||
import { DisplayName } from './display_name';
 | 
					import { DisplayName } from './display_name';
 | 
				
			||||||
import { IconButton } from './icon_button';
 | 
					import { IconButton } from './icon_button';
 | 
				
			||||||
import { defineMessages, injectIntl } from 'react-intl';
 | 
					 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					 | 
				
			||||||
import { me } from '../initial_state';
 | 
					 | 
				
			||||||
import { RelativeTimestamp } from './relative_timestamp';
 | 
					import { RelativeTimestamp } from './relative_timestamp';
 | 
				
			||||||
import { Link } from 'react-router-dom';
 | 
					 | 
				
			||||||
import { counterRenderer } from 'mastodon/components/common_counter';
 | 
					 | 
				
			||||||
import ShortNumber from 'mastodon/components/short_number';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					 | 
				
			||||||
import { VerifiedBadge } from 'mastodon/components/verified_badge';
 | 
					 | 
				
			||||||
import { EmptyAccount } from 'mastodon/components/empty_account';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  follow: { id: 'account.follow', defaultMessage: 'Follow' },
 | 
					  follow: { id: 'account.follow', defaultMessage: 'Follow' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,13 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import api from 'mastodon/api';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedNumber } from 'react-intl';
 | 
					import { FormattedNumber } from 'react-intl';
 | 
				
			||||||
import { Sparklines, SparklinesCurve } from 'react-sparklines';
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Sparklines, SparklinesCurve } from 'react-sparklines';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api from 'mastodon/api';
 | 
				
			||||||
import { Skeleton } from 'mastodon/components/skeleton';
 | 
					import { Skeleton } from 'mastodon/components/skeleton';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const percIncrease = (a, b) => {
 | 
					const percIncrease = (a, b) => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,11 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import api from 'mastodon/api';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedNumber } from 'react-intl';
 | 
					import { FormattedNumber } from 'react-intl';
 | 
				
			||||||
import { roundTo10 } from 'mastodon/utils/numbers';
 | 
					
 | 
				
			||||||
 | 
					import api from 'mastodon/api';
 | 
				
			||||||
import { Skeleton } from 'mastodon/components/skeleton';
 | 
					import { Skeleton } from 'mastodon/components/skeleton';
 | 
				
			||||||
 | 
					import { roundTo10 } from 'mastodon/utils/numbers';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class Dimension extends PureComponent {
 | 
					export default class Dimension extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,12 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import api from 'mastodon/api';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { injectIntl, defineMessages } from 'react-intl';
 | 
					import { injectIntl, defineMessages } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api from 'mastodon/api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  other: { id: 'report.categories.other', defaultMessage: 'Other' },
 | 
					  other: { id: 'report.categories.other', defaultMessage: 'Other' },
 | 
				
			||||||
  spam: { id: 'report.categories.spam', defaultMessage: 'Spam' },
 | 
					  spam: { id: 'report.categories.spam', defaultMessage: 'Spam' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,11 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import api from 'mastodon/api';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage, FormattedNumber, FormattedDate } from 'react-intl';
 | 
					import { FormattedMessage, FormattedNumber, FormattedDate } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api from 'mastodon/api';
 | 
				
			||||||
import { roundTo10 } from 'mastodon/utils/numbers';
 | 
					import { roundTo10 } from 'mastodon/utils/numbers';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const dateForCohort = cohort => {
 | 
					const dateForCohort = cohort => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,11 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import api from 'mastodon/api';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import api from 'mastodon/api';
 | 
				
			||||||
import Hashtag from 'mastodon/components/hashtag';
 | 
					import Hashtag from 'mastodon/components/hashtag';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class Trends extends PureComponent {
 | 
					export default class Trends extends PureComponent {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,12 @@
 | 
				
			|||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					
 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const filename = url => url.split('/').pop().split('#')[0].split('?')[0];
 | 
					const filename = url => url.split('/').pop().split('#')[0].split('?')[0];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import unicodeMapping from '../features/emoji/emoji_unicode_mapping_light';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { assetHost } from 'mastodon/utils/config';
 | 
					import { assetHost } from 'mastodon/utils/config';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import unicodeMapping from '../features/emoji/emoji_unicode_mapping_light';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class AutosuggestEmoji extends PureComponent {
 | 
					export default class AutosuggestEmoji extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import ShortNumber from 'mastodon/components/short_number';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ShortNumber from 'mastodon/components/short_number';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class AutosuggestHashtag extends PureComponent {
 | 
					export default class AutosuggestHashtag extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,14 @@
 | 
				
			|||||||
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
 | 
					import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import AutosuggestEmoji from './autosuggest_emoji';
 | 
					import AutosuggestEmoji from './autosuggest_emoji';
 | 
				
			||||||
import AutosuggestHashtag from './autosuggest_hashtag';
 | 
					import AutosuggestHashtag from './autosuggest_hashtag';
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const textAtCursorMatchesToken = (str, caretPosition, searchTokens) => {
 | 
					const textAtCursorMatchesToken = (str, caretPosition, searchTokens) => {
 | 
				
			||||||
  let word;
 | 
					  let word;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,16 @@
 | 
				
			|||||||
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Textarea from 'react-textarea-autosize';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
 | 
					import AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import AutosuggestEmoji from './autosuggest_emoji';
 | 
					import AutosuggestEmoji from './autosuggest_emoji';
 | 
				
			||||||
import AutosuggestHashtag from './autosuggest_hashtag';
 | 
					import AutosuggestHashtag from './autosuggest_hashtag';
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					 | 
				
			||||||
import Textarea from 'react-textarea-autosize';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const textAtCursorMatchesToken = (str, caretPosition) => {
 | 
					const textAtCursorMatchesToken = (str, caretPosition) => {
 | 
				
			||||||
  let word;
 | 
					  let word;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,10 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { autoPlayGif } from '../initial_state';
 | 
					import { autoPlayGif } from '../initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Avatar } from './avatar';
 | 
					import { Avatar } from './avatar';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class AvatarComposite extends PureComponent {
 | 
					export default class AvatarComposite extends PureComponent {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class Button extends PureComponent {
 | 
					export default class Button extends PureComponent {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { supportsPassiveEvents } from 'detect-passive-events';
 | 
					import { supportsPassiveEvents } from 'detect-passive-events';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { scrollTop } from '../scroll';
 | 
					import { scrollTop } from '../scroll';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const listenerOptions = supportsPassiveEvents ? { passive: true } : false;
 | 
					const listenerOptions = supportsPassiveEvents ? { passive: true } : false;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,11 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import { createPortal } from 'react-dom';
 | 
					import { createPortal } from 'react-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class ColumnBackButton extends PureComponent {
 | 
					export default class ColumnBackButton extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static contextTypes = {
 | 
					  static contextTypes = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,9 @@
 | 
				
			|||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
import ColumnBackButton from './column_back_button';
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ColumnBackButton from './column_back_button';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class ColumnBackButtonSlim extends ColumnBackButton {
 | 
					export default class ColumnBackButtonSlim extends ColumnBackButton {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  render () {
 | 
					  render () {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,11 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import { createPortal } from 'react-dom';
 | 
					import { createPortal } from 'react-dom';
 | 
				
			||||||
import classNames from 'classnames';
 | 
					
 | 
				
			||||||
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
 | 
					import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,12 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import { IconButton } from './icon_button';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { injectIntl, defineMessages } from 'react-intl';
 | 
					import { injectIntl, defineMessages } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { bannerSettings } from 'mastodon/settings';
 | 
					import { bannerSettings } from 'mastodon/settings';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { IconButton } from './icon_button';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  dismiss: { id: 'dismissable_banner.dismiss', defaultMessage: 'Dismiss' },
 | 
					  dismiss: { id: 'dismissable_banner.dismiss', defaultMessage: 'Dismiss' },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +1,17 @@
 | 
				
			|||||||
import { PureComponent, cloneElement, Children } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import { PureComponent, cloneElement, Children } from 'react';
 | 
				
			||||||
import { IconButton } from './icon_button';
 | 
					
 | 
				
			||||||
import Overlay from 'react-overlays/Overlay';
 | 
					 | 
				
			||||||
import { supportsPassiveEvents } from 'detect-passive-events';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { supportsPassiveEvents } from 'detect-passive-events';
 | 
				
			||||||
 | 
					import Overlay from 'react-overlays/Overlay';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { CircularProgress } from 'mastodon/components/loading_indicator';
 | 
					import { CircularProgress } from 'mastodon/components/loading_indicator';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { IconButton } from './icon_button';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true;
 | 
					const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true;
 | 
				
			||||||
let id = 0;
 | 
					let id = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { openDropdownMenu, closeDropdownMenu } from 'mastodon/actions/dropdown_menu';
 | 
					import { openDropdownMenu, closeDropdownMenu } from 'mastodon/actions/dropdown_menu';
 | 
				
			||||||
import { fetchHistory } from 'mastodon/actions/history';
 | 
					import { fetchHistory } from 'mastodon/actions/history';
 | 
				
			||||||
import DropdownMenu from 'mastodon/components/dropdown_menu';
 | 
					import DropdownMenu from 'mastodon/components/dropdown_menu';
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +1,16 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage, injectIntl } from 'react-intl';
 | 
					import { FormattedMessage, injectIntl } from 'react-intl';
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					
 | 
				
			||||||
import DropdownMenu from './containers/dropdown_menu_container';
 | 
					 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { openModal } from 'mastodon/actions/modal';
 | 
					import { openModal } from 'mastodon/actions/modal';
 | 
				
			||||||
import { RelativeTimestamp } from 'mastodon/components/relative_timestamp';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
import InlineAccount from 'mastodon/components/inline_account';
 | 
					import InlineAccount from 'mastodon/components/inline_account';
 | 
				
			||||||
 | 
					import { RelativeTimestamp } from 'mastodon/components/relative_timestamp';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import DropdownMenu from './containers/dropdown_menu_container';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapDispatchToProps = (dispatch, { statusId }) => ({
 | 
					const mapDispatchToProps = (dispatch, { statusId }) => ({
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,14 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
import { version, source_url } from 'mastodon/initial_state';
 | 
					
 | 
				
			||||||
import StackTrace from 'stacktrace-js';
 | 
					 | 
				
			||||||
import { Helmet } from 'react-helmet';
 | 
					import { Helmet } from 'react-helmet';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import StackTrace from 'stacktrace-js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { version, source_url } from 'mastodon/initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class ErrorBoundary extends PureComponent {
 | 
					export default class ErrorBoundary extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,18 @@
 | 
				
			|||||||
// @ts-check
 | 
					// @ts-check
 | 
				
			||||||
import { Component } from 'react';
 | 
					 | 
				
			||||||
import { Sparklines, SparklinesCurve } from 'react-sparklines';
 | 
					 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import { Component } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
import { Link } from 'react-router-dom';
 | 
					import { Link } from 'react-router-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Sparklines, SparklinesCurve } from 'react-sparklines';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ShortNumber from 'mastodon/components/short_number';
 | 
					import ShortNumber from 'mastodon/components/short_number';
 | 
				
			||||||
import { Skeleton } from 'mastodon/components/skeleton';
 | 
					import { Skeleton } from 'mastodon/components/skeleton';
 | 
				
			||||||
import classNames from 'classnames';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SilentErrorBoundary extends Component {
 | 
					class SilentErrorBoundary extends Component {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
import { makeGetAccount } from 'mastodon/selectors';
 | 
					
 | 
				
			||||||
import { Avatar } from 'mastodon/components/avatar';
 | 
					import { Avatar } from 'mastodon/components/avatar';
 | 
				
			||||||
 | 
					import { makeGetAccount } from 'mastodon/selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const makeMapStateToProps = () => {
 | 
					const makeMapStateToProps = () => {
 | 
				
			||||||
  const getAccount = makeGetAccount();
 | 
					  const getAccount = makeGetAccount();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,8 @@
 | 
				
			|||||||
import { cloneElement, Component } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import scheduleIdleTask from '../features/ui/util/schedule_idle_task';
 | 
					import { cloneElement, Component } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import getRectFromEntry from '../features/ui/util/get_rect_from_entry';
 | 
					import getRectFromEntry from '../features/ui/util/get_rect_from_entry';
 | 
				
			||||||
 | 
					import scheduleIdleTask from '../features/ui/util/schedule_idle_task';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Diff these props in the "unrendered" state
 | 
					// Diff these props in the "unrendered" state
 | 
				
			||||||
const updateOnPropsForUnrendered = ['id', 'index', 'listLength', 'cachedHeight'];
 | 
					const updateOnPropsForUnrendered = ['id', 'index', 'listLength', 'cachedHeight'];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { injectIntl, defineMessages } from 'react-intl';
 | 
					import { injectIntl, defineMessages } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class LoadMore extends PureComponent {
 | 
					export default class LoadMore extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class LoadPending extends PureComponent {
 | 
					export default class LoadPending extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,13 @@
 | 
				
			|||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
import { MediaGallery, Video, Audio } from 'mastodon/features/ui/util/async-components';
 | 
					
 | 
				
			||||||
import Bundle from 'mastodon/features/ui/components/bundle';
 | 
					 | 
				
			||||||
import noop from 'lodash/noop';
 | 
					import noop from 'lodash/noop';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Bundle from 'mastodon/features/ui/components/bundle';
 | 
				
			||||||
 | 
					import { MediaGallery, Video, Audio } from 'mastodon/features/ui/util/async-components';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class MediaAttachments extends ImmutablePureComponent {
 | 
					export default class MediaAttachments extends ImmutablePureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,14 +1,21 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { is } from 'immutable';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import { IconButton } from './icon_button';
 | 
					
 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
import { autoPlayGif, cropImages, displayMedia, useBlurhash } from '../initial_state';
 | 
					
 | 
				
			||||||
 | 
					import { is } from 'immutable';
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { debounce } from 'lodash';
 | 
					import { debounce } from 'lodash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Blurhash } from 'mastodon/components/blurhash';
 | 
					import { Blurhash } from 'mastodon/components/blurhash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { autoPlayGif, cropImages, displayMedia, useBlurhash } from '../initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { IconButton } from './icon_button';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: '{number, plural, one {Hide image} other {Hide images}}' },
 | 
					  toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: '{number, plural, one {Hide image} other {Hide images}}' },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,9 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'wicg-inert';
 | 
					import 'wicg-inert';
 | 
				
			||||||
import { createBrowserHistory } from 'history';
 | 
					 | 
				
			||||||
import { multiply } from 'color-blend';
 | 
					import { multiply } from 'color-blend';
 | 
				
			||||||
 | 
					import { createBrowserHistory } from 'history';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class ModalRoot extends PureComponent {
 | 
					export default class ModalRoot extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Switch, Route, withRouter } from 'react-router-dom';
 | 
					import { Switch, Route, withRouter } from 'react-router-dom';
 | 
				
			||||||
import { showTrends } from 'mastodon/initial_state';
 | 
					
 | 
				
			||||||
import Trends from 'mastodon/features/getting_started/containers/trends_container';
 | 
					 | 
				
			||||||
import AccountNavigation from 'mastodon/features/account/navigation';
 | 
					import AccountNavigation from 'mastodon/features/account/navigation';
 | 
				
			||||||
 | 
					import Trends from 'mastodon/features/getting_started/containers/trends_container';
 | 
				
			||||||
 | 
					import { showTrends } from 'mastodon/initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const DefaultNavigation = () => (
 | 
					const DefaultNavigation = () => (
 | 
				
			||||||
  showTrends ? (
 | 
					  showTrends ? (
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,13 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import { removePictureInPicture } from 'mastodon/actions/picture_in_picture';
 | 
					
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { removePictureInPicture } from 'mastodon/actions/picture_in_picture';
 | 
				
			||||||
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class PictureInPicturePlaceholder extends PureComponent {
 | 
					class PictureInPicturePlaceholder extends PureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,14 +1,20 @@
 | 
				
			|||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					
 | 
				
			||||||
import classNames from 'classnames';
 | 
					 | 
				
			||||||
import Motion from 'mastodon/features/ui/util/optional_motion';
 | 
					 | 
				
			||||||
import spring from 'react-motion/lib/spring';
 | 
					 | 
				
			||||||
import escapeTextContentForBrowser from 'escape-html';
 | 
					import escapeTextContentForBrowser from 'escape-html';
 | 
				
			||||||
import emojify from 'mastodon/features/emoji/emoji';
 | 
					import spring from 'react-motion/lib/spring';
 | 
				
			||||||
import { RelativeTimestamp } from './relative_timestamp';
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					import emojify from 'mastodon/features/emoji/emoji';
 | 
				
			||||||
 | 
					import Motion from 'mastodon/features/ui/util/optional_motion';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { RelativeTimestamp } from './relative_timestamp';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  closed: {
 | 
					  closed: {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import illustration from 'mastodon/../images/elephant_ui_working.svg';
 | 
					import illustration from 'mastodon/../images/elephant_ui_working.svg';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const RegenerationIndicator = () => (
 | 
					const RegenerationIndicator = () => (
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,17 +1,23 @@
 | 
				
			|||||||
import { Children, cloneElement, PureComponent } from 'react';
 | 
					 | 
				
			||||||
import ScrollContainer from 'mastodon/containers/scroll_container';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { Children, cloneElement, PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { List as ImmutableList } from 'immutable';
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { supportsPassiveEvents } from 'detect-passive-events';
 | 
				
			||||||
 | 
					import { throttle } from 'lodash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ScrollContainer from 'mastodon/containers/scroll_container';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import IntersectionObserverArticleContainer from '../containers/intersection_observer_article_container';
 | 
					import IntersectionObserverArticleContainer from '../containers/intersection_observer_article_container';
 | 
				
			||||||
 | 
					import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../features/ui/util/fullscreen';
 | 
				
			||||||
 | 
					import IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import LoadMore from './load_more';
 | 
					import LoadMore from './load_more';
 | 
				
			||||||
import LoadPending from './load_pending';
 | 
					import LoadPending from './load_pending';
 | 
				
			||||||
import IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper';
 | 
					 | 
				
			||||||
import { throttle } from 'lodash';
 | 
					 | 
				
			||||||
import { List as ImmutableList } from 'immutable';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					 | 
				
			||||||
import { supportsPassiveEvents } from 'detect-passive-events';
 | 
					 | 
				
			||||||
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../features/ui/util/fullscreen';
 | 
					 | 
				
			||||||
import LoadingIndicator from './loading_indicator';
 | 
					import LoadingIndicator from './loading_indicator';
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const MOUSE_IDLE_DELAY = 300;
 | 
					const MOUSE_IDLE_DELAY = 300;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,14 +1,18 @@
 | 
				
			|||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { PureComponent } from 'react';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
 | 
					import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Link } from 'react-router-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { fetchServer } from 'mastodon/actions/server';
 | 
					import { fetchServer } from 'mastodon/actions/server';
 | 
				
			||||||
 | 
					import { ServerHeroImage } from 'mastodon/components/server_hero_image';
 | 
				
			||||||
import ShortNumber from 'mastodon/components/short_number';
 | 
					import ShortNumber from 'mastodon/components/short_number';
 | 
				
			||||||
import { Skeleton } from 'mastodon/components/skeleton';
 | 
					import { Skeleton } from 'mastodon/components/skeleton';
 | 
				
			||||||
import Account from 'mastodon/containers/account_container';
 | 
					import Account from 'mastodon/containers/account_container';
 | 
				
			||||||
import { domain } from 'mastodon/initial_state';
 | 
					import { domain } from 'mastodon/initial_state';
 | 
				
			||||||
import { ServerHeroImage } from 'mastodon/components/server_hero_image';
 | 
					 | 
				
			||||||
import { Link } from 'react-router-dom';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  aboutActiveUsers: { id: 'server_banner.about_active_users', defaultMessage: 'People using this server during the last 30 days (Monthly Active Users)' },
 | 
					  aboutActiveUsers: { id: 'server_banner.about_active_users', defaultMessage: 'People using this server during the last 30 days (Monthly Active Users)' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,10 @@
 | 
				
			|||||||
import { memo } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { toShortNumber, pluralReady, DECIMAL_UNITS } from '../utils/numbers';
 | 
					import { memo } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage, FormattedNumber } from 'react-intl';
 | 
					import { FormattedMessage, FormattedNumber } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { toShortNumber, pluralReady, DECIMAL_UNITS } from '../utils/numbers';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// @ts-check
 | 
					// @ts-check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,25 +1,31 @@
 | 
				
			|||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { Avatar } from './avatar';
 | 
					
 | 
				
			||||||
import { AvatarOverlay } from './avatar_overlay';
 | 
					 | 
				
			||||||
import { RelativeTimestamp } from './relative_timestamp';
 | 
					 | 
				
			||||||
import { DisplayName } from './display_name';
 | 
					 | 
				
			||||||
import StatusContent from './status_content';
 | 
					 | 
				
			||||||
import StatusActionBar from './status_action_bar';
 | 
					 | 
				
			||||||
import AttachmentList from './attachment_list';
 | 
					 | 
				
			||||||
import Card from '../features/status/components/card';
 | 
					 | 
				
			||||||
import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
 | 
					import { injectIntl, defineMessages, FormattedMessage } from 'react-intl';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					
 | 
				
			||||||
import { MediaGallery, Video, Audio } from '../features/ui/util/async-components';
 | 
					 | 
				
			||||||
import { HotKeys } from 'react-hotkeys';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { HotKeys } from 'react-hotkeys';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
import { displayMedia } from '../initial_state';
 | 
					 | 
				
			||||||
import PictureInPicturePlaceholder from 'mastodon/components/picture_in_picture_placeholder';
 | 
					import PictureInPicturePlaceholder from 'mastodon/components/picture_in_picture_placeholder';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Card from '../features/status/components/card';
 | 
				
			||||||
// We use the component (and not the container) since we do not want
 | 
					// We use the component (and not the container) since we do not want
 | 
				
			||||||
// to use the progress bar to show download progress
 | 
					// to use the progress bar to show download progress
 | 
				
			||||||
import Bundle from '../features/ui/components/bundle';
 | 
					import Bundle from '../features/ui/components/bundle';
 | 
				
			||||||
 | 
					import { MediaGallery, Video, Audio } from '../features/ui/util/async-components';
 | 
				
			||||||
 | 
					import { displayMedia } from '../initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import AttachmentList from './attachment_list';
 | 
				
			||||||
 | 
					import { Avatar } from './avatar';
 | 
				
			||||||
 | 
					import { AvatarOverlay } from './avatar_overlay';
 | 
				
			||||||
 | 
					import { DisplayName } from './display_name';
 | 
				
			||||||
 | 
					import { RelativeTimestamp } from './relative_timestamp';
 | 
				
			||||||
 | 
					import StatusActionBar from './status_action_bar';
 | 
				
			||||||
 | 
					import StatusContent from './status_content';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const textForScreenReader = (intl, status, rebloggedByText = false) => {
 | 
					export const textForScreenReader = (intl, status, rebloggedByText = false) => {
 | 
				
			||||||
  const displayName = status.getIn(['account', 'display_name']);
 | 
					  const displayName = status.getIn(['account', 'display_name']);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,14 +1,20 @@
 | 
				
			|||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { IconButton } from './icon_button';
 | 
					
 | 
				
			||||||
import DropdownMenuContainer from '../containers/dropdown_menu_container';
 | 
					 | 
				
			||||||
import { defineMessages, injectIntl } from 'react-intl';
 | 
					import { defineMessages, injectIntl } from 'react-intl';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					
 | 
				
			||||||
import { me } from '../initial_state';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
 | 
					import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import DropdownMenuContainer from '../containers/dropdown_menu_container';
 | 
				
			||||||
 | 
					import { me } from '../initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { IconButton } from './icon_button';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  delete: { id: 'status.delete', defaultMessage: 'Delete' },
 | 
					  delete: { id: 'status.delete', defaultMessage: 'Delete' },
 | 
				
			||||||
  redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' },
 | 
					  redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +1,16 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { FormattedMessage, injectIntl } from 'react-intl';
 | 
					import { FormattedMessage, injectIntl } from 'react-intl';
 | 
				
			||||||
import { Link } from 'react-router-dom';
 | 
					
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import classnames from 'classnames';
 | 
					import classnames from 'classnames';
 | 
				
			||||||
import PollContainer from 'mastodon/containers/poll_container';
 | 
					import { Link } from 'react-router-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					import PollContainer from 'mastodon/containers/poll_container';
 | 
				
			||||||
import { autoPlayGif, languages as preloadedLanguages } from 'mastodon/initial_state';
 | 
					import { autoPlayGif, languages as preloadedLanguages } from 'mastodon/initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top)
 | 
					const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,16 @@
 | 
				
			|||||||
import { debounce } from 'lodash';
 | 
					 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import StatusContainer from '../containers/status_container';
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { debounce } from 'lodash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import RegenerationIndicator from 'mastodon/components/regeneration_indicator';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import StatusContainer from '../containers/status_container';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import LoadGap from './load_gap';
 | 
					import LoadGap from './load_gap';
 | 
				
			||||||
import ScrollableList from './scrollable_list';
 | 
					import ScrollableList from './scrollable_list';
 | 
				
			||||||
import RegenerationIndicator from 'mastodon/components/regeneration_indicator';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class StatusList extends ImmutablePureComponent {
 | 
					export default class StatusList extends ImmutablePureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
import { makeGetAccount } from '../selectors';
 | 
					
 | 
				
			||||||
import Account from '../components/account';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  followAccount,
 | 
					  followAccount,
 | 
				
			||||||
  unfollowAccount,
 | 
					  unfollowAccount,
 | 
				
			||||||
@@ -12,7 +12,9 @@ import {
 | 
				
			|||||||
} from '../actions/accounts';
 | 
					} from '../actions/accounts';
 | 
				
			||||||
import { openModal } from '../actions/modal';
 | 
					import { openModal } from '../actions/modal';
 | 
				
			||||||
import { initMuteModal } from '../actions/mutes';
 | 
					import { initMuteModal } from '../actions/mutes';
 | 
				
			||||||
 | 
					import Account from '../components/account';
 | 
				
			||||||
import { unfollowModal } from '../initial_state';
 | 
					import { unfollowModal } from '../initial_state';
 | 
				
			||||||
 | 
					import { makeGetAccount } from '../selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
 | 
					  unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { IntlProvider, addLocaleData } from 'react-intl';
 | 
					import { IntlProvider, addLocaleData } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getLocale } from '../locales';
 | 
					import { getLocale } from '../locales';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { localeData, messages } = getLocale();
 | 
					const { localeData, messages } = getLocale();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,16 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import { Provider } from 'react-redux';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { store } from '../store';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import { hydrateStore } from '../actions/store';
 | 
					
 | 
				
			||||||
import { IntlProvider, addLocaleData } from 'react-intl';
 | 
					import { IntlProvider, addLocaleData } from 'react-intl';
 | 
				
			||||||
import { getLocale } from '../locales';
 | 
					
 | 
				
			||||||
 | 
					import { Provider } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { fetchCustomEmojis } from '../actions/custom_emojis';
 | 
				
			||||||
 | 
					import { hydrateStore } from '../actions/store';
 | 
				
			||||||
import Compose from '../features/standalone/compose';
 | 
					import Compose from '../features/standalone/compose';
 | 
				
			||||||
import initialState from '../initial_state';
 | 
					import initialState from '../initial_state';
 | 
				
			||||||
import { fetchCustomEmojis } from '../actions/custom_emojis';
 | 
					import { getLocale } from '../locales';
 | 
				
			||||||
 | 
					import { store } from '../store';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { localeData, messages } = getLocale();
 | 
					const { localeData, messages } = getLocale();
 | 
				
			||||||
addLocaleData(localeData);
 | 
					addLocaleData(localeData);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import { blockDomain, unblockDomain } from '../actions/domain_blocks';
 | 
					 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
import { Domain } from '../components/domain';
 | 
					
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { blockDomain, unblockDomain } from '../actions/domain_blocks';
 | 
				
			||||||
import { openModal } from '../actions/modal';
 | 
					import { openModal } from '../actions/modal';
 | 
				
			||||||
 | 
					import { Domain } from '../components/domain';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' },
 | 
					  blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,9 @@
 | 
				
			|||||||
import { openDropdownMenu, closeDropdownMenu } from '../actions/dropdown_menu';
 | 
					 | 
				
			||||||
import { fetchRelationships } from 'mastodon/actions/accounts';
 | 
					 | 
				
			||||||
import { openModal, closeModal } from '../actions/modal';
 | 
					 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { fetchRelationships } from 'mastodon/actions/accounts';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { openDropdownMenu, closeDropdownMenu } from '../actions/dropdown_menu';
 | 
				
			||||||
 | 
					import { openModal, closeModal } from '../actions/modal';
 | 
				
			||||||
import DropdownMenu from '../components/dropdown_menu';
 | 
					import DropdownMenu from '../components/dropdown_menu';
 | 
				
			||||||
import { isUserTouching } from '../is_mobile';
 | 
					import { isUserTouching } from '../is_mobile';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
import IntersectionObserverArticle from '../components/intersection_observer_article';
 | 
					
 | 
				
			||||||
import { setHeight } from '../actions/height_cache';
 | 
					import { setHeight } from '../actions/height_cache';
 | 
				
			||||||
 | 
					import IntersectionObserverArticle from '../components/intersection_observer_article';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const makeMapStateToProps = (state, props) => ({
 | 
					const makeMapStateToProps = (state, props) => ({
 | 
				
			||||||
  cachedHeight: state.getIn(['height_cache', props.saveHeightKey, props.id]),
 | 
					  cachedHeight: state.getIn(['height_cache', props.saveHeightKey, props.id]),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,23 @@
 | 
				
			|||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { PureComponent } from 'react';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import { Helmet } from 'react-helmet';
 | 
					
 | 
				
			||||||
import { IntlProvider, addLocaleData } from 'react-intl';
 | 
					import { IntlProvider, addLocaleData } from 'react-intl';
 | 
				
			||||||
import { Provider as ReduxProvider } from 'react-redux';
 | 
					
 | 
				
			||||||
 | 
					import { Helmet } from 'react-helmet';
 | 
				
			||||||
import { BrowserRouter, Route } from 'react-router-dom';
 | 
					import { BrowserRouter, Route } from 'react-router-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Provider as ReduxProvider } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { ScrollContext } from 'react-router-scroll-4';
 | 
					import { ScrollContext } from 'react-router-scroll-4';
 | 
				
			||||||
import { store } from 'mastodon/store';
 | 
					
 | 
				
			||||||
import UI from 'mastodon/features/ui';
 | 
					 | 
				
			||||||
import { fetchCustomEmojis } from 'mastodon/actions/custom_emojis';
 | 
					import { fetchCustomEmojis } from 'mastodon/actions/custom_emojis';
 | 
				
			||||||
import { hydrateStore } from 'mastodon/actions/store';
 | 
					import { hydrateStore } from 'mastodon/actions/store';
 | 
				
			||||||
import { connectUserStream } from 'mastodon/actions/streaming';
 | 
					import { connectUserStream } from 'mastodon/actions/streaming';
 | 
				
			||||||
import ErrorBoundary from 'mastodon/components/error_boundary';
 | 
					import ErrorBoundary from 'mastodon/components/error_boundary';
 | 
				
			||||||
 | 
					import UI from 'mastodon/features/ui';
 | 
				
			||||||
import initialState, { title as siteTitle } from 'mastodon/initial_state';
 | 
					import initialState, { title as siteTitle } from 'mastodon/initial_state';
 | 
				
			||||||
import { getLocale } from 'mastodon/locales';
 | 
					import { getLocale } from 'mastodon/locales';
 | 
				
			||||||
 | 
					import { store } from 'mastodon/store';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { localeData, messages } = getLocale();
 | 
					const { localeData, messages } = getLocale();
 | 
				
			||||||
addLocaleData(localeData);
 | 
					addLocaleData(localeData);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,21 @@
 | 
				
			|||||||
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { PureComponent } from 'react';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import { createPortal } from 'react-dom';
 | 
					import { createPortal } from 'react-dom';
 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					
 | 
				
			||||||
import { IntlProvider, addLocaleData } from 'react-intl';
 | 
					import { IntlProvider, addLocaleData } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { fromJS } from 'immutable';
 | 
					import { fromJS } from 'immutable';
 | 
				
			||||||
import { getLocale } from 'mastodon/locales';
 | 
					
 | 
				
			||||||
import { getScrollbarWidth } from 'mastodon/utils/scrollbar';
 | 
					 | 
				
			||||||
import MediaGallery from 'mastodon/components/media_gallery';
 | 
					 | 
				
			||||||
import Poll from 'mastodon/components/poll';
 | 
					 | 
				
			||||||
import { ImmutableHashtag as Hashtag } from 'mastodon/components/hashtag';
 | 
					import { ImmutableHashtag as Hashtag } from 'mastodon/components/hashtag';
 | 
				
			||||||
 | 
					import MediaGallery from 'mastodon/components/media_gallery';
 | 
				
			||||||
import ModalRoot from 'mastodon/components/modal_root';
 | 
					import ModalRoot from 'mastodon/components/modal_root';
 | 
				
			||||||
 | 
					import Poll from 'mastodon/components/poll';
 | 
				
			||||||
 | 
					import Audio from 'mastodon/features/audio';
 | 
				
			||||||
 | 
					import Card from 'mastodon/features/status/components/card';
 | 
				
			||||||
import MediaModal from 'mastodon/features/ui/components/media_modal';
 | 
					import MediaModal from 'mastodon/features/ui/components/media_modal';
 | 
				
			||||||
import Video from 'mastodon/features/video';
 | 
					import Video from 'mastodon/features/video';
 | 
				
			||||||
import Card from 'mastodon/features/status/components/card';
 | 
					import { getLocale } from 'mastodon/locales';
 | 
				
			||||||
import Audio from 'mastodon/features/audio';
 | 
					import { getScrollbarWidth } from 'mastodon/utils/scrollbar';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { localeData, messages } = getLocale();
 | 
					const { localeData, messages } = getLocale();
 | 
				
			||||||
addLocaleData(localeData);
 | 
					addLocaleData(localeData);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,9 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { debounce } from 'lodash';
 | 
					import { debounce } from 'lodash';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Poll from 'mastodon/components/poll';
 | 
					 | 
				
			||||||
import { fetchPoll, vote } from 'mastodon/actions/polls';
 | 
					import { fetchPoll, vote } from 'mastodon/actions/polls';
 | 
				
			||||||
 | 
					import Poll from 'mastodon/components/poll';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapDispatchToProps = (dispatch, { pollId }) => ({
 | 
					const mapDispatchToProps = (dispatch, { pollId }) => ({
 | 
				
			||||||
  refresh: debounce(
 | 
					  refresh: debounce(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,26 @@
 | 
				
			|||||||
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
import Status from '../components/status';
 | 
					
 | 
				
			||||||
import { makeGetStatus, makeGetPictureInPicture } from '../selectors';
 | 
					import {
 | 
				
			||||||
 | 
					  unmuteAccount,
 | 
				
			||||||
 | 
					  unblockAccount,
 | 
				
			||||||
 | 
					} from '../actions/accounts';
 | 
				
			||||||
 | 
					import { showAlertForError } from '../actions/alerts';
 | 
				
			||||||
 | 
					import { initBlockModal } from '../actions/blocks';
 | 
				
			||||||
 | 
					import { initBoostModal } from '../actions/boosts';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  replyCompose,
 | 
					  replyCompose,
 | 
				
			||||||
  mentionCompose,
 | 
					  mentionCompose,
 | 
				
			||||||
  directCompose,
 | 
					  directCompose,
 | 
				
			||||||
} from '../actions/compose';
 | 
					} from '../actions/compose';
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  blockDomain,
 | 
				
			||||||
 | 
					  unblockDomain,
 | 
				
			||||||
 | 
					} from '../actions/domain_blocks';
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  initAddFilter,
 | 
				
			||||||
 | 
					} from '../actions/filters';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  reblog,
 | 
					  reblog,
 | 
				
			||||||
  favourite,
 | 
					  favourite,
 | 
				
			||||||
@@ -16,6 +31,10 @@ import {
 | 
				
			|||||||
  pin,
 | 
					  pin,
 | 
				
			||||||
  unpin,
 | 
					  unpin,
 | 
				
			||||||
} from '../actions/interactions';
 | 
					} from '../actions/interactions';
 | 
				
			||||||
 | 
					import { openModal } from '../actions/modal';
 | 
				
			||||||
 | 
					import { initMuteModal } from '../actions/mutes';
 | 
				
			||||||
 | 
					import { deployPictureInPicture } from '../actions/picture_in_picture';
 | 
				
			||||||
 | 
					import { initReport } from '../actions/reports';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  muteStatus,
 | 
					  muteStatus,
 | 
				
			||||||
  unmuteStatus,
 | 
					  unmuteStatus,
 | 
				
			||||||
@@ -27,26 +46,9 @@ import {
 | 
				
			|||||||
  translateStatus,
 | 
					  translateStatus,
 | 
				
			||||||
  undoStatusTranslation,
 | 
					  undoStatusTranslation,
 | 
				
			||||||
} from '../actions/statuses';
 | 
					} from '../actions/statuses';
 | 
				
			||||||
import {
 | 
					import Status from '../components/status';
 | 
				
			||||||
  unmuteAccount,
 | 
					 | 
				
			||||||
  unblockAccount,
 | 
					 | 
				
			||||||
} from '../actions/accounts';
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  blockDomain,
 | 
					 | 
				
			||||||
  unblockDomain,
 | 
					 | 
				
			||||||
} from '../actions/domain_blocks';
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  initAddFilter,
 | 
					 | 
				
			||||||
} from '../actions/filters';
 | 
					 | 
				
			||||||
import { initMuteModal } from '../actions/mutes';
 | 
					 | 
				
			||||||
import { initBlockModal } from '../actions/blocks';
 | 
					 | 
				
			||||||
import { initBoostModal } from '../actions/boosts';
 | 
					 | 
				
			||||||
import { initReport } from '../actions/reports';
 | 
					 | 
				
			||||||
import { openModal } from '../actions/modal';
 | 
					 | 
				
			||||||
import { deployPictureInPicture } from '../actions/picture_in_picture';
 | 
					 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					 | 
				
			||||||
import { boostModal, deleteModal } from '../initial_state';
 | 
					import { boostModal, deleteModal } from '../initial_state';
 | 
				
			||||||
import { showAlertForError } from '../actions/alerts';
 | 
					import { makeGetStatus, makeGetPictureInPicture } from '../selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
 | 
					  deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,17 +1,21 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import Column from 'mastodon/components/column';
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
import LinkFooter from 'mastodon/features/ui/components/link_footer';
 | 
					
 | 
				
			||||||
import { Helmet } from 'react-helmet';
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
import { fetchServer, fetchExtendedDescription, fetchDomainBlocks } from 'mastodon/actions/server';
 | 
					
 | 
				
			||||||
import Account from 'mastodon/containers/account_container';
 | 
					 | 
				
			||||||
import { Skeleton } from 'mastodon/components/skeleton';
 | 
					 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					import { Helmet } from 'react-helmet';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { fetchServer, fetchExtendedDescription, fetchDomainBlocks  } from 'mastodon/actions/server';
 | 
				
			||||||
 | 
					import Column from 'mastodon/components/column';
 | 
				
			||||||
 | 
					import { Icon  }  from 'mastodon/components/icon';
 | 
				
			||||||
import { ServerHeroImage } from 'mastodon/components/server_hero_image';
 | 
					import { ServerHeroImage } from 'mastodon/components/server_hero_image';
 | 
				
			||||||
 | 
					import { Skeleton } from 'mastodon/components/skeleton';
 | 
				
			||||||
 | 
					import Account from 'mastodon/containers/account_container';
 | 
				
			||||||
 | 
					import LinkFooter from 'mastodon/features/ui/components/link_footer';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  title: { id: 'column.about', defaultMessage: 'About' },
 | 
					  title: { id: 'column.about', defaultMessage: 'About' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,13 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					
 | 
				
			||||||
import Textarea from 'react-textarea-autosize';
 | 
					 | 
				
			||||||
import { is } from 'immutable';
 | 
					import { is } from 'immutable';
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Textarea from 'react-textarea-autosize';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  placeholder: { id: 'account_note.placeholder', defaultMessage: 'Click to add a note' },
 | 
					  placeholder: { id: 'account_note.placeholder', defaultMessage: 'Click to add a note' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,10 @@
 | 
				
			|||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					
 | 
				
			||||||
import Hashtag from 'mastodon/components/hashtag';
 | 
					import Hashtag from 'mastodon/components/hashtag';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class FollowRequestNote extends ImmutablePureComponent {
 | 
					export default class FollowRequestNote extends ImmutablePureComponent {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,21 +1,26 @@
 | 
				
			|||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
					import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 | 
				
			||||||
import Button from 'mastodon/components/button';
 | 
					
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					 | 
				
			||||||
import { autoPlayGif, me, domain } from 'mastodon/initial_state';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					import { Helmet } from 'react-helmet';
 | 
				
			||||||
 | 
					import { NavLink } from 'react-router-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Avatar } from 'mastodon/components/avatar';
 | 
				
			||||||
 | 
					import Button from 'mastodon/components/button';
 | 
				
			||||||
 | 
					import { counterRenderer } from 'mastodon/components/common_counter';
 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
import { IconButton } from 'mastodon/components/icon_button';
 | 
					import { IconButton } from 'mastodon/components/icon_button';
 | 
				
			||||||
import { Avatar } from 'mastodon/components/avatar';
 | 
					 | 
				
			||||||
import { counterRenderer } from 'mastodon/components/common_counter';
 | 
					 | 
				
			||||||
import ShortNumber from 'mastodon/components/short_number';
 | 
					import ShortNumber from 'mastodon/components/short_number';
 | 
				
			||||||
import { NavLink } from 'react-router-dom';
 | 
					 | 
				
			||||||
import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
 | 
					import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
 | 
				
			||||||
 | 
					import { autoPlayGif, me, domain } from 'mastodon/initial_state';
 | 
				
			||||||
 | 
					import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import AccountNoteContainer from '../containers/account_note_container';
 | 
					import AccountNoteContainer from '../containers/account_note_container';
 | 
				
			||||||
import FollowRequestNoteContainer from '../containers/follow_request_note_container';
 | 
					import FollowRequestNoteContainer from '../containers/follow_request_note_container';
 | 
				
			||||||
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
 | 
					 | 
				
			||||||
import { Helmet } from 'react-helmet';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
 | 
					  unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { submitAccountNote } from 'mastodon/actions/account_notes';
 | 
					import { submitAccountNote } from 'mastodon/actions/account_notes';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import AccountNote from '../components/account_note';
 | 
					import AccountNote from '../components/account_note';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = (state, { account }) => ({
 | 
					const mapStateToProps = (state, { account }) => ({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,9 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import FeaturedTags from '../components/featured_tags';
 | 
					 | 
				
			||||||
import { makeGetAccount } from 'mastodon/selectors';
 | 
					 | 
				
			||||||
import { List as ImmutableList } from 'immutable';
 | 
					import { List as ImmutableList } from 'immutable';
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { makeGetAccount } from 'mastodon/selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import FeaturedTags from '../components/featured_tags';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = () => {
 | 
					const mapStateToProps = () => {
 | 
				
			||||||
  const getAccount = makeGetAccount();
 | 
					  const getAccount = makeGetAccount();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,9 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
import FollowRequestNote from '../components/follow_request_note';
 | 
					
 | 
				
			||||||
import { authorizeFollowRequest, rejectFollowRequest } from 'mastodon/actions/accounts';
 | 
					import { authorizeFollowRequest, rejectFollowRequest } from 'mastodon/actions/accounts';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import FollowRequestNote from '../components/follow_request_note';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapDispatchToProps = (dispatch, { account }) => ({
 | 
					const mapDispatchToProps = (dispatch, { account }) => ({
 | 
				
			||||||
  onAuthorize () {
 | 
					  onAuthorize () {
 | 
				
			||||||
    dispatch(authorizeFollowRequest(account.get('id')));
 | 
					    dispatch(authorizeFollowRequest(account.get('id')));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
import { PureComponent } from 'react';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { PureComponent } from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import FeaturedTags from 'mastodon/features/account/containers/featured_tags_container';
 | 
					import FeaturedTags from 'mastodon/features/account/containers/featured_tags_container';
 | 
				
			||||||
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
 | 
					import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,14 @@
 | 
				
			|||||||
import { Blurhash } from 'mastodon/components/blurhash';
 | 
					 | 
				
			||||||
import classNames from 'classnames';
 | 
					 | 
				
			||||||
import { Icon }  from 'mastodon/components/icon';
 | 
					 | 
				
			||||||
import { autoPlayGif, displayMedia, useBlurhash } from 'mastodon/initial_state';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Blurhash } from 'mastodon/components/blurhash';
 | 
				
			||||||
 | 
					import { Icon }  from 'mastodon/components/icon';
 | 
				
			||||||
 | 
					import { autoPlayGif, displayMedia, useBlurhash } from 'mastodon/initial_state';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class MediaItem extends ImmutablePureComponent {
 | 
					export default class MediaItem extends ImmutablePureComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,21 +1,26 @@
 | 
				
			|||||||
import { connect } from 'react-redux';
 | 
					 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
import { lookupAccount, fetchAccount } from 'mastodon/actions/accounts';
 | 
					
 | 
				
			||||||
import { expandAccountMediaTimeline } from '../../actions/timelines';
 | 
					 | 
				
			||||||
import LoadingIndicator from 'mastodon/components/loading_indicator';
 | 
					 | 
				
			||||||
import Column from '../ui/components/column';
 | 
					 | 
				
			||||||
import ColumnBackButton from 'mastodon/components/column_back_button';
 | 
					 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					 | 
				
			||||||
import { getAccountGallery } from 'mastodon/selectors';
 | 
					 | 
				
			||||||
import MediaItem from './components/media_item';
 | 
					 | 
				
			||||||
import HeaderContainer from '../account_timeline/containers/header_container';
 | 
					 | 
				
			||||||
import ScrollContainer from 'mastodon/containers/scroll_container';
 | 
					 | 
				
			||||||
import LoadMore from 'mastodon/components/load_more';
 | 
					 | 
				
			||||||
import { openModal } from 'mastodon/actions/modal';
 | 
					 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
 | 
					
 | 
				
			||||||
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { lookupAccount, fetchAccount } from 'mastodon/actions/accounts';
 | 
				
			||||||
 | 
					import { openModal } from 'mastodon/actions/modal';
 | 
				
			||||||
 | 
					import ColumnBackButton from 'mastodon/components/column_back_button';
 | 
				
			||||||
 | 
					import LoadMore from 'mastodon/components/load_more';
 | 
				
			||||||
 | 
					import LoadingIndicator from 'mastodon/components/loading_indicator';
 | 
				
			||||||
 | 
					import ScrollContainer from 'mastodon/containers/scroll_container';
 | 
				
			||||||
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
 | 
					import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
 | 
				
			||||||
 | 
					import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
 | 
				
			||||||
 | 
					import { getAccountGallery } from 'mastodon/selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { expandAccountMediaTimeline } from '../../actions/timelines';
 | 
				
			||||||
 | 
					import HeaderContainer from '../account_timeline/containers/header_container';
 | 
				
			||||||
 | 
					import Column from '../ui/components/column';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import MediaItem from './components/media_item';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = (state, { params: { acct, id } }) => {
 | 
					const mapStateToProps = (state, { params: { acct, id } }) => {
 | 
				
			||||||
  const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]);
 | 
					  const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]);
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user