"`,
+ );
+ });
+
+ it('does not truncate the contents when the last child is a text node', () => {
+ const status = createStatus(
+ 'this is a #test. Some more text',
+ ['test'],
+ );
+
+ const { hashtagsInBar, statusContentProps } =
+ computeHashtagBarForStatus(status);
+
+ expect(hashtagsInBar).toEqual([]);
+ expect(statusContentProps.statusContent).toMatchInlineSnapshot(
+ `"this is a #test. Some more text"`,
+ );
+ });
+
+ it('extract tags from the last line', () => {
+ const status = createStatus(
+ '
"`,
+ );
+ });
+
+ it('puts the hashtags in the bar if a status content has hashtags in the only line and has a media', () => {
+ const status = createStatus(
+ '
',
+ ['test', 'hashtag'],
+ true,
+ );
+
+ const { hashtagsInBar, statusContentProps } =
+ computeHashtagBarForStatus(status);
+
+ expect(hashtagsInBar).toEqual(['test', 'hashtag']);
+ expect(statusContentProps.statusContent).toMatchInlineSnapshot(`""`);
+ });
+
+ it('does not use the hashtag bar if the status content is only hashtags, has a CW and a media', () => {
+ const status = createStatus(
+ '
diff --git a/app/javascript/flavours/glitch/features/compose/components/search_results.jsx b/app/javascript/flavours/glitch/features/compose/components/search_results.jsx
index a9687ffef5..e8379a9326 100644
--- a/app/javascript/flavours/glitch/features/compose/components/search_results.jsx
+++ b/app/javascript/flavours/glitch/features/compose/components/search_results.jsx
@@ -5,13 +5,14 @@ import { FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { ImmutableHashtag as Hashtag } from 'flavours/glitch/components/hashtag';
import { Icon } from 'flavours/glitch/components/icon';
import { LoadMore } from 'flavours/glitch/components/load_more';
-import AccountContainer from 'flavours/glitch/containers/account_container';
-import StatusContainer from 'flavours/glitch/containers/status_container';
import { SearchSection } from 'flavours/glitch/features/explore/components/search_section';
+import { ImmutableHashtag as Hashtag } from '../../../components/hashtag';
+import AccountContainer from '../../../containers/account_container';
+import StatusContainer from '../../../containers/status_container';
+
const INITIAL_PAGE_LIMIT = 10;
const withoutLastResult = list => {
diff --git a/app/javascript/flavours/glitch/features/compose/components/text_icon_button.jsx b/app/javascript/flavours/glitch/features/compose/components/text_icon_button.jsx
index 780e063b2e..166d022b88 100644
--- a/app/javascript/flavours/glitch/features/compose/components/text_icon_button.jsx
+++ b/app/javascript/flavours/glitch/features/compose/components/text_icon_button.jsx
@@ -22,13 +22,13 @@ export default class TextIconButton extends PureComponent {
return (
diff --git a/app/javascript/flavours/glitch/features/compose/components/upload.jsx b/app/javascript/flavours/glitch/features/compose/components/upload.jsx
index 91f649a131..ca0b32e526 100644
--- a/app/javascript/flavours/glitch/features/compose/components/upload.jsx
+++ b/app/javascript/flavours/glitch/features/compose/components/upload.jsx
@@ -7,7 +7,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import spring from 'react-motion/lib/spring';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import Motion from '../../ui/util/optional_motion';
diff --git a/app/javascript/flavours/glitch/features/compose/components/upload_progress.jsx b/app/javascript/flavours/glitch/features/compose/components/upload_progress.jsx
index 928446c728..cda57d2d85 100644
--- a/app/javascript/flavours/glitch/features/compose/components/upload_progress.jsx
+++ b/app/javascript/flavours/glitch/features/compose/components/upload_progress.jsx
@@ -5,7 +5,7 @@ import { FormattedMessage } from 'react-intl';
import spring from 'react-motion/lib/spring';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import Motion from '../../ui/util/optional_motion';
diff --git a/app/javascript/flavours/glitch/features/compose/containers/autosuggest_account_container.js b/app/javascript/flavours/glitch/features/compose/containers/autosuggest_account_container.js
index 87362a4af4..f86f01bd97 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/autosuggest_account_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/autosuggest_account_container.js
@@ -1,7 +1,6 @@
import { connect } from 'react-redux';
-import { makeGetAccount } from 'flavours/glitch/selectors';
-
+import { makeGetAccount } from '../../../selectors';
import AutosuggestAccount from '../components/autosuggest_account';
const makeMapStateToProps = () => {
diff --git a/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js b/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js
index e9724568cd..adc68840b3 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js
@@ -2,24 +2,24 @@ import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
+import { privacyPreference } from 'flavours/glitch/utils/privacy_preference';
+
import {
changeCompose,
+ submitCompose,
+ clearComposeSuggestions,
+ fetchComposeSuggestions,
+ selectComposeSuggestion,
changeComposeSpoilerText,
changeComposeSpoilerness,
changeComposeVisibility,
- clearComposeSuggestions,
- fetchComposeSuggestions,
insertEmojiCompose,
- selectComposeSuggestion,
- submitCompose,
uploadCompose,
-} from 'flavours/glitch/actions/compose';
-import { changeLocalSetting } from 'flavours/glitch/actions/local_settings';
+} from '../../../actions/compose';
+import { changeLocalSetting } from '../../../actions/local_settings';
import {
openModal,
-} from 'flavours/glitch/actions/modal';
-import { privacyPreference } from 'flavours/glitch/utils/privacy_preference';
-
+} from '../../../actions/modal';
import ComposeForm from '../components/compose_form';
const messages = defineMessages({
diff --git a/app/javascript/flavours/glitch/features/compose/containers/emoji_picker_dropdown_container.js b/app/javascript/flavours/glitch/features/compose/containers/emoji_picker_dropdown_container.js
index c06c52c14e..a0e50029df 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/emoji_picker_dropdown_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/emoji_picker_dropdown_container.js
@@ -2,9 +2,8 @@ import { Map as ImmutableMap } from 'immutable';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import { useEmoji } from 'flavours/glitch/actions/emojis';
-import { changeSetting } from 'flavours/glitch/actions/settings';
-
+import { useEmoji } from '../../../actions/emojis';
+import { changeSetting } from '../../../actions/settings';
import EmojiPickerDropdown from '../components/emoji_picker_dropdown';
const perLine = 8;
diff --git a/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js b/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
index 541365aa99..459fffd910 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
@@ -3,9 +3,9 @@ import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
import { openModal } from 'flavours/glitch/actions/modal';
-import { me } from 'flavours/glitch/initial_state';
import { logOut } from 'flavours/glitch/utils/log_out';
+import { me } from '../../../initial_state';
import NavigationBar from '../components/navigation_bar';
const messages = defineMessages({
diff --git a/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js b/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js
index cc8f341a3a..177ffcea6a 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/poll_form_container.js
@@ -8,8 +8,7 @@ import {
clearComposeSuggestions,
fetchComposeSuggestions,
selectComposeSuggestion,
-} from 'flavours/glitch/actions/compose';
-
+} from '../../../actions/compose';
import PollForm from '../components/poll_form';
const mapStateToProps = state => ({
diff --git a/app/javascript/flavours/glitch/features/compose/containers/privacy_dropdown_container.js b/app/javascript/flavours/glitch/features/compose/containers/privacy_dropdown_container.js
index dcbd977dae..6d26abf4f6 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/privacy_dropdown_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/privacy_dropdown_container.js
@@ -1,9 +1,8 @@
import { connect } from 'react-redux';
-import { changeComposeVisibility } from 'flavours/glitch/actions/compose';
-import { openModal, closeModal } from 'flavours/glitch/actions/modal';
-import { isUserTouching } from 'flavours/glitch/is_mobile';
-
+import { changeComposeVisibility } from '../../../actions/compose';
+import { openModal, closeModal } from '../../../actions/modal';
+import { isUserTouching } from '../../../is_mobile';
import PrivacyDropdown from '../components/privacy_dropdown';
const mapStateToProps = state => ({
diff --git a/app/javascript/flavours/glitch/features/compose/containers/reply_indicator_container.js b/app/javascript/flavours/glitch/features/compose/containers/reply_indicator_container.js
index 61012bcb1e..678124b2a8 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/reply_indicator_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/reply_indicator_container.js
@@ -1,7 +1,6 @@
import { connect } from 'react-redux';
-import { cancelReplyCompose } from 'flavours/glitch/actions/compose';
-
+import { cancelReplyCompose } from '../../../actions/compose';
import ReplyIndicator from '../components/reply_indicator';
const makeMapStateToProps = () => {
diff --git a/app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.jsx b/app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.jsx
index 931f396b35..5a57332dd9 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.jsx
+++ b/app/javascript/flavours/glitch/features/compose/containers/sensitive_button_container.jsx
@@ -62,8 +62,6 @@ class SensitiveButton extends PureComponent {
disabled={disabled}
/>
-
-
({
diff --git a/app/javascript/flavours/glitch/features/compose/containers/warning_container.jsx b/app/javascript/flavours/glitch/features/compose/containers/warning_container.jsx
index 16916ba9c0..f339ccdfbf 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/warning_container.jsx
+++ b/app/javascript/flavours/glitch/features/compose/containers/warning_container.jsx
@@ -10,7 +10,6 @@ import { HASHTAG_PATTERN_REGEX } from 'flavours/glitch/utils/hashtags';
import Warning from '../components/warning';
-
const mapStateToProps = state => ({
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),
hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && HASHTAG_PATTERN_REGEX.test(state.getIn(['compose', 'text'])),
diff --git a/app/javascript/flavours/glitch/features/compose/index.jsx b/app/javascript/flavours/glitch/features/compose/index.jsx
index 39ef19ef59..86d5f31485 100644
--- a/app/javascript/flavours/glitch/features/compose/index.jsx
+++ b/app/javascript/flavours/glitch/features/compose/index.jsx
@@ -12,8 +12,8 @@ import spring from 'react-motion/lib/spring';
import { mountCompose, unmountCompose, cycleElefriendCompose } from 'flavours/glitch/actions/compose';
import Column from 'flavours/glitch/components/column';
-import { mascot } from 'flavours/glitch/initial_state';
+import { mascot } from '../../initial_state';
import Motion from '../ui/util/optional_motion';
import ComposeFormContainer from './containers/compose_form_container';
diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.jsx b/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.jsx
index 03e523bfd6..8c12ea9e5f 100644
--- a/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.jsx
+++ b/app/javascript/flavours/glitch/features/direct_timeline/components/conversations_list.jsx
@@ -5,8 +5,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import { debounce } from 'lodash';
-import ScrollableList from 'flavours/glitch/components/scrollable_list';
-
+import ScrollableList from '../../../components/scrollable_list';
import ConversationContainer from '../containers/conversation_container';
export default class ConversationsList extends ImmutablePureComponent {
diff --git a/app/javascript/flavours/glitch/features/direct_timeline/containers/conversations_list_container.js b/app/javascript/flavours/glitch/features/direct_timeline/containers/conversations_list_container.js
index d0298c7233..1dcd3ec1bd 100644
--- a/app/javascript/flavours/glitch/features/direct_timeline/containers/conversations_list_container.js
+++ b/app/javascript/flavours/glitch/features/direct_timeline/containers/conversations_list_container.js
@@ -1,7 +1,6 @@
import { connect } from 'react-redux';
-import { expandConversations } from 'flavours/glitch/actions/conversations';
-
+import { expandConversations } from '../../../actions/conversations';
import ConversationsList from '../components/conversations_list';
const mapStateToProps = state => ({
diff --git a/app/javascript/flavours/glitch/features/domain_blocks/index.jsx b/app/javascript/flavours/glitch/features/domain_blocks/index.jsx
index c492552c02..9e63b2f817 100644
--- a/app/javascript/flavours/glitch/features/domain_blocks/index.jsx
+++ b/app/javascript/flavours/glitch/features/domain_blocks/index.jsx
@@ -10,18 +10,13 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
-import ScrollableList from 'flavours/glitch/components/scrollable_list';
-
import { fetchDomainBlocks, expandDomainBlocks } from '../../actions/domain_blocks';
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import { LoadingIndicator } from '../../components/loading_indicator';
+import ScrollableList from '../../components/scrollable_list';
import DomainContainer from '../../containers/domain_container';
import Column from '../ui/components/column';
-
-
-
-
const messages = defineMessages({
heading: { id: 'column.domain_blocks', defaultMessage: 'Blocked domains' },
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' },
@@ -38,7 +33,7 @@ class Blocks extends ImmutablePureComponent {
params: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
hasMore: PropTypes.bool,
- domains: ImmutablePropTypes.list,
+ domains: ImmutablePropTypes.orderedSet,
intl: PropTypes.object.isRequired,
multiColumn: PropTypes.bool,
};
diff --git a/app/javascript/flavours/glitch/features/emoji/emoji.js b/app/javascript/flavours/glitch/features/emoji/emoji.js
index b50447d406..1e6aae2394 100644
--- a/app/javascript/flavours/glitch/features/emoji/emoji.js
+++ b/app/javascript/flavours/glitch/features/emoji/emoji.js
@@ -1,8 +1,9 @@
import Trie from 'substring-trie';
-import { autoPlayGif, useSystemEmojiFont } from 'flavours/glitch/initial_state';
import { assetHost } from 'flavours/glitch/utils/config';
+import { autoPlayGif, useSystemEmojiFont } from '../../initial_state';
+
import { unicodeMapping } from './emoji_unicode_mapping_light';
const trie = new Trie(Object.keys(unicodeMapping));
@@ -137,7 +138,6 @@ const emojify = (str, customEmojis = {}) => {
};
export default emojify;
-export { unicodeMapping };
export const buildCustomEmojis = (customEmojis) => {
const emojis = [];
diff --git a/app/javascript/flavours/glitch/features/emoji/emoji_compressed.js b/app/javascript/flavours/glitch/features/emoji/emoji_compressed.js
index 6af8a93e54..70ac5e176f 100644
--- a/app/javascript/flavours/glitch/features/emoji/emoji_compressed.js
+++ b/app/javascript/flavours/glitch/features/emoji/emoji_compressed.js
@@ -93,7 +93,7 @@ Object.keys(emojiIndex.emojis).forEach(key => {
let { short_names, search, unified } = emojiMartData.emojis[key];
if (short_names[0] !== key) {
- throw new Error('The compresser expects the first short_code to be the ' +
+ throw new Error('The compressor expects the first short_code to be the ' +
'key. It may need to be rewritten if the emoji change such that this ' +
'is no longer the case.');
}
diff --git a/app/javascript/flavours/glitch/features/explore/components/story.jsx b/app/javascript/flavours/glitch/features/explore/components/story.jsx
index 8dc92a4d91..0e5ab92122 100644
--- a/app/javascript/flavours/glitch/features/explore/components/story.jsx
+++ b/app/javascript/flavours/glitch/features/explore/components/story.jsx
@@ -11,7 +11,6 @@ import { RelativeTimestamp } from 'flavours/glitch/components/relative_timestamp
import { ShortNumber } from 'flavours/glitch/components/short_number';
import { Skeleton } from 'flavours/glitch/components/skeleton';
-
export default class Story extends PureComponent {
static propTypes = {
diff --git a/app/javascript/flavours/glitch/features/explore/index.jsx b/app/javascript/flavours/glitch/features/explore/index.jsx
index f5baeb4b49..27c544af0f 100644
--- a/app/javascript/flavours/glitch/features/explore/index.jsx
+++ b/app/javascript/flavours/glitch/features/explore/index.jsx
@@ -19,8 +19,6 @@ import Statuses from './statuses';
import Suggestions from './suggestions';
import Tags from './tags';
-
-
const messages = defineMessages({
title: { id: 'explore.title', defaultMessage: 'Explore' },
searchResults: { id: 'explore.search_results', defaultMessage: 'Search results' },
diff --git a/app/javascript/flavours/glitch/features/explore/tags.jsx b/app/javascript/flavours/glitch/features/explore/tags.jsx
index bebc9bbb53..5f88a79eb6 100644
--- a/app/javascript/flavours/glitch/features/explore/tags.jsx
+++ b/app/javascript/flavours/glitch/features/explore/tags.jsx
@@ -14,8 +14,6 @@ import { ImmutableHashtag as Hashtag } from 'flavours/glitch/components/hashtag'
import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
-
-
const mapStateToProps = state => ({
hashtags: state.getIn(['trends', 'tags', 'items']),
isLoadingHashtags: state.getIn(['trends', 'tags', 'isLoading']),
diff --git a/app/javascript/flavours/glitch/features/favourites/index.jsx b/app/javascript/flavours/glitch/features/favourites/index.jsx
index 49fd62b966..ef24b7c79f 100644
--- a/app/javascript/flavours/glitch/features/favourites/index.jsx
+++ b/app/javascript/flavours/glitch/features/favourites/index.jsx
@@ -12,13 +12,12 @@ import { debounce } from 'lodash';
import { fetchFavourites, expandFavourites } from 'flavours/glitch/actions/interactions';
import ColumnHeader from 'flavours/glitch/components/column_header';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
import ScrollableList from 'flavours/glitch/components/scrollable_list';
import AccountContainer from 'flavours/glitch/containers/account_container';
import Column from 'flavours/glitch/features/ui/components/column';
-
const messages = defineMessages({
heading: { id: 'column.favourited_by', defaultMessage: 'Favourited by' },
refresh: { id: 'refresh', defaultMessage: 'Refresh' },
diff --git a/app/javascript/flavours/glitch/features/filters/select_filter.jsx b/app/javascript/flavours/glitch/features/filters/select_filter.jsx
index bae1d9ef95..de74fb240b 100644
--- a/app/javascript/flavours/glitch/features/filters/select_filter.jsx
+++ b/app/javascript/flavours/glitch/features/filters/select_filter.jsx
@@ -7,7 +7,7 @@ import { connect } from 'react-redux';
import fuzzysort from 'fuzzysort';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { toServerSideType } from 'flavours/glitch/utils/filters';
import { loupeIcon, deleteIcon } from 'flavours/glitch/utils/icons';
diff --git a/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx b/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx
index 1f665c0496..54a75dca70 100644
--- a/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx
+++ b/app/javascript/flavours/glitch/features/follow_requests/components/account_authorize.jsx
@@ -5,10 +5,10 @@ import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { Avatar } from 'flavours/glitch/components/avatar';
-import { DisplayName } from 'flavours/glitch/components/display_name';
-import { IconButton } from 'flavours/glitch/components/icon_button';
-import Permalink from 'flavours/glitch/components/permalink';
+import { Avatar } from '../../../components/avatar';
+import { DisplayName } from '../../../components/display_name';
+import { IconButton } from '../../../components/icon_button';
+import Permalink from '../../../components/permalink';
const messages = defineMessages({
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
diff --git a/app/javascript/flavours/glitch/features/follow_requests/containers/account_authorize_container.js b/app/javascript/flavours/glitch/features/follow_requests/containers/account_authorize_container.js
index 854ebaecb8..c9c8dd7d87 100644
--- a/app/javascript/flavours/glitch/features/follow_requests/containers/account_authorize_container.js
+++ b/app/javascript/flavours/glitch/features/follow_requests/containers/account_authorize_container.js
@@ -1,8 +1,7 @@
import { connect } from 'react-redux';
-import { authorizeFollowRequest, rejectFollowRequest } from 'flavours/glitch/actions/accounts';
-import { makeGetAccount } from 'flavours/glitch/selectors';
-
+import { authorizeFollowRequest, rejectFollowRequest } from '../../../actions/accounts';
+import { makeGetAccount } from '../../../selectors';
import AccountAuthorize from '../components/account_authorize';
const makeMapStateToProps = () => {
diff --git a/app/javascript/flavours/glitch/features/follow_requests/index.jsx b/app/javascript/flavours/glitch/features/follow_requests/index.jsx
index 70a2ac1e42..f5ff56d98e 100644
--- a/app/javascript/flavours/glitch/features/follow_requests/index.jsx
+++ b/app/javascript/flavours/glitch/features/follow_requests/index.jsx
@@ -10,19 +10,14 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
-import { fetchFollowRequests, expandFollowRequests } from 'flavours/glitch/actions/accounts';
-import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim';
-import ScrollableList from 'flavours/glitch/components/scrollable_list';
-import Column from 'flavours/glitch/features/ui/components/column';
-import { me } from 'flavours/glitch/initial_state';
+import { fetchFollowRequests, expandFollowRequests } from '../../actions/accounts';
+import ColumnBackButtonSlim from '../../components/column_back_button_slim';
+import ScrollableList from '../../components/scrollable_list';
+import { me } from '../../initial_state';
+import Column from '../ui/components/column';
import AccountAuthorizeContainer from './containers/account_authorize_container';
-
-
-
-
-
const messages = defineMessages({
heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' },
});
@@ -74,7 +69,6 @@ class FollowRequests extends ImmutablePureComponent {
return (
-
{
const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]);
diff --git a/app/javascript/flavours/glitch/features/following/index.jsx b/app/javascript/flavours/glitch/features/following/index.jsx
index 498aa4fbe5..4ff59f6358 100644
--- a/app/javascript/flavours/glitch/features/following/index.jsx
+++ b/app/javascript/flavours/glitch/features/following/index.jsx
@@ -8,24 +8,24 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
+import { TimelineHint } from 'flavours/glitch/components/timeline_hint';
+import BundleColumnError from 'flavours/glitch/features/ui/components/bundle_column_error';
+import { normalizeForLookup } from 'flavours/glitch/reducers/accounts_map';
+import { getAccountHidden } from 'flavours/glitch/selectors';
+
import {
lookupAccount,
fetchAccount,
fetchFollowing,
expandFollowing,
-} from 'flavours/glitch/actions/accounts';
-import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
-import ScrollableList from 'flavours/glitch/components/scrollable_list';
-import { TimelineHint } from 'flavours/glitch/components/timeline_hint';
-import AccountContainer from 'flavours/glitch/containers/account_container';
-import ProfileColumnHeader from 'flavours/glitch/features/account/components/profile_column_header';
-import HeaderContainer from 'flavours/glitch/features/account_timeline/containers/header_container';
-import BundleColumnError from 'flavours/glitch/features/ui/components/bundle_column_error';
-import Column from 'flavours/glitch/features/ui/components/column';
-import { normalizeForLookup } from 'flavours/glitch/reducers/accounts_map';
-import { getAccountHidden } from 'flavours/glitch/selectors';
-
+} from '../../actions/accounts';
+import { LoadingIndicator } from '../../components/loading_indicator';
+import ScrollableList from '../../components/scrollable_list';
+import AccountContainer from '../../containers/account_container';
+import ProfileColumnHeader from '../account/components/profile_column_header';
import LimitedAccountHint from '../account_timeline/components/limited_account_hint';
+import HeaderContainer from '../account_timeline/containers/header_container';
+import Column from '../ui/components/column';
const mapStateToProps = (state, { params: { acct, id } }) => {
const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]);
diff --git a/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx b/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx
index 31e3ceec7c..5d1a518ccb 100644
--- a/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx
+++ b/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx
@@ -14,7 +14,7 @@ import spring from 'react-motion/lib/spring';
import ReactSwipeableViews from 'react-swipeable-views';
import { AnimatedNumber } from 'flavours/glitch/components/animated_number';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { IconButton } from 'flavours/glitch/components/icon_button';
import EmojiPickerDropdown from 'flavours/glitch/features/compose/containers/emoji_picker_dropdown_container';
import { unicodeMapping } from 'flavours/glitch/features/emoji/emoji_unicode_mapping_light';
diff --git a/app/javascript/flavours/glitch/features/getting_started/index.jsx b/app/javascript/flavours/glitch/features/getting_started/index.jsx
index 0987ad9352..e803c4949c 100644
--- a/app/javascript/flavours/glitch/features/getting_started/index.jsx
+++ b/app/javascript/flavours/glitch/features/getting_started/index.jsx
@@ -14,17 +14,16 @@ import { fetchFollowRequests } from 'flavours/glitch/actions/accounts';
import { fetchLists } from 'flavours/glitch/actions/lists';
import { openModal } from 'flavours/glitch/actions/modal';
import Column from 'flavours/glitch/features/ui/components/column';
-import ColumnLink from 'flavours/glitch/features/ui/components/column_link';
-import ColumnSubheading from 'flavours/glitch/features/ui/components/column_subheading';
import LinkFooter from 'flavours/glitch/features/ui/components/link_footer';
-import { me, showTrends } from 'flavours/glitch/initial_state';
import { preferencesLink } from 'flavours/glitch/utils/backend_links';
+import { me, showTrends } from '../../initial_state';
import NavigationBar from '../compose/components/navigation_bar';
+import ColumnLink from '../ui/components/column_link';
+import ColumnSubheading from '../ui/components/column_subheading';
import TrendsContainer from './containers/trends_container';
-
const messages = defineMessages({
heading: { id: 'getting_started.heading', defaultMessage: 'Getting started' },
home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },
diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/hashtag_timeline/containers/column_settings_container.js
index 6e67d1fce4..be95004cc7 100644
--- a/app/javascript/flavours/glitch/features/hashtag_timeline/containers/column_settings_container.js
+++ b/app/javascript/flavours/glitch/features/hashtag_timeline/containers/column_settings_container.js
@@ -1,8 +1,7 @@
import { connect } from 'react-redux';
-import { changeColumnParams } from 'flavours/glitch/actions/columns';
-import api from 'flavours/glitch/api';
-
+import { changeColumnParams } from '../../../actions/columns';
+import api from '../../../api';
import ColumnSettings from '../components/column_settings';
const mapStateToProps = (state, { columnId }) => {
diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx
index 675c4cc022..b2bf169da8 100644
--- a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx
+++ b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx
@@ -16,7 +16,8 @@ import { fetchHashtag, followHashtag, unfollowHashtag } from 'flavours/glitch/ac
import { expandHashtagTimeline, clearTimeline } from 'flavours/glitch/actions/timelines';
import Column from 'flavours/glitch/components/column';
import ColumnHeader from 'flavours/glitch/components/column_header';
-import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container';
+
+import StatusListContainer from '../ui/containers/status_list_container';
import { HashtagHeader } from './components/hashtag_header';
import ColumnSettingsContainer from './containers/column_settings_container';
diff --git a/app/javascript/flavours/glitch/features/interaction_modal/index.jsx b/app/javascript/flavours/glitch/features/interaction_modal/index.jsx
index ce5219e352..7cdd58a12a 100644
--- a/app/javascript/flavours/glitch/features/interaction_modal/index.jsx
+++ b/app/javascript/flavours/glitch/features/interaction_modal/index.jsx
@@ -12,7 +12,7 @@ import { throttle, escapeRegExp } from 'lodash';
import { openModal, closeModal } from 'flavours/glitch/actions/modal';
import api from 'flavours/glitch/api';
import { Button } from 'flavours/glitch/components/button';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { registrationsOpen, sso_redirect } from 'flavours/glitch/initial_state';
const messages = defineMessages({
@@ -34,7 +34,7 @@ const mapDispatchToProps = (dispatch) => ({
},
});
-const PERSISTENCE_KEY = 'flavours/glitch_home';
+const PERSISTENCE_KEY = 'mastodon_home';
const isValidDomain = value => {
const url = new URL('https:///path');
diff --git a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx
index c12368ac09..da5d334245 100644
--- a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx
+++ b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.jsx
@@ -10,7 +10,6 @@ import { connect } from 'react-redux';
import Column from 'flavours/glitch/components/column';
import ColumnHeader from 'flavours/glitch/components/column_header';
-
const messages = defineMessages({
heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' },
});
diff --git a/app/javascript/flavours/glitch/features/list_adder/components/account.jsx b/app/javascript/flavours/glitch/features/list_adder/components/account.jsx
index 4dc9c1f893..31a2e96379 100644
--- a/app/javascript/flavours/glitch/features/list_adder/components/account.jsx
+++ b/app/javascript/flavours/glitch/features/list_adder/components/account.jsx
@@ -8,7 +8,6 @@ import { Avatar } from '../../../components/avatar';
import { DisplayName } from '../../../components/display_name';
import { makeGetAccount } from '../../../selectors';
-
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
@@ -19,7 +18,6 @@ const makeMapStateToProps = () => {
return mapStateToProps;
};
-
class Account extends ImmutablePureComponent {
static propTypes = {
diff --git a/app/javascript/flavours/glitch/features/list_adder/components/list.jsx b/app/javascript/flavours/glitch/features/list_adder/components/list.jsx
index 83a5ecb91f..f99958fd27 100644
--- a/app/javascript/flavours/glitch/features/list_adder/components/list.jsx
+++ b/app/javascript/flavours/glitch/features/list_adder/components/list.jsx
@@ -6,10 +6,10 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { removeFromListAdder, addToListAdder } from '../../../actions/lists';
-import { IconButton } from '../../../components/icon_button';
+import { IconButton } from '../../../components/icon_button';
const messages = defineMessages({
remove: { id: 'lists.account.remove', defaultMessage: 'Remove from list' },
diff --git a/app/javascript/flavours/glitch/features/list_editor/components/account.jsx b/app/javascript/flavours/glitch/features/list_editor/components/account.jsx
index 01c0444153..91a2bdb79d 100644
--- a/app/javascript/flavours/glitch/features/list_editor/components/account.jsx
+++ b/app/javascript/flavours/glitch/features/list_editor/components/account.jsx
@@ -5,10 +5,9 @@ import { defineMessages } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
-import { Avatar } from 'flavours/glitch/components/avatar';
-import { DisplayName } from 'flavours/glitch/components/display_name';
-import { IconButton } from 'flavours/glitch/components/icon_button';
-
+import { Avatar } from '../../../components/avatar';
+import { DisplayName } from '../../../components/display_name';
+import { IconButton } from '../../../components/icon_button';
const messages = defineMessages({
remove: { id: 'lists.account.remove', defaultMessage: 'Remove from list' },
diff --git a/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx b/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx
index 5c4fff27b5..9e087a97d7 100644
--- a/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx
+++ b/app/javascript/flavours/glitch/features/list_editor/components/edit_list_form.jsx
@@ -5,8 +5,8 @@ import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import { changeListEditorTitle, submitListEditor } from 'flavours/glitch/actions/lists';
-import { IconButton } from 'flavours/glitch/components/icon_button';
+import { changeListEditorTitle, submitListEditor } from '../../../actions/lists';
+import { IconButton } from '../../../components/icon_button';
const messages = defineMessages({
title: { id: 'lists.edit.submit', defaultMessage: 'Change title' },
diff --git a/app/javascript/flavours/glitch/features/list_editor/components/search.jsx b/app/javascript/flavours/glitch/features/list_editor/components/search.jsx
index a43b3b969e..43c0358ba6 100644
--- a/app/javascript/flavours/glitch/features/list_editor/components/search.jsx
+++ b/app/javascript/flavours/glitch/features/list_editor/components/search.jsx
@@ -5,7 +5,7 @@ import { defineMessages } from 'react-intl';
import classNames from 'classnames';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
const messages = defineMessages({
search: { id: 'lists.search', defaultMessage: 'Search among people you follow' },
diff --git a/app/javascript/flavours/glitch/features/list_editor/index.jsx b/app/javascript/flavours/glitch/features/list_editor/index.jsx
index 134d5ff074..dca690a3ec 100644
--- a/app/javascript/flavours/glitch/features/list_editor/index.jsx
+++ b/app/javascript/flavours/glitch/features/list_editor/index.jsx
@@ -8,8 +8,7 @@ import { connect } from 'react-redux';
import spring from 'react-motion/lib/spring';
-import { setupListEditor, clearListSuggestions, resetListEditor } from 'flavours/glitch/actions/lists';
-
+import { setupListEditor, clearListSuggestions, resetListEditor } from '../../actions/lists';
import Motion from '../ui/util/optional_motion';
import EditListForm from './components/edit_list_form';
diff --git a/app/javascript/flavours/glitch/features/list_timeline/index.jsx b/app/javascript/flavours/glitch/features/list_timeline/index.jsx
index 594cecaf74..b7c80b1671 100644
--- a/app/javascript/flavours/glitch/features/list_timeline/index.jsx
+++ b/app/javascript/flavours/glitch/features/list_timeline/index.jsx
@@ -18,7 +18,7 @@ import { connectListStream } from 'flavours/glitch/actions/streaming';
import { expandListTimeline } from 'flavours/glitch/actions/timelines';
import Column from 'flavours/glitch/components/column';
import ColumnHeader from 'flavours/glitch/components/column_header';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
import { RadioButton } from 'flavours/glitch/components/radio_button';
import BundleColumnError from 'flavours/glitch/features/ui/components/bundle_column_error';
diff --git a/app/javascript/flavours/glitch/features/mutes/index.jsx b/app/javascript/flavours/glitch/features/mutes/index.jsx
index b3c2ed38b0..f9c42378a5 100644
--- a/app/javascript/flavours/glitch/features/mutes/index.jsx
+++ b/app/javascript/flavours/glitch/features/mutes/index.jsx
@@ -10,15 +10,12 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
-import { fetchMutes, expandMutes } from 'flavours/glitch/actions/mutes';
-import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim';
-import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
-import ScrollableList from 'flavours/glitch/components/scrollable_list';
-import AccountContainer from 'flavours/glitch/containers/account_container';
-import Column from 'flavours/glitch/features/ui/components/column';
-
-
-
+import { fetchMutes, expandMutes } from '../../actions/mutes';
+import ColumnBackButtonSlim from '../../components/column_back_button_slim';
+import { LoadingIndicator } from '../../components/loading_indicator';
+import ScrollableList from '../../components/scrollable_list';
+import AccountContainer from '../../containers/account_container';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.mutes', defaultMessage: 'Muted users' },
@@ -51,7 +48,7 @@ class Mutes extends ImmutablePureComponent {
}, 300, { leading: true });
render () {
- const { intl, accountIds, hasMore, multiColumn, isLoading } = this.props;
+ const { intl, hasMore, accountIds, multiColumn, isLoading } = this.props;
if (!accountIds) {
return (
diff --git a/app/javascript/flavours/glitch/features/notifications/components/clear_column_button.jsx b/app/javascript/flavours/glitch/features/notifications/components/clear_column_button.jsx
index 0833ac29d7..c75bdf8ad4 100644
--- a/app/javascript/flavours/glitch/features/notifications/components/clear_column_button.jsx
+++ b/app/javascript/flavours/glitch/features/notifications/components/clear_column_button.jsx
@@ -3,7 +3,7 @@ import { Component } from 'react';
import { FormattedMessage } from 'react-intl';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
export default class ClearColumnButton extends Component {
diff --git a/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx b/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx
index 0e8127e362..de1e1b9519 100644
--- a/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx
+++ b/app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx
@@ -3,7 +3,7 @@ import { PureComponent } from 'react';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
const tooltips = defineMessages({
mentions: { id: 'notifications.filter.mentions', defaultMessage: 'Mentions' },
diff --git a/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx b/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx
index 25d71467d3..53bf1747a1 100644
--- a/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx
+++ b/app/javascript/flavours/glitch/features/notifications/components/notifications_permission_banner.jsx
@@ -8,11 +8,9 @@ import { connect } from 'react-redux';
import { requestBrowserPermission } from 'flavours/glitch/actions/notifications';
import { changeSetting } from 'flavours/glitch/actions/settings';
import { Button } from 'flavours/glitch/components/button';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { IconButton } from 'flavours/glitch/components/icon_button';
-
-
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
});
diff --git a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js
index cc3793fccc..b63796a8b2 100644
--- a/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js
+++ b/app/javascript/flavours/glitch/features/notifications/containers/column_settings_container.js
@@ -2,12 +2,11 @@ import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import { showAlert } from 'flavours/glitch/actions/alerts';
-import { openModal } from 'flavours/glitch/actions/modal';
-import { setFilter, clearNotifications, requestBrowserPermission } from 'flavours/glitch/actions/notifications';
-import { changeAlerts as changePushNotifications } from 'flavours/glitch/actions/push_notifications';
-import { changeSetting } from 'flavours/glitch/actions/settings';
-
+import { showAlert } from '../../../actions/alerts';
+import { openModal } from '../../../actions/modal';
+import { setFilter, clearNotifications, requestBrowserPermission } from '../../../actions/notifications';
+import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications';
+import { changeSetting } from '../../../actions/settings';
import ColumnSettings from '../components/column_settings';
const messages = defineMessages({
diff --git a/app/javascript/flavours/glitch/features/notifications/index.jsx b/app/javascript/flavours/glitch/features/notifications/index.jsx
index d84d29f112..6d42f27697 100644
--- a/app/javascript/flavours/glitch/features/notifications/index.jsx
+++ b/app/javascript/flavours/glitch/features/notifications/index.jsx
@@ -13,8 +13,12 @@ import { createSelector } from 'reselect';
import { debounce } from 'lodash';
-import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns';
-import { submitMarkers } from 'flavours/glitch/actions/markers';
+import { compareId } from 'flavours/glitch/compare_id';
+import { Icon } from 'flavours/glitch/components/icon';
+import { NotSignedInIndicator } from 'flavours/glitch/components/not_signed_in_indicator';
+
+import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
+import { submitMarkers } from '../../actions/markers';
import {
enterNotificationClearingMode,
expandNotifications,
@@ -23,26 +27,18 @@ import {
mountNotifications,
unmountNotifications,
markNotificationsAsRead,
-} from 'flavours/glitch/actions/notifications';
-import { compareId } from 'flavours/glitch/compare_id';
-import Column from 'flavours/glitch/components/column';
-import ColumnHeader from 'flavours/glitch/components/column_header';
-import { Icon } from 'flavours/glitch/components/icon';
-import { LoadGap } from 'flavours/glitch/components/load_gap';
-import { NotSignedInIndicator } from 'flavours/glitch/components/not_signed_in_indicator';
-import ScrollableList from 'flavours/glitch/components/scrollable_list';
-import NotificationPurgeButtonsContainer from 'flavours/glitch/containers/notification_purge_buttons_container';
+} from '../../actions/notifications';
+import Column from '../../components/column';
+import ColumnHeader from '../../components/column_header';
+import { LoadGap } from '../../components/load_gap';
+import ScrollableList from '../../components/scrollable_list';
+import NotificationPurgeButtonsContainer from '../../containers/notification_purge_buttons_container';
import NotificationsPermissionBanner from './components/notifications_permission_banner';
import ColumnSettingsContainer from './containers/column_settings_container';
import FilterBarContainer from './containers/filter_bar_container';
import NotificationContainer from './containers/notification_container';
-
-
-
-
-
const messages = defineMessages({
title: { id: 'column.notifications', defaultMessage: 'Notifications' },
enterNotifCleaning : { id: 'notification_purge.start', defaultMessage: 'Enter notification cleaning mode' },
diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx b/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx
index d58d77d7ab..7a2902bbf0 100644
--- a/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx
+++ b/app/javascript/flavours/glitch/features/picture_in_picture/components/header.jsx
@@ -12,8 +12,6 @@ import { Avatar } from 'flavours/glitch/components/avatar';
import { DisplayName } from 'flavours/glitch/components/display_name';
import { IconButton } from 'flavours/glitch/components/icon_button';
-
-
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
});
diff --git a/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx b/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx
index 2d083a90ec..82684c8368 100644
--- a/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx
+++ b/app/javascript/flavours/glitch/features/public_timeline/components/column_settings.jsx
@@ -5,8 +5,8 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import SettingText from 'flavours/glitch/components/setting_text';
-import SettingToggle from 'flavours/glitch/features/notifications/components/setting_toggle';
+import SettingText from '../../../components/setting_text';
+import SettingToggle from '../../notifications/components/setting_toggle';
const messages = defineMessages({
filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' },
diff --git a/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js b/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js
index b884f15f5f..6476d51ffb 100644
--- a/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js
+++ b/app/javascript/flavours/glitch/features/public_timeline/containers/column_settings_container.js
@@ -1,8 +1,7 @@
import { connect } from 'react-redux';
-import { changeColumnParams } from 'flavours/glitch/actions/columns';
-import { changeSetting } from 'flavours/glitch/actions/settings';
-
+import { changeColumnParams } from '../../../actions/columns';
+import { changeSetting } from '../../../actions/settings';
import ColumnSettings from '../components/column_settings';
const mapStateToProps = (state, { columnId }) => {
diff --git a/app/javascript/flavours/glitch/features/public_timeline/index.jsx b/app/javascript/flavours/glitch/features/public_timeline/index.jsx
index dc5d53f9d4..8c373d99ab 100644
--- a/app/javascript/flavours/glitch/features/public_timeline/index.jsx
+++ b/app/javascript/flavours/glitch/features/public_timeline/index.jsx
@@ -7,15 +7,16 @@ import { Helmet } from 'react-helmet';
import { connect } from 'react-redux';
-import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns';
-import { connectPublicStream } from 'flavours/glitch/actions/streaming';
-import { expandPublicTimeline } from 'flavours/glitch/actions/timelines';
-import Column from 'flavours/glitch/components/column';
-import ColumnHeader from 'flavours/glitch/components/column_header';
import { DismissableBanner } from 'flavours/glitch/components/dismissable_banner';
-import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container';
import { domain } from 'flavours/glitch/initial_state';
+import { addColumn, removeColumn, moveColumn } from '../../actions/columns';
+import { connectPublicStream } from '../../actions/streaming';
+import { expandPublicTimeline } from '../../actions/timelines';
+import Column from '../../components/column';
+import ColumnHeader from '../../components/column_header';
+import StatusListContainer from '../ui/containers/status_list_container';
+
import ColumnSettingsContainer from './containers/column_settings_container';
const messages = defineMessages({
@@ -43,14 +44,14 @@ const mapStateToProps = (state, { columnId }) => {
class PublicTimeline extends PureComponent {
- static defaultProps = {
- onlyMedia: false,
- };
-
static contextTypes = {
identity: PropTypes.object,
};
+ static defaultProps = {
+ onlyMedia: false,
+ };
+
static propTypes = {
dispatch: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
diff --git a/app/javascript/flavours/glitch/features/reblogs/index.jsx b/app/javascript/flavours/glitch/features/reblogs/index.jsx
index 8cc4c004f0..9e656f4852 100644
--- a/app/javascript/flavours/glitch/features/reblogs/index.jsx
+++ b/app/javascript/flavours/glitch/features/reblogs/index.jsx
@@ -10,13 +10,14 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
-import { fetchReblogs, expandReblogs } from 'flavours/glitch/actions/interactions';
-import ColumnHeader from 'flavours/glitch/components/column_header';
-import { Icon } from 'flavours/glitch/components/icon';
-import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
-import ScrollableList from 'flavours/glitch/components/scrollable_list';
-import AccountContainer from 'flavours/glitch/containers/account_container';
-import Column from 'flavours/glitch/features/ui/components/column';
+import { Icon } from 'flavours/glitch/components/icon';
+
+import { fetchReblogs, expandReblogs } from '../../actions/interactions';
+import ColumnHeader from '../../components/column_header';
+import { LoadingIndicator } from '../../components/loading_indicator';
+import ScrollableList from '../../components/scrollable_list';
+import AccountContainer from '../../containers/account_container';
+import Column from '../ui/components/column';
const messages = defineMessages({
heading: { id: 'column.reblogged_by', defaultMessage: 'Boosted by' },
diff --git a/app/javascript/flavours/glitch/features/report/statuses.jsx b/app/javascript/flavours/glitch/features/report/statuses.jsx
index 181b561625..192f6b216b 100644
--- a/app/javascript/flavours/glitch/features/report/statuses.jsx
+++ b/app/javascript/flavours/glitch/features/report/statuses.jsx
@@ -11,7 +11,6 @@ import { Button } from 'flavours/glitch/components/button';
import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
import StatusCheckBox from 'flavours/glitch/features/report/containers/status_check_box_container';
-
const mapStateToProps = (state, { accountId }) => ({
availableStatusIds: OrderedSet(state.getIn(['timelines', `account:${accountId}:with_replies`, 'items'])),
isLoading: state.getIn(['timelines', `account:${accountId}:with_replies`, 'isLoading']),
diff --git a/app/javascript/flavours/glitch/features/standalone/compose/index.jsx b/app/javascript/flavours/glitch/features/standalone/compose/index.jsx
index 8ffd98d4ec..c36e843f5a 100644
--- a/app/javascript/flavours/glitch/features/standalone/compose/index.jsx
+++ b/app/javascript/flavours/glitch/features/standalone/compose/index.jsx
@@ -1,9 +1,9 @@
import { PureComponent } from 'react';
-import ComposeFormContainer from 'flavours/glitch/features/compose/containers/compose_form_container';
-import LoadingBarContainer from 'flavours/glitch/features/ui/containers/loading_bar_container';
-import ModalContainer from 'flavours/glitch/features/ui/containers/modal_container';
-import NotificationsContainer from 'flavours/glitch/features/ui/containers/notifications_container';
+import ComposeFormContainer from '../../compose/containers/compose_form_container';
+import LoadingBarContainer from '../../ui/containers/loading_bar_container';
+import ModalContainer from '../../ui/containers/modal_container';
+import NotificationsContainer from '../../ui/containers/notifications_container';
export default class Compose extends PureComponent {
diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.jsx b/app/javascript/flavours/glitch/features/status/components/action_bar.jsx
index 13fc1ffead..820ced0dc6 100644
--- a/app/javascript/flavours/glitch/features/status/components/action_bar.jsx
+++ b/app/javascript/flavours/glitch/features/status/components/action_bar.jsx
@@ -8,14 +8,15 @@ import { withRouter } from 'react-router-dom';
import ImmutablePropTypes from 'react-immutable-proptypes';
-import { IconButton } from 'flavours/glitch/components/icon_button';
-import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container';
-import EmojiPickerDropdown from 'flavours/glitch/features/compose/containers/emoji_picker_dropdown_container';
-import { me, maxReactions } from 'flavours/glitch/initial_state';
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'flavours/glitch/permissions';
import { accountAdminLink, statusAdminLink } from 'flavours/glitch/utils/backend_links';
import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
+import { IconButton } from '../../../components/icon_button';
+import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
+import { me, maxReactions } from '../../../initial_state';
+import EmojiPickerDropdown from '../../compose/containers/emoji_picker_dropdown_container';
+
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' },
diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx
index 5d8fb5de14..1968f2c937 100644
--- a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx
+++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx
@@ -10,22 +10,22 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import { AnimatedNumber } from 'flavours/glitch/components/animated_number';
import AttachmentList from 'flavours/glitch/components/attachment_list';
-import { Avatar } from 'flavours/glitch/components/avatar';
-import { DisplayName } from 'flavours/glitch/components/display_name';
import EditedTimestamp from 'flavours/glitch/components/edited_timestamp';
import { getHashtagBarForStatus } from 'flavours/glitch/components/hashtag_bar';
import { Icon } from 'flavours/glitch/components/icon';
-import MediaGallery from 'flavours/glitch/components/media_gallery';
import PictureInPicturePlaceholder from 'flavours/glitch/components/picture_in_picture_placeholder';
-import StatusContent from 'flavours/glitch/components/status_content';
-import StatusReactions from 'flavours/glitch/components/status_reactions';
import VisibilityIcon from 'flavours/glitch/components/status_visibility_icon';
import PollContainer from 'flavours/glitch/containers/poll_container';
-import Audio from 'flavours/glitch/features/audio';
-import Video from 'flavours/glitch/features/video';
import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
+import { Avatar } from '../../../components/avatar';
+import { DisplayName } from '../../../components/display_name';
+import MediaGallery from '../../../components/media_gallery';
+import StatusContent from '../../../components/status_content';
+import StatusReactions from '../../../components/status_reactions';
+import Audio from '../../audio';
import scheduleIdleTask from '../../ui/util/schedule_idle_task';
+import Video from '../../video';
import Card from './card';
diff --git a/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js b/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js
index 3b2ea6c74c..40803441d2 100644
--- a/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js
+++ b/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js
@@ -2,14 +2,14 @@ import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
-import { showAlertForError } from 'flavours/glitch/actions/alerts';
-import { initBlockModal } from 'flavours/glitch/actions/blocks';
-import { initBoostModal } from 'flavours/glitch/actions/boosts';
+import { showAlertForError } from '../../../actions/alerts';
+import { initBlockModal } from '../../../actions/blocks';
+import { initBoostModal } from '../../../actions/boosts';
import {
replyCompose,
mentionCompose,
directCompose,
-} from 'flavours/glitch/actions/compose';
+} from '../../../actions/compose';
import {
reblog,
favourite,
@@ -17,18 +17,17 @@ import {
unfavourite,
pin,
unpin,
-} from 'flavours/glitch/actions/interactions';
-import { openModal } from 'flavours/glitch/actions/modal';
-import { initMuteModal } from 'flavours/glitch/actions/mutes';
-import { initReport } from 'flavours/glitch/actions/reports';
+} from '../../../actions/interactions';
+import { openModal } from '../../../actions/modal';
+import { initMuteModal } from '../../../actions/mutes';
+import { initReport } from '../../../actions/reports';
import {
muteStatus,
unmuteStatus,
deleteStatus,
-} from 'flavours/glitch/actions/statuses';
-import { boostModal, deleteModal } from 'flavours/glitch/initial_state';
-import { makeGetStatus } from 'flavours/glitch/selectors';
-
+} from '../../../actions/statuses';
+import { boostModal, deleteModal } from '../../../initial_state';
+import { makeGetStatus } from '../../../selectors';
import DetailedStatus from '../components/detailed_status';
const messages = defineMessages({
diff --git a/app/javascript/flavours/glitch/features/status/index.jsx b/app/javascript/flavours/glitch/features/status/index.jsx
index 02bf3aa90e..15a04e230b 100644
--- a/app/javascript/flavours/glitch/features/status/index.jsx
+++ b/app/javascript/flavours/glitch/features/status/index.jsx
@@ -14,13 +14,20 @@ import { createSelector } from 'reselect';
import { HotKeys } from 'react-hotkeys';
-import { initBlockModal } from 'flavours/glitch/actions/blocks';
-import { initBoostModal } from 'flavours/glitch/actions/boosts';
+import { Icon } from 'flavours/glitch/components/icon';
+import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
+import ScrollContainer from 'flavours/glitch/containers/scroll_container';
+import BundleColumnError from 'flavours/glitch/features/ui/components/bundle_column_error';
+import { autoUnfoldCW } from 'flavours/glitch/utils/content_warning';
+import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
+
+import { initBlockModal } from '../../actions/blocks';
+import { initBoostModal } from '../../actions/boosts';
import {
replyCompose,
mentionCompose,
directCompose,
-} from 'flavours/glitch/actions/compose';
+} from '../../actions/compose';
import {
favourite,
unfavourite,
@@ -32,11 +39,11 @@ import {
unpin,
addReaction,
removeReaction,
-} from 'flavours/glitch/actions/interactions';
-import { changeLocalSetting } from 'flavours/glitch/actions/local_settings';
-import { openModal } from 'flavours/glitch/actions/modal';
-import { initMuteModal } from 'flavours/glitch/actions/mutes';
-import { initReport } from 'flavours/glitch/actions/reports';
+} from '../../actions/interactions';
+import { changeLocalSetting } from '../../actions/local_settings';
+import { openModal } from '../../actions/modal';
+import { initMuteModal } from '../../actions/mutes';
+import { initReport } from '../../actions/reports';
import {
fetchStatus,
muteStatus,
@@ -47,20 +54,13 @@ import {
revealStatus,
translateStatus,
undoStatusTranslation,
-} from 'flavours/glitch/actions/statuses';
-import { Icon } from 'flavours/glitch/components/icon';
-import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
-import { textForScreenReader, defaultMediaVisibility } from 'flavours/glitch/components/status';
-import ScrollContainer from 'flavours/glitch/containers/scroll_container';
-import StatusContainer from 'flavours/glitch/containers/status_container';
-import BundleColumnError from 'flavours/glitch/features/ui/components/bundle_column_error';
-import Column from 'flavours/glitch/features/ui/components/column';
-import { boostModal, favouriteModal, deleteModal } from 'flavours/glitch/initial_state';
-import { makeGetStatus, makeGetPictureInPicture } from 'flavours/glitch/selectors';
-import { autoUnfoldCW } from 'flavours/glitch/utils/content_warning';
-import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
-
+} from '../../actions/statuses';
import ColumnHeader from '../../components/column_header';
+import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
+import StatusContainer from '../../containers/status_container';
+import { boostModal, favouriteModal, deleteModal } from '../../initial_state';
+import { makeGetStatus, makeGetPictureInPicture } from '../../selectors';
+import Column from '../ui/components/column';
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';
import ActionBar from './components/action_bar';
diff --git a/app/javascript/flavours/glitch/features/ui/components/actions_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/actions_modal.jsx
index 5fe914d932..42be4be11a 100644
--- a/app/javascript/flavours/glitch/features/ui/components/actions_modal.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/actions_modal.jsx
@@ -7,10 +7,11 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import { Avatar } from 'flavours/glitch/components/avatar';
import { DisplayName } from 'flavours/glitch/components/display_name';
-import { IconButton } from 'flavours/glitch/components/icon_button';
import { RelativeTimestamp } from 'flavours/glitch/components/relative_timestamp';
import StatusContent from 'flavours/glitch/components/status_content';
+import { IconButton } from '../../../components/icon_button';
+
export default class ActionsModal extends ImmutablePureComponent {
static propTypes = {
diff --git a/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx
index af444a3ddb..cfac692324 100644
--- a/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/block_modal.jsx
@@ -11,7 +11,6 @@ import { initReport } from '../../../actions/reports';
import { Button } from '../../../components/button';
import { makeGetAccount } from '../../../selectors';
-
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
diff --git a/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx
index be78bb1f58..db02e52690 100644
--- a/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/boost_modal.jsx
@@ -11,16 +11,17 @@ import { connect } from 'react-redux';
import { changeBoostPrivacy } from 'flavours/glitch/actions/boosts';
import AttachmentList from 'flavours/glitch/components/attachment_list';
-import { Avatar } from 'flavours/glitch/components/avatar';
-import { Button } from 'flavours/glitch/components/button';
-import { DisplayName } from 'flavours/glitch/components/display_name';
-import { Icon } from 'flavours/glitch/components/icon';
-import { RelativeTimestamp } from 'flavours/glitch/components/relative_timestamp';
-import StatusContent from 'flavours/glitch/components/status_content';
+import { Icon } from 'flavours/glitch/components/icon';
import VisibilityIcon from 'flavours/glitch/components/status_visibility_icon';
import PrivacyDropdown from 'flavours/glitch/features/compose/components/privacy_dropdown';
import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
+import { Avatar } from '../../../components/avatar';
+import { Button } from '../../../components/button';
+import { DisplayName } from '../../../components/display_name';
+import { RelativeTimestamp } from '../../../components/relative_timestamp';
+import StatusContent from '../../../components/status_content';
+
const messages = defineMessages({
cancel_reblog: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.jsx b/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.jsx
index de43206481..1d792a2cfe 100644
--- a/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/bundle_modal_error.jsx
@@ -3,7 +3,7 @@ import { Component } from 'react';
import { defineMessages, injectIntl } from 'react-intl';
-import { IconButton } from 'flavours/glitch/components/icon_button';
+import { IconButton } from '../../../components/icon_button';
const messages = defineMessages({
error: { id: 'bundle_modal_error.message', defaultMessage: 'Something went wrong while loading this component.' },
diff --git a/app/javascript/flavours/glitch/features/ui/components/column.jsx b/app/javascript/flavours/glitch/features/ui/components/column.jsx
index 8f6259e5b7..6e8ff93e19 100644
--- a/app/javascript/flavours/glitch/features/ui/components/column.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/column.jsx
@@ -3,8 +3,8 @@ import { PureComponent } from 'react';
import { debounce } from 'lodash';
-import { isMobile } from 'flavours/glitch/is_mobile';
-import { scrollTop } from 'flavours/glitch/scroll';
+import { isMobile } from '../../../is_mobile';
+import { scrollTop } from '../../../scroll';
import ColumnHeader from './column_header';
diff --git a/app/javascript/flavours/glitch/features/ui/components/column_header.jsx b/app/javascript/flavours/glitch/features/ui/components/column_header.jsx
index a2934e60f1..c24ab898c9 100644
--- a/app/javascript/flavours/glitch/features/ui/components/column_header.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/column_header.jsx
@@ -3,7 +3,7 @@ import { PureComponent } from 'react';
import classNames from 'classnames';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
export default class ColumnHeader extends PureComponent {
diff --git a/app/javascript/flavours/glitch/features/ui/components/columns_area.jsx b/app/javascript/flavours/glitch/features/ui/components/columns_area.jsx
index 98303ef2d5..f1e7baf8dd 100644
--- a/app/javascript/flavours/glitch/features/ui/components/columns_area.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/columns_area.jsx
@@ -6,8 +6,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import { supportsPassiveEvents } from 'detect-passive-events';
-import { scrollRight } from 'flavours/glitch/scroll';
-
+import { scrollRight } from '../../../scroll';
import BundleContainer from '../containers/bundle_container';
import {
Compose,
diff --git a/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx b/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx
index 1b92ac398f..3f9ba99e4f 100644
--- a/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/compose_panel.jsx
@@ -11,7 +11,6 @@ import SearchContainer from 'flavours/glitch/features/compose/containers/search_
import LinkFooter from './link_footer';
-
class ComposePanel extends PureComponent {
static contextTypes = {
diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx
index c7b4c736c8..59913b4bdb 100644
--- a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.jsx
@@ -3,7 +3,7 @@ import { PureComponent } from 'react';
import { injectIntl, FormattedMessage } from 'react-intl';
-import { Button } from 'flavours/glitch/components/button';
+import { Button } from '../../../components/button';
class ConfirmationModal extends PureComponent {
diff --git a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx
index 2efa6a4f16..be7266d746 100644
--- a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx
@@ -23,11 +23,11 @@ import Audio from 'flavours/glitch/features/audio';
import CharacterCounter from 'flavours/glitch/features/compose/components/character_counter';
import UploadProgress from 'flavours/glitch/features/compose/components/upload_progress';
import { Tesseract as fetchTesseract } from 'flavours/glitch/features/ui/util/async-components';
-import Video, { getPointerPosition } from 'flavours/glitch/features/video';
import { me } from 'flavours/glitch/initial_state';
import { assetHost } from 'flavours/glitch/utils/config';
import { changeUploadCompose, uploadThumbnail, onChangeMediaDescription, onChangeMediaFocus } from '../../../actions/compose';
+import Video, { getPointerPosition } from '../../video';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
diff --git a/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx
index 29821c388f..d3d74136f1 100644
--- a/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/media_modal.jsx
@@ -11,7 +11,7 @@ import ReactSwipeableViews from 'react-swipeable-views';
import { getAverageFromBlurhash } from 'flavours/glitch/blurhash';
import { GIFV } from 'flavours/glitch/components/gifv';
-import { Icon } from 'flavours/glitch/components/icon';
+import { Icon } from 'flavours/glitch/components/icon';
import { IconButton } from 'flavours/glitch/components/icon_button';
import Footer from 'flavours/glitch/features/picture_in_picture/components/footer';
import Video from 'flavours/glitch/features/video';
diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_loading.jsx b/app/javascript/flavours/glitch/features/ui/components/modal_loading.jsx
index 3206e06c6a..7d19e73513 100644
--- a/app/javascript/flavours/glitch/features/ui/components/modal_loading.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/modal_loading.jsx
@@ -1,4 +1,4 @@
-import { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';
+import { LoadingIndicator } from '../../../components/loading_indicator';
// Keep the markup in sync with
// (make sure they have the same dimensions)
diff --git a/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx
index fc72355109..2d95cabef8 100644
--- a/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/mute_modal.jsx
@@ -7,10 +7,10 @@ import { connect } from 'react-redux';
import Toggle from 'react-toggle';
-import { muteAccount } from 'flavours/glitch/actions/accounts';
-import { closeModal } from 'flavours/glitch/actions/modal';
-import { toggleHideNotifications, changeMuteDuration } from 'flavours/glitch/actions/mutes';
-import { Button } from 'flavours/glitch/components/button';
+import { muteAccount } from '../../../actions/accounts';
+import { closeModal } from '../../../actions/modal';
+import { toggleHideNotifications, changeMuteDuration } from '../../../actions/mutes';
+import { Button } from '../../../components/button';
const messages = defineMessages({
minutes: { id: 'intervals.full.minutes', defaultMessage: '{number, plural, one {# minute} other {# minutes}}' },
diff --git a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx
index f42fdf8f5e..7b47e08234 100644
--- a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx
@@ -65,7 +65,11 @@ class NavigationPanel extends Component {
return (
- {banner}
+ {banner &&
+
+ {banner}
+
+ }
{signedIn && (
<>
diff --git a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx
index 184a8d103f..5db3cb492b 100644
--- a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx
@@ -2,6 +2,7 @@ import { useCallback } from 'react';
import { FormattedMessage } from 'react-intl';
+
import { openModal } from 'flavours/glitch/actions/modal';
import { registrationsOpen, sso_redirect } from 'flavours/glitch/initial_state';
import { useAppDispatch, useAppSelector } from 'flavours/glitch/store';
diff --git a/app/javascript/flavours/glitch/features/ui/components/upload_area.jsx b/app/javascript/flavours/glitch/features/ui/components/upload_area.jsx
index 621f8c2277..9aa8e359f8 100644
--- a/app/javascript/flavours/glitch/features/ui/components/upload_area.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/upload_area.jsx
@@ -7,8 +7,6 @@ import spring from 'react-motion/lib/spring';
import Motion from '../util/optional_motion';
-
-
export default class UploadArea extends PureComponent {
static propTypes = {
diff --git a/app/javascript/flavours/glitch/features/ui/containers/bundle_container.js b/app/javascript/flavours/glitch/features/ui/containers/bundle_container.js
index ff5a35319e..6a476fe248 100644
--- a/app/javascript/flavours/glitch/features/ui/containers/bundle_container.js
+++ b/app/javascript/flavours/glitch/features/ui/containers/bundle_container.js
@@ -1,10 +1,8 @@
import { connect } from 'react-redux';
-import { fetchBundleRequest, fetchBundleSuccess, fetchBundleFail } from 'flavours/glitch/actions/bundles';
-
+import { fetchBundleRequest, fetchBundleSuccess, fetchBundleFail } from '../../../actions/bundles';
import Bundle from '../components/bundle';
-
const mapDispatchToProps = dispatch => ({
onFetch () {
dispatch(fetchBundleRequest());
diff --git a/app/javascript/flavours/glitch/features/ui/containers/modal_container.js b/app/javascript/flavours/glitch/features/ui/containers/modal_container.js
index 0d07d68a5d..1c3872cd50 100644
--- a/app/javascript/flavours/glitch/features/ui/containers/modal_container.js
+++ b/app/javascript/flavours/glitch/features/ui/containers/modal_container.js
@@ -1,7 +1,6 @@
import { connect } from 'react-redux';
-import { openModal, closeModal } from 'flavours/glitch/actions/modal';
-
+import { openModal, closeModal } from '../../../actions/modal';
import ModalRoot from '../components/modal_root';
const mapStateToProps = state => ({
diff --git a/app/javascript/flavours/glitch/features/ui/containers/notifications_container.js b/app/javascript/flavours/glitch/features/ui/containers/notifications_container.js
index 42a55a4b80..c1d19f7100 100644
--- a/app/javascript/flavours/glitch/features/ui/containers/notifications_container.js
+++ b/app/javascript/flavours/glitch/features/ui/containers/notifications_container.js
@@ -4,8 +4,8 @@ import { connect } from 'react-redux';
import { NotificationStack } from 'react-notification';
-import { dismissAlert } from 'flavours/glitch/actions/alerts';
-import { getAlerts } from 'flavours/glitch/selectors';
+import { dismissAlert } from '../../../actions/alerts';
+import { getAlerts } from '../../../selectors';
const mapStateToProps = (state, { intl }) => {
const notifications = getAlerts(state);
diff --git a/app/javascript/flavours/glitch/features/ui/containers/status_list_container.js b/app/javascript/flavours/glitch/features/ui/containers/status_list_container.js
index 5f34f5cd2e..f34d099b24 100644
--- a/app/javascript/flavours/glitch/features/ui/containers/status_list_container.js
+++ b/app/javascript/flavours/glitch/features/ui/containers/status_list_container.js
@@ -4,9 +4,9 @@ import { createSelector } from 'reselect';
import { debounce } from 'lodash';
-import { scrollTopTimeline, loadPending } from 'flavours/glitch/actions/timelines';
-import StatusList from 'flavours/glitch/components/status_list';
-import { me } from 'flavours/glitch/initial_state';
+import { scrollTopTimeline, loadPending } from '../../../actions/timelines';
+import StatusList from '../../../components/status_list';
+import { me } from '../../../initial_state';
const getRegex = createSelector([
(state, { regex }) => regex,
diff --git a/app/javascript/flavours/glitch/features/ui/index.jsx b/app/javascript/flavours/glitch/features/ui/index.jsx
index 35b2a6db4e..566421e65c 100644
--- a/app/javascript/flavours/glitch/features/ui/index.jsx
+++ b/app/javascript/flavours/glitch/features/ui/index.jsx
@@ -13,17 +13,17 @@ import { debounce } from 'lodash';
import { HotKeys } from 'react-hotkeys';
import { changeLayout } from 'flavours/glitch/actions/app';
-import { uploadCompose, resetCompose, changeComposeSpoilerness } from 'flavours/glitch/actions/compose';
-import { clearHeight } from 'flavours/glitch/actions/height_cache';
import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'flavours/glitch/actions/markers';
-import { expandNotifications, notificationsSetVisibility } from 'flavours/glitch/actions/notifications';
-import { fetchServer, fetchServerTranslationLanguages } from 'flavours/glitch/actions/server';
-import { expandHomeTimeline } from 'flavours/glitch/actions/timelines';
import PermaLink from 'flavours/glitch/components/permalink';
import PictureInPicture from 'flavours/glitch/features/picture_in_picture';
import { layoutFromWindow } from 'flavours/glitch/is_mobile';
import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
+import { uploadCompose, resetCompose, changeComposeSpoilerness } from '../../actions/compose';
+import { clearHeight } from '../../actions/height_cache';
+import { expandNotifications, notificationsSetVisibility } from '../../actions/notifications';
+import { fetchServer, fetchServerTranslationLanguages } from '../../actions/server';
+import { expandHomeTimeline } from '../../actions/timelines';
import initialState, { me, owner, singleUserMode, trendsEnabled, trendsAsLanding } from '../../initial_state';
import BundleColumnError from './components/bundle_column_error';
diff --git a/app/javascript/flavours/glitch/features/ui/util/optional_motion.js b/app/javascript/flavours/glitch/features/ui/util/optional_motion.js
index 4ec6877384..0b6d4d97f7 100644
--- a/app/javascript/flavours/glitch/features/ui/util/optional_motion.js
+++ b/app/javascript/flavours/glitch/features/ui/util/optional_motion.js
@@ -1,6 +1,6 @@
import Motion from 'react-motion/lib/Motion';
-import { reduceMotion } from 'flavours/glitch/initial_state';
+import { reduceMotion } from '../../../initial_state';
import ReducedMotion from './reduced_motion';
diff --git a/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.jsx b/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.jsx
index 0847aa4435..c0ee31bf68 100644
--- a/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.jsx
+++ b/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.jsx
@@ -5,9 +5,9 @@ import { Switch, Route, useLocation } from 'react-router-dom';
import StackTrace from 'stacktrace-js';
-import BundleColumnError from 'flavours/glitch/features/ui/components/bundle_column_error';
-import ColumnLoading from 'flavours/glitch/features/ui/components/column_loading';
-import BundleContainer from 'flavours/glitch/features/ui/containers/bundle_container';
+import BundleColumnError from '../components/bundle_column_error';
+import ColumnLoading from '../components/column_loading';
+import BundleContainer from '../containers/bundle_container';
// Small wrapper to pass multiColumn to the route components
export const WrappedSwitch = ({ multiColumn, children }) => {
@@ -30,7 +30,7 @@ WrappedSwitch.propTypes = {
children: PropTypes.node,
};
-// Small Wraper to extract the params from the route and pass
+// Small Wrapper to extract the params from the route and pass
// them to the rendered component, together with the content to
// be rendered inside (the children)
export class WrappedRoute extends Component {
diff --git a/app/javascript/flavours/glitch/features/video/index.jsx b/app/javascript/flavours/glitch/features/video/index.jsx
index 022f662699..2d50f3d8eb 100644
--- a/app/javascript/flavours/glitch/features/video/index.jsx
+++ b/app/javascript/flavours/glitch/features/video/index.jsx
@@ -10,9 +10,9 @@ import { is } from 'immutable';
import { throttle } from 'lodash';
import { Blurhash } from 'flavours/glitch/components/blurhash';
-import { Icon } from 'flavours/glitch/components/icon';
-import { displayMedia, useBlurhash } from 'flavours/glitch/initial_state';
+import { Icon } from 'flavours/glitch/components/icon';
+import { displayMedia, useBlurhash } from '../../initial_state';
import { isFullscreen, requestFullscreen, exitFullscreen } from '../ui/util/fullscreen';
const messages = defineMessages({
diff --git a/app/javascript/flavours/glitch/locales/cy.json b/app/javascript/flavours/glitch/locales/cy.json
index f7b668e4e6..487d2c08eb 100644
--- a/app/javascript/flavours/glitch/locales/cy.json
+++ b/app/javascript/flavours/glitch/locales/cy.json
@@ -1,4 +1,46 @@
{
+ "about.fork_disclaimer": "Mae Glitch-Soc yn feddalwedd di-dal a ffynhonnell agored wedi'i fforchio o Mastodon.",
+ "account.add_account_note": "Ychwanegu nodyn ar @{name}",
+ "account.disclaimer_full": "Mae'n bosib nad yw'r gwybodaeth isod yn rhoi darlun cyfan o broffil y defnyddiwr.",
+ "account.follows": "Yn dilyn",
+ "account.joined": "Ymunodd ar {date}",
+ "account.mute_notifications": "Diffodd hysbysiadau o @{name}",
+ "account.suspended_disclaimer_full": "Mae'r defnyddiwr yma wedi'i atal gan gymedrolwr.",
+ "account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
+ "account.view_full_profile": "Dangos proffil cyfan",
+ "account_note.cancel": "Canslo",
+ "account_note.edit": "Golygu",
+ "account_note.glitch_placeholder": "Dim sylw wedi'i roi",
+ "account_note.save": "Cadw",
+ "advanced_options.icon_title": "Dewisiadau uwch",
+ "advanced_options.local-only.short": "Lleol yn unig",
+ "advanced_options.local-only.tooltip": "Mae'r post yma'n lleol yn unig",
+ "advanced_options.threaded_mode.short": "Modd edafau",
+ "advanced_options.threaded_mode.tooltip": "Modd edafau wedi'i alluogi",
+ "boost_modal.missing_description": "Mae'r tŵt yma'n cynnwys ychydig gyfryngau heb ddisgrifiad",
+ "column.favourited_by": "Wedi'i hoffi gan",
+ "column.heading": "Misg",
+ "column.reblogged_by": "Wedi'i bŵstio gan",
+ "column.subheading": "Opsiynnau arall",
+ "column_header.profile": "Proffil",
+ "column_subheading.lists": "Rhestri",
+ "column_subheading.navigation": "Llywio",
+ "community.column_settings.allow_local_only": "Dangos tŵtiau lleol yn unig",
+ "compose.attach": "Atodi...",
+ "compose.attach.doodle": "Darlinio rhywbeth",
+ "compose.attach.upload": "Uwchlwythio ffeil",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Testun plaen",
+ "compose_form.poll.multiple_choices": "Caniatau sawl dewis",
+ "compose_form.poll.single_choice": "Caniatau un dewis",
+ "compose_form.spoiler": "Cuddio testun tu ôl rhybydd",
+ "confirmations.missing_media_description.confirm": "Anfon beth bynnag",
+ "confirmations.missing_media_description.edit": "Golygu cyfryngau",
+ "confirmations.unfilter.author": "Awdur",
+ "confirmations.unfilter.confirm": "Dangos",
+ "confirmations.unfilter.edit_filter": "Golygi hidlydd",
+ "content-type.change": "Math cynnwys",
"empty_column.follow_recommendations": "Does dim awgrymiadau yma i chi. Gallwch geisio chwilio am bobl rydych yn eu hadnabod neu edrych drwy hashnodau sy'n trendio.",
"follow_recommendations.done": "Wedi gorffen",
"follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json
index b57f6c35cb..2cabcfcfeb 100644
--- a/app/javascript/flavours/glitch/locales/de.json
+++ b/app/javascript/flavours/glitch/locales/de.json
@@ -4,7 +4,9 @@
"account.disclaimer_full": "Die folgenden Informationen könnten das Profil des Nutzers unvollständig wiedergeben.",
"account.follows": "Folgt",
"account.joined": "Beigetreten am {date}",
+ "account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
"account.suspended_disclaimer_full": "Dieser Nutzer wurde durch einen Moderator gesperrt.",
+ "account.unmute_notifications": "Benachrichtigungen von @{name} nicht mehr stummschalten",
"account.view_full_profile": "Vollständiges Profil anzeigen",
"account_note.cancel": "Abbrechen",
"account_note.edit": "Bearbeiten",
@@ -47,9 +49,10 @@
"confirmations.unfilter.filters": "Passende{count, plural, one {r} other {}} Filter",
"content-type.change": "Inhaltstyp",
"direct.group_by_conversations": "Nach Unterhaltung gruppieren",
- "empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen, nach Leuten zu suchen, die du vielleicht kennst, oder du kannst angesagte Hashtags erkunden.",
+ "empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen, nach Leuten, die du vielleicht kennst, oder du kannst angesagte Hashtags erkunden.",
"endorsed_accounts_editor.endorsed_accounts": "Empfohlene Konten",
"favourite_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
+ "firehose.column_settings.allow_local_only": "Zeige \"nur Lokal\"-Beiträge in \"Alle\"",
"follow_recommendations.done": "Fertig",
"follow_recommendations.heading": "Folge Leuten, deren Beiträge du sehen möchtest! Hier sind einige Vorschläge.",
"follow_recommendations.lead": "Beiträge von Leuten, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Sei unbesorgt, mal Fehler zu begehen. Du kannst Leuten jederzeit ganz einfach wieder entfolgen!",
diff --git a/app/javascript/flavours/glitch/locales/es-MX.json b/app/javascript/flavours/glitch/locales/es-MX.json
index 306a55c2df..7a8af6bed3 100644
--- a/app/javascript/flavours/glitch/locales/es-MX.json
+++ b/app/javascript/flavours/glitch/locales/es-MX.json
@@ -4,7 +4,9 @@
"account.disclaimer_full": "La información aquí presentada puede reflejar de manera incompleta el perfil del usuario.",
"account.follows": "Seguir",
"account.joined": "Unido {date}",
+ "account.mute_notifications": "Silenciar notificaciones de @{name}",
"account.suspended_disclaimer_full": "Este usuario ha sido suspendido por un moderador.",
+ "account.unmute_notifications": "Dejar de silenciar notificaciones de @{name}",
"account.view_full_profile": "Ver perfil completo",
"account_note.cancel": "Cancelar",
"account_note.edit": "Editar",
@@ -50,6 +52,7 @@
"empty_column.follow_recommendations": "Parece que no se ha podido generar ninguna sugerencia para ti. Puedes probar a buscar a gente que quizá conozcas o explorar los hashtags que están en tendencia.",
"endorsed_accounts_editor.endorsed_accounts": "Cuentas destacadas",
"favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez",
+ "firehose.column_settings.allow_local_only": "Mostrar mensajes solo-locales en \"Todo\"",
"follow_recommendations.done": "Hecho",
"follow_recommendations.heading": "¡Sigue a gente que publique cosas que te gusten! Aquí tienes algunas sugerencias.",
"follow_recommendations.lead": "Las publicaciones de la gente a la que sigas aparecerán ordenadas cronológicamente en Inicio. No tengas miedo de cometer errores, ¡puedes dejarles de seguir en cualquier momento con la misma facilidad!",
diff --git a/app/javascript/flavours/glitch/locales/es.json b/app/javascript/flavours/glitch/locales/es.json
index 0dddbcb99d..690747d305 100644
--- a/app/javascript/flavours/glitch/locales/es.json
+++ b/app/javascript/flavours/glitch/locales/es.json
@@ -1,10 +1,12 @@
{
"about.fork_disclaimer": "Glitch-soc es software gratuito, de código abierto, bifurcado de Mastodon.",
"account.add_account_note": "Añadir nota para @{name}",
- "account.disclaimer_full": "La información aquí presentada puede reflejar de manera incompleta el perfil del usuario.",
+ "account.disclaimer_full": "La información que figura a continuación puede reflejar el perfil de la cuenta de forma incompleta.",
"account.follows": "Sigue",
- "account.joined": "Unido el {date}",
+ "account.joined": "Se unió el {date}",
+ "account.mute_notifications": "Silenciar notificaciones de @{name}",
"account.suspended_disclaimer_full": "Este usuario ha sido suspendido por un moderador.",
+ "account.unmute_notifications": "Dejar de silenciar notificaciones de @{name}",
"account.view_full_profile": "Ver perfil completo",
"account_note.cancel": "Cancelar",
"account_note.edit": "Editar",
@@ -25,7 +27,7 @@
"column_header.profile": "Perfil",
"column_subheading.lists": "Listas",
"column_subheading.navigation": "Navegación",
- "community.column_settings.allow_local_only": "Mostrar sólo toots locales",
+ "community.column_settings.allow_local_only": "Mostrar toots solo-locales",
"compose.attach": "Adjuntar...",
"compose.attach.doodle": "Dibujar algo",
"compose.attach.upload": "Subir un archivo",
@@ -50,6 +52,7 @@
"empty_column.follow_recommendations": "Parece que no se ha podido generar ninguna sugerencia para ti. Puedes probar a buscar a gente que quizá conozcas o explorar los hashtags que están en tendencia.",
"endorsed_accounts_editor.endorsed_accounts": "Cuentas destacadas",
"favourite_modal.combo": "Puedes presionar {combo} para omitir esto la próxima vez",
+ "firehose.column_settings.allow_local_only": "Mostrar mensajes solo-locales en \"Todo\"",
"follow_recommendations.done": "Hecho",
"follow_recommendations.heading": "¡Sigue a gente que publique cosas que te gusten! Aquí tienes algunas sugerencias.",
"follow_recommendations.lead": "Las publicaciones de la gente a la que sigas aparecerán ordenadas cronológicamente en Inicio. No tengas miedo de cometer errores, ¡puedes dejarles de seguir en cualquier momento con la misma facilidad!",
diff --git a/app/javascript/flavours/glitch/locales/nl.json b/app/javascript/flavours/glitch/locales/nl.json
index 51a96814da..fb3ca80e4e 100644
--- a/app/javascript/flavours/glitch/locales/nl.json
+++ b/app/javascript/flavours/glitch/locales/nl.json
@@ -1,10 +1,74 @@
{
+ "account.follows": "Volgers",
+ "account.joined": "Lid sinds {date}",
+ "account.mute_notifications": "Meldingen dempen van @{name}",
+ "account.unmute_notifications": "Meldingen van @{name} niet langer dempen",
+ "account.view_full_profile": "Volledig profiel weergeven",
+ "account_note.cancel": "Annuleer",
+ "account_note.edit": "Bewerk",
+ "account_note.glitch_placeholder": "Geen notitie toegevoegd",
+ "account_note.save": "Opslaan",
+ "advanced_options.icon_title": "Geavanceerde opties",
+ "advanced_options.local-only.long": "Niet naar andere instanties sturen",
+ "advanced_options.local-only.short": "Alleen lokaal",
+ "advanced_options.local-only.tooltip": "Dit bericht alleen lokaal",
+ "advanced_options.threaded_mode.short": "Thread modus",
+ "advanced_options.threaded_mode.tooltip": "Thread modus ingeschakeld",
+ "boost_modal.missing_description": "Deze toot bevat media zonder beschrijving",
+ "column.favourited_by": "Favoriet door",
+ "column.heading": "Overige",
+ "column.reblogged_by": "Geboost door",
+ "column.subheading": "Diverse opties",
+ "column_header.profile": "Profiel",
+ "column_subheading.lists": "Lijsten",
+ "column_subheading.navigation": "Navigatie",
+ "community.column_settings.allow_local_only": "Toon alleen lokale toots",
+ "compose.attach.doodle": "Teken iets",
+ "compose.attach.upload": "Bestand uploaden",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Onopgemaakte tekst",
+ "compose_form.poll.multiple_choices": "Meerdere keuzes toestaan",
+ "compose_form.poll.single_choice": "Eén keuze toestaan",
+ "compose_form.spoiler": "Verberg tekst achter waarschuwing",
+ "confirmation_modal.do_not_ask_again": "Vraag niet meer om bevestiging",
+ "confirmations.deprecated_settings.confirm": "Gebruik voorkeuren van Mastodon",
+ "confirmations.missing_media_description.confirm": "Toch verzenden",
+ "confirmations.missing_media_description.edit": "Media bewerken",
+ "confirmations.missing_media_description.message": "Minstens één media-bijlage mist een beschrijving. Overweeg om alle mediabijlagen voor slechtzienden te beschrijven voordat u uw toot verstuurt.",
+ "confirmations.unfilter.author": "Auteur",
+ "confirmations.unfilter.confirm": "Weergeven",
+ "confirmations.unfilter.edit_filter": "Filter bewerken",
+ "content-type.change": "Inhoudstype",
+ "direct.group_by_conversations": "Groeperen op gesprek",
"empty_column.follow_recommendations": "Het lijkt er op dat er geen aanbevelingen voor jou aangemaakt kunnen worden. Je kunt proberen te zoeken naar mensen die je wellicht kent, zoeken op hashtags, de lokale en globale tijdlijnen bekijken of de gebruikersgids doorbladeren.",
+ "endorsed_accounts_editor.endorsed_accounts": "Aanbevolen accounts",
"follow_recommendations.done": "Klaar",
"follow_recommendations.heading": "Volg mensen waarvan je graag berichten wil zien! Hier zijn enkele aanbevelingen.",
"follow_recommendations.lead": "Berichten van mensen die je volgt zullen in chronologische volgorde op jouw starttijdlijn verschijnen. Wees niet bang om hierin fouten te maken, want je kunt mensen op elk moment net zo eenvoudig ontvolgen!",
+ "home.column_settings.advanced": "Geavanceerd",
+ "navigation_bar.featured_users": "Aanbevolen gebruikers",
+ "notification_purge.btn_all": "Alles selecteren",
+ "notification_purge.btn_invert": "Selectie omkeren",
+ "notifications.marked_clear": "Wis geselecteerde meldingen",
+ "notifications.marked_clear_confirmation": "Weet je zeker dat je alle geselecteerde meldingen permanent wilt wissen?",
+ "onboarding.next": "Volgende",
+ "onboarding.page_four.notifications": "Het meldingenkolom toont wanneer iemand met je omgaat.",
"onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
"onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "settings.auto_collapse_height": "Hoogte (in pixels) voor een toot om als lang beschouwd te worden",
+ "settings.auto_collapse_lengthy": "Lange toots",
+ "settings.auto_collapse_media": "Toots met media",
+ "settings.auto_collapse_notifications": "Meldingen",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Antwoorden",
+ "settings.close": "Sluiten",
"settings.content_warnings": "Content warnings",
+ "settings.general": "Algemeen",
+ "settings.media": "Media",
+ "settings.notifications.favicon_badge": "Ongelezen meldingen badge op favicon",
+ "settings.notifications_opts": "Meldingsopties",
+ "settings.pop_in_left": "Linkerkant",
+ "settings.pop_in_right": "Rechterkant",
"settings.preferences": "Preferences"
}
diff --git a/app/javascript/flavours/glitch/locales/uk.json b/app/javascript/flavours/glitch/locales/uk.json
index a8f6e42e84..917bc2c011 100644
--- a/app/javascript/flavours/glitch/locales/uk.json
+++ b/app/javascript/flavours/glitch/locales/uk.json
@@ -4,7 +4,9 @@
"account.disclaimer_full": "Наведена нижче інформація може не повністю відображати профіль користувача.",
"account.follows": "Підписки",
"account.joined": "Приєднався {date}",
+ "account.mute_notifications": "Не показувати сповіщення від @{name}",
"account.suspended_disclaimer_full": "Цей користувач був призупинений модератором.",
+ "account.unmute_notifications": "Показувати сповіщення від @{name}",
"account.view_full_profile": "Переглянути повний профіль",
"account_note.cancel": "Скасувати",
"account_note.edit": "Змінити",
@@ -50,6 +52,7 @@
"empty_column.follow_recommendations": "Схоже, для вас не було створено жодної пропозиції. Ви можете спробувати скористатися пошуком людей, яких ви можете знати, або переглянути популярні гештеґи.",
"endorsed_accounts_editor.endorsed_accounts": "Рекомендовані облікові записи",
"favourite_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу",
+ "firehose.column_settings.allow_local_only": "Відображати локальні повідомлення в \"Все\"",
"follow_recommendations.done": "Готово",
"follow_recommendations.heading": "Підпишіться на людей, чиї дописи ви хочете бачити! Ось деякі пропозиції.",
"follow_recommendations.lead": "Дописи від людей, за якими ви стежите, з'являться в хронологічному порядку у вашій домашній стрічці. Не бійся помилятися, ви можете відписатися від людей так само легко в будь-який час!",
diff --git a/app/javascript/flavours/glitch/locales/zh-TW.json b/app/javascript/flavours/glitch/locales/zh-TW.json
index 221d8f9d68..3411876e39 100644
--- a/app/javascript/flavours/glitch/locales/zh-TW.json
+++ b/app/javascript/flavours/glitch/locales/zh-TW.json
@@ -15,19 +15,19 @@
"advanced_options.icon_title": "進階選項",
"advanced_options.local-only.long": "不要傳遞給其他實例",
"advanced_options.local-only.short": "僅限本地",
- "advanced_options.local-only.tooltip": "此嘟文僅限本地",
+ "advanced_options.local-only.tooltip": "此貼文僅限本地",
"advanced_options.threaded_mode.long": "發佈時自動打開回覆",
"advanced_options.threaded_mode.short": "討論串模式",
"advanced_options.threaded_mode.tooltip": "已啟用討論串模式",
- "boost_modal.missing_description": "此嘟文包含未加說明的媒體檔案",
+ "boost_modal.missing_description": "此貼文包含未加說明的媒體檔案",
"column.favourited_by": "誰按了最愛",
"column.heading": "雜項",
- "column.reblogged_by": "被誰轉嘟",
+ "column.reblogged_by": "被誰轉貼",
"column.subheading": "其他選項",
"column_header.profile": "個人檔案",
"column_subheading.lists": "列表",
"column_subheading.navigation": "導覽",
- "community.column_settings.allow_local_only": "顯示僅限本地的嘟文",
+ "community.column_settings.allow_local_only": "顯示僅限本地的貼文",
"compose.attach": "附加...",
"compose.attach.doodle": "塗鴉",
"compose.attach.upload": "上傳檔案",
@@ -42,7 +42,7 @@
"confirmations.deprecated_settings.message": "您正在使用的某些特定於 glitch-soc 設備的 {app_settings} 已被 Mastodon {preferences} 所取代,並將被覆蓋:",
"confirmations.missing_media_description.confirm": "仍要張貼",
"confirmations.missing_media_description.edit": "編輯媒體",
- "confirmations.missing_media_description.message": "至少有一個媒體附件缺少說明。 在發送嘟文之前,請考慮為視障人士在所有媒體附件加上說明。",
+ "confirmations.missing_media_description.message": "至少有一個媒體附件缺少說明。 在發送貼文之前,請考慮為視障人士在所有媒體附件加上說明。",
"confirmations.unfilter.author": "作者",
"confirmations.unfilter.confirm": "顯示",
"confirmations.unfilter.edit_filter": "編輯篩選器",
@@ -53,16 +53,16 @@
"favourite_modal.combo": "下次您可以按 {combo} 跳過",
"firehose.column_settings.allow_local_only": "在「全部」顯示僅限本地的貼文",
"follow_recommendations.done": "完成",
- "follow_recommendations.heading": "跟隨您想檢視其嘟文的人!這裡有一些建議。",
- "follow_recommendations.lead": "來自您跟隨的人之嘟文將會按時間順序顯示在您的首頁時間軸上。不要害怕犯錯,您隨時都可以取消跟隨其他人!",
+ "follow_recommendations.heading": "跟隨您想檢視其貼文的人!這裡有一些建議。",
+ "follow_recommendations.lead": "來自您跟隨的人之貼文將會按時間順序顯示在您的首頁時間軸上。不要害怕犯錯,您隨時都可以取消跟隨其他人!",
"getting_started.onboarding": "帶我四處看看",
"home.column_settings.advanced": "進階設定",
"home.column_settings.filter_regex": "以正規表達式進行過濾",
"home.column_settings.show_direct": "顯示私人提及",
"home.settings": "欄位設定",
"keyboard_shortcuts.bookmark": "到書籤",
- "keyboard_shortcuts.secondary_toot": "使用次要隱私設定來發布嘟文",
- "keyboard_shortcuts.toggle_collapse": "去折疊/展開嘟文",
+ "keyboard_shortcuts.secondary_toot": "使用次要隱私設定來發布貼文",
+ "keyboard_shortcuts.toggle_collapse": "去折疊/展開貼文",
"media_gallery.sensitive": "敏感",
"moved_to_warning": "此帳戶已標記為移至 {moved_to_link},因此可能不接受新的追隨者。",
"navigation_bar.app_settings": "應用程式設定",
@@ -99,37 +99,37 @@
"settings.always_show_spoilers_field": "永遠啟用內容警告欄位",
"settings.auto_collapse": "自動折疊",
"settings.auto_collapse_all": "全部",
- "settings.auto_collapse_height": "高度超過多少像素會被視為較長的嘟文",
- "settings.auto_collapse_lengthy": "較長的嘟文",
- "settings.auto_collapse_media": "包含媒體檔案的嘟文",
+ "settings.auto_collapse_height": "高度超過多少像素會被視為較長的貼文",
+ "settings.auto_collapse_lengthy": "較長的貼文",
+ "settings.auto_collapse_media": "包含媒體檔案的貼文",
"settings.auto_collapse_notifications": "通知",
- "settings.auto_collapse_reblogs": "轉嘟",
+ "settings.auto_collapse_reblogs": "轉貼",
"settings.auto_collapse_replies": "回覆",
"settings.close": "關閉",
- "settings.collapsed_statuses": "折疊的嘟文",
- "settings.compose_box_opts": "嘟文撰寫框",
- "settings.confirm_before_clearing_draft": "在覆蓋編輯中的嘟文前顯示確認對話框",
- "settings.confirm_boost_missing_media_description": "在轉嘟包含缺少說明的媒體檔案的嘟文前顯示確認對話框",
- "settings.confirm_missing_media_description": "在發出包含缺少說明的媒體檔案的嘟文前顯示確認對話框",
+ "settings.collapsed_statuses": "折疊的貼文",
+ "settings.compose_box_opts": "貼文撰寫框",
+ "settings.confirm_before_clearing_draft": "在覆蓋編輯中的貼文前顯示確認對話框",
+ "settings.confirm_boost_missing_media_description": "在轉貼包含缺少說明的媒體檔案的貼文前顯示確認對話框",
+ "settings.confirm_missing_media_description": "在發出包含缺少說明的媒體檔案的貼文前顯示確認對話框",
"settings.content_warnings": "內容警告",
"settings.content_warnings.regexp": "正規表達式",
"settings.content_warnings_filter": "不要自動展開內容警告:",
"settings.content_warnings_media_outside": "在內容警告外顯示媒體檔案",
"settings.content_warnings_media_outside_hint": "透過內容警告切換不影響媒體檔案來重現上游 Mastodon 行為",
"settings.content_warnings_shared_state": "一次顯示/隱藏所有副本的內容",
- "settings.content_warnings_shared_state_hint": "透過內容警告按鈕同時影響嘟文的所有副本來重現上游 Mastodon 行為。 這將防止任何帶有展開的內容警告的嘟文副本自動折疊",
+ "settings.content_warnings_shared_state_hint": "透過內容警告按鈕同時影響貼文的所有副本來重現上游 Mastodon 行為。 這將防止任何帶有展開的內容警告的貼文副本自動折疊",
"settings.content_warnings_unfold_opts": "自動展開選項",
"settings.deprecated_setting": "此設定現在已由 Mastodon 的 {settings_page_link} 控制。",
- "settings.enable_collapsed": "啟用折疊的嘟文",
- "settings.enable_collapsed_hint": "折疊的嘟文隱藏了部分內容,以佔用更少的屏幕空間。這與內容警告功能不同",
+ "settings.enable_collapsed": "啟用折疊的貼文",
+ "settings.enable_collapsed_hint": "折疊的貼文隱藏了部分內容,以佔用更少的螢幕空間。這與內容警告功能不同",
"settings.enable_content_warnings_auto_unfold": "自動展開內容警告",
"settings.general": "一般設定",
"settings.hicolor_privacy_icons": "隱私圖示使用對比色",
"settings.hicolor_privacy_icons.hint": "用明亮且易於區分的顏色顯示隱私圖示",
"settings.image_backgrounds": "圖片背景",
- "settings.image_backgrounds_media": "預覽折疊嘟文的媒體檔案",
- "settings.image_backgrounds_media_hint": "如果嘟文包含媒體檔案,使用第一個作為圖片背景",
- "settings.image_backgrounds_users": "為折疊的嘟文加上圖片背景",
+ "settings.image_backgrounds_media": "預覽折疊貼文的媒體檔案",
+ "settings.image_backgrounds_media_hint": "如果貼文包含媒體檔案,使用第一個作為圖片背景",
+ "settings.image_backgrounds_users": "為折疊的貼文加上圖片背景",
"settings.inline_preview_cards": "針對外部連接顯示內嵌的預覽卡",
"settings.layout_opts": "版面選項",
"settings.media": "媒體",
@@ -150,26 +150,26 @@
"settings.prepend_cw_re": "回覆時在內容警告前添加 \"re:\"",
"settings.preselect_on_reply": "回覆時預先選擇用戶名稱",
"settings.preselect_on_reply_hint": "回覆與多個參與者的對話時,預先選擇第一個參與者之後的用戶名稱",
- "settings.rewrite_mentions": "改寫已顯示嘟文中的提及",
+ "settings.rewrite_mentions": "改寫已顯示貼文中的提及",
"settings.rewrite_mentions_acct": "改寫為使用者名稱與網域(當使用者來自外部)",
"settings.rewrite_mentions_no": "不要改寫提及",
"settings.rewrite_mentions_username": "改寫為使用者名稱",
"settings.shared_settings_link": "使用者偏好設定",
- "settings.show_action_bar": "在折疊的嘟文顯示操作按鈕",
- "settings.show_content_type_choice": "在編寫嘟文時顯示內容類型選擇",
+ "settings.show_action_bar": "在折疊的貼文顯示操作按鈕",
+ "settings.show_content_type_choice": "在編寫貼文時顯示內容類型選擇",
"settings.show_reply_counter": "顯示回覆數量的估計值",
- "settings.side_arm": "次要發出嘟文按鈕",
+ "settings.side_arm": "次要發出貼文按鈕",
"settings.side_arm.none": "無",
- "settings.side_arm_reply_mode": "當回覆一篇嘟文時,次要發出嘟文按鈕應該設為:",
- "settings.side_arm_reply_mode.copy": "複製回覆嘟文的隱私設置",
+ "settings.side_arm_reply_mode": "當回覆一篇貼文時,次要發出嘟文按鈕應該設為:",
+ "settings.side_arm_reply_mode.copy": "複製回覆貼文的隱私設置",
"settings.side_arm_reply_mode.keep": "保持原本的隱私設定",
- "settings.side_arm_reply_mode.restrict": "限制只能使用與回覆嘟文相同的隱私設置",
- "settings.status_icons": "嘟文圖示",
+ "settings.side_arm_reply_mode.restrict": "限制只能使用與回覆貼文相同的隱私設置",
+ "settings.status_icons": "貼文圖示",
"settings.status_icons_language": "語言指示器",
"settings.status_icons_local_only": "僅限本地指示器",
"settings.status_icons_media": "媒體與投票指示器",
"settings.status_icons_reply": "回覆指示器",
- "settings.status_icons_visibility": "嘟文隱私指示器",
+ "settings.status_icons_visibility": "貼文隱私指示器",
"settings.swipe_to_change_columns": "允許使用滑動手勢更改顯示欄位(僅限移動裝置)",
"settings.tag_misleading_links": "標記誤導性的連結",
"settings.tag_misleading_links.hint": "在每個未明確提及的連結添加帶有連結目標主機的視覺指示",
@@ -180,8 +180,8 @@
"status.has_pictures": "包含圖片",
"status.has_preview_card": "包含預覽卡",
"status.has_video": "包含視訊檔案",
- "status.in_reply_to": "嘟文有回覆",
- "status.is_poll": "嘟文有投票",
+ "status.in_reply_to": "貼文有回覆",
+ "status.is_poll": "貼文有投票",
"status.local_only": "只在此實例可見",
"status.sensitive_toggle": "點擊查看",
"status.uncollapse": "展開",
diff --git a/app/javascript/flavours/glitch/reducers/alerts.js b/app/javascript/flavours/glitch/reducers/alerts.js
index 4e237d419d..bd49d748f9 100644
--- a/app/javascript/flavours/glitch/reducers/alerts.js
+++ b/app/javascript/flavours/glitch/reducers/alerts.js
@@ -4,7 +4,7 @@ import {
ALERT_SHOW,
ALERT_DISMISS,
ALERT_CLEAR,
-} from 'flavours/glitch/actions/alerts';
+} from '../actions/alerts';
const initialState = ImmutableList([]);
diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js
index 95c4880b32..e282ac0f97 100644
--- a/app/javascript/flavours/glitch/reducers/compose.js
+++ b/app/javascript/flavours/glitch/reducers/compose.js
@@ -51,16 +51,15 @@ import {
COMPOSE_CHANGE_MEDIA_DESCRIPTION,
COMPOSE_CHANGE_MEDIA_FOCUS,
COMPOSE_SET_STATUS,
-} from 'flavours/glitch/actions/compose';
-import { REDRAFT } from 'flavours/glitch/actions/statuses';
-import { STORE_HYDRATE } from 'flavours/glitch/actions/store';
-import { TIMELINE_DELETE } from 'flavours/glitch/actions/timelines';
-import { me, defaultContentType } from 'flavours/glitch/initial_state';
-import { recoverHashtags } from 'flavours/glitch/utils/hashtag';
-import { unescapeHTML } from 'flavours/glitch/utils/html';
-import { overwrite } from 'flavours/glitch/utils/js_helpers';
-import { privacyPreference } from 'flavours/glitch/utils/privacy_preference';
-
+} from '../actions/compose';
+import { REDRAFT } from '../actions/statuses';
+import { STORE_HYDRATE } from '../actions/store';
+import { TIMELINE_DELETE } from '../actions/timelines';
+import { me, defaultContentType } from '../initial_state';
+import { recoverHashtags } from '../utils/hashtag';
+import { unescapeHTML } from '../utils/html';
+import { overwrite } from '../utils/js_helpers';
+import { privacyPreference } from '../utils/privacy_preference';
import { uuid } from '../uuid';
const totalElefriends = 3;
diff --git a/app/javascript/flavours/glitch/reducers/contexts.js b/app/javascript/flavours/glitch/reducers/contexts.js
index 552709383e..32e194dd42 100644
--- a/app/javascript/flavours/glitch/reducers/contexts.js
+++ b/app/javascript/flavours/glitch/reducers/contexts.js
@@ -3,10 +3,9 @@ import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import {
ACCOUNT_BLOCK_SUCCESS,
ACCOUNT_MUTE_SUCCESS,
-} from 'flavours/glitch/actions/accounts';
-import { CONTEXT_FETCH_SUCCESS } from 'flavours/glitch/actions/statuses';
-import { TIMELINE_DELETE, TIMELINE_UPDATE } from 'flavours/glitch/actions/timelines';
-
+} from '../actions/accounts';
+import { CONTEXT_FETCH_SUCCESS } from '../actions/statuses';
+import { TIMELINE_DELETE, TIMELINE_UPDATE } from '../actions/timelines';
import { compareId } from '../compare_id';
const initialState = ImmutableMap({
@@ -68,7 +67,8 @@ const deleteFromContexts = (immutableState, ids) => immutableState.withMutations
});
const filterContexts = (state, relationship, statuses) => {
- const ownedStatusIds = statuses.filter(status => status.get('account') === relationship.id)
+ const ownedStatusIds = statuses
+ .filter(status => status.get('account') === relationship.id)
.map(status => status.get('id'));
return deleteFromContexts(state, ownedStatusIds);
diff --git a/app/javascript/flavours/glitch/reducers/custom_emojis.js b/app/javascript/flavours/glitch/reducers/custom_emojis.js
index 13396db7e7..56ec80f2ff 100644
--- a/app/javascript/flavours/glitch/reducers/custom_emojis.js
+++ b/app/javascript/flavours/glitch/reducers/custom_emojis.js
@@ -1,8 +1,8 @@
import { List as ImmutableList, fromJS as ConvertToImmutable } from 'immutable';
-import { CUSTOM_EMOJIS_FETCH_SUCCESS } from 'flavours/glitch/actions/custom_emojis';
-import { buildCustomEmojis } from 'flavours/glitch/features/emoji/emoji';
-import { search as emojiSearch } from 'flavours/glitch/features/emoji/emoji_mart_search_light';
+import { CUSTOM_EMOJIS_FETCH_SUCCESS } from '../actions/custom_emojis';
+import { buildCustomEmojis } from '../features/emoji/emoji';
+import { search as emojiSearch } from '../features/emoji/emoji_mart_search_light';
const initialState = ImmutableList([]);
diff --git a/app/javascript/flavours/glitch/reducers/height_cache.js b/app/javascript/flavours/glitch/reducers/height_cache.js
index 89282994e3..2664d4f824 100644
--- a/app/javascript/flavours/glitch/reducers/height_cache.js
+++ b/app/javascript/flavours/glitch/reducers/height_cache.js
@@ -1,6 +1,6 @@
import { Map as ImmutableMap } from 'immutable';
-import { HEIGHT_CACHE_SET, HEIGHT_CACHE_CLEAR } from 'flavours/glitch/actions/height_cache';
+import { HEIGHT_CACHE_SET, HEIGHT_CACHE_CLEAR } from '../actions/height_cache';
const initialState = ImmutableMap();
diff --git a/app/javascript/flavours/glitch/reducers/index.ts b/app/javascript/flavours/glitch/reducers/index.ts
index a87e75fcad..79febbce3d 100644
--- a/app/javascript/flavours/glitch/reducers/index.ts
+++ b/app/javascript/flavours/glitch/reducers/index.ts
@@ -68,8 +68,8 @@ const reducers = {
push_notifications,
mutes,
blocks,
- server,
boosts,
+ server,
contexts,
compose,
search,
diff --git a/app/javascript/flavours/glitch/reducers/media_attachments.js b/app/javascript/flavours/glitch/reducers/media_attachments.js
index 5086126ab7..cbb4933bc7 100644
--- a/app/javascript/flavours/glitch/reducers/media_attachments.js
+++ b/app/javascript/flavours/glitch/reducers/media_attachments.js
@@ -1,6 +1,6 @@
import { Map as ImmutableMap } from 'immutable';
-import { STORE_HYDRATE } from 'flavours/glitch/actions/store';
+import { STORE_HYDRATE } from '../actions/store';
const initialState = ImmutableMap({
accept_content_types: [],
diff --git a/app/javascript/flavours/glitch/reducers/mutes.js b/app/javascript/flavours/glitch/reducers/mutes.js
index d346d9a78a..a9eb61ff83 100644
--- a/app/javascript/flavours/glitch/reducers/mutes.js
+++ b/app/javascript/flavours/glitch/reducers/mutes.js
@@ -4,7 +4,7 @@ import {
MUTES_INIT_MODAL,
MUTES_TOGGLE_HIDE_NOTIFICATIONS,
MUTES_CHANGE_DURATION,
-} from 'flavours/glitch/actions/mutes';
+} from '../actions/mutes';
const initialState = Immutable.Map({
new: Immutable.Map({
diff --git a/app/javascript/flavours/glitch/reducers/notifications.js b/app/javascript/flavours/glitch/reducers/notifications.js
index 9a4b75dce1..7bb11459ca 100644
--- a/app/javascript/flavours/glitch/reducers/notifications.js
+++ b/app/javascript/flavours/glitch/reducers/notifications.js
@@ -1,15 +1,16 @@
import { fromJS, Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import { DOMAIN_BLOCK_SUCCESS } from 'flavours/glitch/actions/domain_blocks';
+
import {
ACCOUNT_BLOCK_SUCCESS,
ACCOUNT_MUTE_SUCCESS,
FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
FOLLOW_REQUEST_REJECT_SUCCESS,
-} from 'flavours/glitch/actions/accounts';
-import { DOMAIN_BLOCK_SUCCESS } from 'flavours/glitch/actions/domain_blocks';
+} from '../actions/accounts';
import {
MARKERS_FETCH_SUCCESS,
-} from 'flavours/glitch/actions/markers';
+} from '../actions/markers';
import {
NOTIFICATIONS_MOUNT,
NOTIFICATIONS_UNMOUNT,
@@ -31,9 +32,8 @@ import {
NOTIFICATIONS_MARK_AS_READ,
NOTIFICATIONS_SET_BROWSER_SUPPORT,
NOTIFICATIONS_SET_BROWSER_PERMISSION,
-} from 'flavours/glitch/actions/notifications';
-import { TIMELINE_DELETE, TIMELINE_DISCONNECT } from 'flavours/glitch/actions/timelines';
-
+} from '../actions/notifications';
+import { TIMELINE_DELETE, TIMELINE_DISCONNECT } from '../actions/timelines';
import { compareId } from '../compare_id';
const initialState = ImmutableMap({
diff --git a/app/javascript/flavours/glitch/reducers/picture_in_picture.js b/app/javascript/flavours/glitch/reducers/picture_in_picture.js
index 395c21245f..961fc5699c 100644
--- a/app/javascript/flavours/glitch/reducers/picture_in_picture.js
+++ b/app/javascript/flavours/glitch/reducers/picture_in_picture.js
@@ -1,5 +1,6 @@
import { PICTURE_IN_PICTURE_DEPLOY, PICTURE_IN_PICTURE_REMOVE } from 'flavours/glitch/actions/picture_in_picture';
-import { TIMELINE_DELETE } from 'flavours/glitch/actions/timelines';
+
+import { TIMELINE_DELETE } from '../actions/timelines';
const initialState = {
statusId: null,
diff --git a/app/javascript/flavours/glitch/reducers/push_notifications.js b/app/javascript/flavours/glitch/reducers/push_notifications.js
index 23aa9bd033..fa8af0e8cc 100644
--- a/app/javascript/flavours/glitch/reducers/push_notifications.js
+++ b/app/javascript/flavours/glitch/reducers/push_notifications.js
@@ -1,7 +1,7 @@
import Immutable from 'immutable';
-import { SET_BROWSER_SUPPORT, SET_SUBSCRIPTION, CLEAR_SUBSCRIPTION, SET_ALERTS } from 'flavours/glitch/actions/push_notifications';
-import { STORE_HYDRATE } from 'flavours/glitch/actions/store';
+import { SET_BROWSER_SUPPORT, SET_SUBSCRIPTION, CLEAR_SUBSCRIPTION, SET_ALERTS } from '../actions/push_notifications';
+import { STORE_HYDRATE } from '../actions/store';
const initialState = Immutable.Map({
subscription: null,
diff --git a/app/javascript/flavours/glitch/reducers/relationships.js b/app/javascript/flavours/glitch/reducers/relationships.js
index 38fd0caa49..d1ccf9ac95 100644
--- a/app/javascript/flavours/glitch/reducers/relationships.js
+++ b/app/javascript/flavours/glitch/reducers/relationships.js
@@ -2,7 +2,7 @@ import { Map as ImmutableMap, fromJS } from 'immutable';
import {
ACCOUNT_NOTE_SUBMIT_SUCCESS,
-} from 'flavours/glitch/actions/account_notes';
+} from '../actions/account_notes';
import {
ACCOUNT_FOLLOW_SUCCESS,
ACCOUNT_FOLLOW_REQUEST,
@@ -19,12 +19,11 @@ import {
RELATIONSHIPS_FETCH_SUCCESS,
FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
FOLLOW_REQUEST_REJECT_SUCCESS,
-} from 'flavours/glitch/actions/accounts';
+} from '../actions/accounts';
import {
DOMAIN_BLOCK_SUCCESS,
DOMAIN_UNBLOCK_SUCCESS,
-} from 'flavours/glitch/actions/domain_blocks';
-
+} from '../actions/domain_blocks';
import {
NOTIFICATIONS_UPDATE,
} from '../actions/notifications';
diff --git a/app/javascript/flavours/glitch/reducers/search.js b/app/javascript/flavours/glitch/reducers/search.js
index e4144db62e..72835eb917 100644
--- a/app/javascript/flavours/glitch/reducers/search.js
+++ b/app/javascript/flavours/glitch/reducers/search.js
@@ -4,7 +4,7 @@ import {
COMPOSE_MENTION,
COMPOSE_REPLY,
COMPOSE_DIRECT,
-} from 'flavours/glitch/actions/compose';
+} from '../actions/compose';
import {
SEARCH_CHANGE,
SEARCH_CLEAR,
@@ -16,7 +16,7 @@ import {
SEARCH_EXPAND_SUCCESS,
SEARCH_EXPAND_FAIL,
SEARCH_HISTORY_UPDATE,
-} from 'flavours/glitch/actions/search';
+} from '../actions/search';
const initialState = ImmutableMap({
value: '',
diff --git a/app/javascript/flavours/glitch/reducers/settings.js b/app/javascript/flavours/glitch/reducers/settings.js
index 748523176b..e7b0015701 100644
--- a/app/javascript/flavours/glitch/reducers/settings.js
+++ b/app/javascript/flavours/glitch/reducers/settings.js
@@ -1,13 +1,12 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
-import { COLUMN_ADD, COLUMN_REMOVE, COLUMN_MOVE, COLUMN_PARAMS_CHANGE } from 'flavours/glitch/actions/columns';
-import { EMOJI_USE } from 'flavours/glitch/actions/emojis';
-import { LANGUAGE_USE } from 'flavours/glitch/actions/languages';
-import { NOTIFICATIONS_FILTER_SET } from 'flavours/glitch/actions/notifications';
-import { SETTING_CHANGE, SETTING_SAVE } from 'flavours/glitch/actions/settings';
-import { STORE_HYDRATE } from 'flavours/glitch/actions/store';
-
+import { COLUMN_ADD, COLUMN_REMOVE, COLUMN_MOVE, COLUMN_PARAMS_CHANGE } from '../actions/columns';
+import { EMOJI_USE } from '../actions/emojis';
+import { LANGUAGE_USE } from '../actions/languages';
import { LIST_DELETE_SUCCESS, LIST_FETCH_FAIL } from '../actions/lists';
+import { NOTIFICATIONS_FILTER_SET } from '../actions/notifications';
+import { SETTING_CHANGE, SETTING_SAVE } from '../actions/settings';
+import { STORE_HYDRATE } from '../actions/store';
import { uuid } from '../uuid';
const initialState = ImmutableMap({
@@ -62,6 +61,7 @@ const initialState = ImmutableMap({
follow: true,
follow_request: false,
favourite: true,
+ reaction: true,
reblog: true,
reaction: true,
mention: true,
@@ -76,6 +76,7 @@ const initialState = ImmutableMap({
follow: true,
follow_request: false,
favourite: true,
+ reaction: true,
reblog: true,
reaction: true,
mention: true,
diff --git a/app/javascript/flavours/glitch/reducers/status_lists.js b/app/javascript/flavours/glitch/reducers/status_lists.js
index c4780a661f..41cc07341c 100644
--- a/app/javascript/flavours/glitch/reducers/status_lists.js
+++ b/app/javascript/flavours/glitch/reducers/status_lists.js
@@ -3,7 +3,7 @@ import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutabl
import {
ACCOUNT_BLOCK_SUCCESS,
ACCOUNT_MUTE_SUCCESS,
-} from 'flavours/glitch/actions/accounts';
+} from '../actions/accounts';
import {
BOOKMARKED_STATUSES_FETCH_REQUEST,
BOOKMARKED_STATUSES_FETCH_SUCCESS,
@@ -11,7 +11,7 @@ import {
BOOKMARKED_STATUSES_EXPAND_REQUEST,
BOOKMARKED_STATUSES_EXPAND_SUCCESS,
BOOKMARKED_STATUSES_EXPAND_FAIL,
-} from 'flavours/glitch/actions/bookmarks';
+} from '../actions/bookmarks';
import {
FAVOURITED_STATUSES_FETCH_REQUEST,
FAVOURITED_STATUSES_FETCH_SUCCESS,
@@ -19,7 +19,7 @@ import {
FAVOURITED_STATUSES_EXPAND_REQUEST,
FAVOURITED_STATUSES_EXPAND_SUCCESS,
FAVOURITED_STATUSES_EXPAND_FAIL,
-} from 'flavours/glitch/actions/favourites';
+} from '../actions/favourites';
import {
FAVOURITE_SUCCESS,
UNFAVOURITE_SUCCESS,
@@ -27,10 +27,10 @@ import {
UNBOOKMARK_SUCCESS,
PIN_SUCCESS,
UNPIN_SUCCESS,
-} from 'flavours/glitch/actions/interactions';
+} from '../actions/interactions';
import {
PINNED_STATUSES_FETCH_SUCCESS,
-} from 'flavours/glitch/actions/pin_statuses';
+} from '../actions/pin_statuses';
import {
TRENDS_STATUSES_FETCH_REQUEST,
TRENDS_STATUSES_FETCH_SUCCESS,
@@ -38,7 +38,7 @@ import {
TRENDS_STATUSES_EXPAND_REQUEST,
TRENDS_STATUSES_EXPAND_SUCCESS,
TRENDS_STATUSES_EXPAND_FAIL,
-} from 'flavours/glitch/actions/trends';
+} from '../actions/trends';
diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js
index 1fd7f0b06d..cc4960a548 100644
--- a/app/javascript/flavours/glitch/reducers/statuses.js
+++ b/app/javascript/flavours/glitch/reducers/statuses.js
@@ -1,5 +1,7 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
+import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
+import { normalizeStatusTranslation } from '../actions/importer/normalizer';
import {
REBLOG_REQUEST,
REBLOG_FAIL,
@@ -18,7 +20,7 @@ import {
REACTION_REMOVE_FAIL,
REACTION_ADD_REQUEST,
REACTION_REMOVE_REQUEST,
-} from 'flavours/glitch/actions/interactions';
+} from '../actions/interactions';
import {
STATUS_MUTE_SUCCESS,
STATUS_UNMUTE_SUCCESS,
@@ -29,13 +31,8 @@ import {
STATUS_TRANSLATE_UNDO,
STATUS_FETCH_REQUEST,
STATUS_FETCH_FAIL,
-} from 'flavours/glitch/actions/statuses';
-import {
- TIMELINE_DELETE,
-} from 'flavours/glitch/actions/timelines';
-
-import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
-import { normalizeStatusTranslation } from '../actions/importer/normalizer';
+} from '../actions/statuses';
+import { TIMELINE_DELETE } from '../actions/timelines';
const importStatus = (state, status) => state.set(status.id, fromJS(status));
diff --git a/app/javascript/flavours/glitch/reducers/timelines.js b/app/javascript/flavours/glitch/reducers/timelines.js
index 76bc6c8174..69f28d6849 100644
--- a/app/javascript/flavours/glitch/reducers/timelines.js
+++ b/app/javascript/flavours/glitch/reducers/timelines.js
@@ -4,7 +4,7 @@ import {
ACCOUNT_BLOCK_SUCCESS,
ACCOUNT_MUTE_SUCCESS,
ACCOUNT_UNFOLLOW_SUCCESS,
-} from 'flavours/glitch/actions/accounts';
+} from '../actions/accounts';
import {
TIMELINE_UPDATE,
TIMELINE_DELETE,
@@ -17,8 +17,7 @@ import {
TIMELINE_DISCONNECT,
TIMELINE_LOAD_PENDING,
TIMELINE_MARK_AS_PARTIAL,
-} from 'flavours/glitch/actions/timelines';
-
+} from '../actions/timelines';
import { compareId } from '../compare_id';
const initialState = ImmutableMap();
diff --git a/app/javascript/flavours/glitch/reducers/user_lists.js b/app/javascript/flavours/glitch/reducers/user_lists.js
index d37451d005..76786b4220 100644
--- a/app/javascript/flavours/glitch/reducers/user_lists.js
+++ b/app/javascript/flavours/glitch/reducers/user_lists.js
@@ -1,5 +1,19 @@
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+import {
+ DIRECTORY_FETCH_REQUEST,
+ DIRECTORY_FETCH_SUCCESS,
+ DIRECTORY_FETCH_FAIL,
+ DIRECTORY_EXPAND_REQUEST,
+ DIRECTORY_EXPAND_SUCCESS,
+ DIRECTORY_EXPAND_FAIL,
+} from 'flavours/glitch/actions/directory';
+import {
+ FEATURED_TAGS_FETCH_REQUEST,
+ FEATURED_TAGS_FETCH_SUCCESS,
+ FEATURED_TAGS_FETCH_FAIL,
+} from 'flavours/glitch/actions/featured_tags';
+
import {
FOLLOWERS_FETCH_REQUEST,
FOLLOWERS_FETCH_SUCCESS,
@@ -21,7 +35,7 @@ import {
FOLLOW_REQUESTS_EXPAND_FAIL,
FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
FOLLOW_REQUEST_REJECT_SUCCESS,
-} from 'flavours/glitch/actions/accounts';
+} from '../actions/accounts';
import {
BLOCKS_FETCH_REQUEST,
BLOCKS_FETCH_SUCCESS,
@@ -29,20 +43,7 @@ import {
BLOCKS_EXPAND_REQUEST,
BLOCKS_EXPAND_SUCCESS,
BLOCKS_EXPAND_FAIL,
-} from 'flavours/glitch/actions/blocks';
-import {
- DIRECTORY_FETCH_REQUEST,
- DIRECTORY_FETCH_SUCCESS,
- DIRECTORY_FETCH_FAIL,
- DIRECTORY_EXPAND_REQUEST,
- DIRECTORY_EXPAND_SUCCESS,
- DIRECTORY_EXPAND_FAIL,
-} from 'flavours/glitch/actions/directory';
-import {
- FEATURED_TAGS_FETCH_REQUEST,
- FEATURED_TAGS_FETCH_SUCCESS,
- FEATURED_TAGS_FETCH_FAIL,
-} from 'flavours/glitch/actions/featured_tags';
+} from '../actions/blocks';
import {
REBLOGS_FETCH_REQUEST,
REBLOGS_FETCH_SUCCESS,
@@ -56,7 +57,7 @@ import {
FAVOURITES_EXPAND_REQUEST,
FAVOURITES_EXPAND_SUCCESS,
FAVOURITES_EXPAND_FAIL,
-} from 'flavours/glitch/actions/interactions';
+} from '../actions/interactions';
import {
MUTES_FETCH_REQUEST,
MUTES_FETCH_SUCCESS,
@@ -64,13 +65,13 @@ import {
MUTES_EXPAND_REQUEST,
MUTES_EXPAND_SUCCESS,
MUTES_EXPAND_FAIL,
-} from 'flavours/glitch/actions/mutes';
-
+} from '../actions/mutes';
import {
NOTIFICATIONS_UPDATE,
} from '../actions/notifications';
+
const initialListState = ImmutableMap({
next: null,
isLoading: false,
diff --git a/app/javascript/flavours/glitch/selectors/index.js b/app/javascript/flavours/glitch/selectors/index.js
index a296ef8ede..74188aff6d 100644
--- a/app/javascript/flavours/glitch/selectors/index.js
+++ b/app/javascript/flavours/glitch/selectors/index.js
@@ -1,9 +1,10 @@
import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
import { createSelector } from 'reselect';
-import { me } from 'flavours/glitch/initial_state';
import { toServerSideType } from 'flavours/glitch/utils/filters';
+import { me } from '../initial_state';
+
const getAccountBase = (state, id) => state.getIn(['accounts', id], null);
const getAccountCounters = (state, id) => state.getIn(['accounts_counters', id], null);
const getAccountRelationship = (state, id) => state.getIn(['relationships', id], null);
diff --git a/app/javascript/flavours/glitch/store/middlewares/errors.ts b/app/javascript/flavours/glitch/store/middlewares/errors.ts
index 2697f80f18..4e720bfed4 100644
--- a/app/javascript/flavours/glitch/store/middlewares/errors.ts
+++ b/app/javascript/flavours/glitch/store/middlewares/errors.ts
@@ -1,8 +1,7 @@
import type { AnyAction, Middleware } from 'redux';
-import { showAlertForError } from 'flavours/glitch/actions/alerts';
-
import type { RootState } from '..';
+import { showAlertForError } from '../../actions/alerts';
const defaultFailSuffix = 'FAIL';
diff --git a/app/javascript/flavours/glitch/stream.js b/app/javascript/flavours/glitch/stream.js
index 55f009e130..ff3af5fd88 100644
--- a/app/javascript/flavours/glitch/stream.js
+++ b/app/javascript/flavours/glitch/stream.js
@@ -1,6 +1,7 @@
// @ts-check
import WebSocketClient from '@gamestdio/websocket';
+
/**
* @type {WebSocketClient | undefined}
*/
@@ -85,12 +86,12 @@ const unsubscribe = ({ channelName, params, onDisconnect }) => {
};
const sharedCallbacks = {
- connected () {
+ connected() {
subscriptions.forEach(subscription => subscribe(subscription));
},
// @ts-expect-error
- received (data) {
+ received(data) {
const { stream } = data;
subscriptions.filter(({ channelName, params }) => {
@@ -114,11 +115,11 @@ const sharedCallbacks = {
});
},
- disconnected () {
+ disconnected() {
subscriptions.forEach(subscription => unsubscribe(subscription));
},
- reconnected () {
+ reconnected() {
},
};
@@ -151,19 +152,19 @@ export const connectStream = (channelName, params, callbacks) => (dispatch, getS
// to using individual connections for each channel
if (!streamingAPIBaseURL.startsWith('ws')) {
const connection = createConnection(streamingAPIBaseURL, accessToken, channelNameWithInlineParams(channelName, params), {
- connected () {
+ connected() {
onConnect();
},
- received (data) {
+ received(data) {
onReceive(data);
},
- disconnected () {
+ disconnected() {
onDisconnect();
},
- reconnected () {
+ reconnected() {
onConnect();
},
});
@@ -239,10 +240,10 @@ const createConnection = (streamingAPIBaseURL, accessToken, channelName, { conne
const ws = new WebSocketClient(`${streamingAPIBaseURL}/api/v1/streaming/?${params.join('&')}`, accessToken);
// @ts-expect-error
- ws.onopen = connected;
- ws.onmessage = e => received(JSON.parse(e.data));
+ ws.onopen = connected;
+ ws.onmessage = e => received(JSON.parse(e.data));
// @ts-expect-error
- ws.onclose = disconnected;
+ ws.onclose = disconnected;
// @ts-expect-error
ws.onreconnect = reconnected;
@@ -265,7 +266,7 @@ const createConnection = (streamingAPIBaseURL, accessToken, channelName, { conne
};
KNOWN_EVENT_TYPES.forEach(type => {
- es.addEventListener(type, e => handleEventSourceMessage(/** @type {MessageEvent} */ (e), received));
+ es.addEventListener(type, e => handleEventSourceMessage(/** @type {MessageEvent} */(e), received));
});
es.onerror = /** @type {function(): void} */ (disconnected);
diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss
index 3b85dfbf15..0f64c0dcc1 100644
--- a/app/javascript/flavours/glitch/styles/components/compose_form.scss
+++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss
@@ -104,10 +104,7 @@
}
input[type='checkbox'] {
- display: none;
- }
-
- .checkbox {
+ appearance: none;
display: inline-block;
position: relative;
border: 1px solid $ui-primary-color;
@@ -120,8 +117,9 @@
top: -1px;
border-radius: 4px;
vertical-align: middle;
+ cursor: inherit;
- &.active {
+ &:checked {
border-color: $highlight-text-color;
background: $highlight-text-color
url("data:image/svg+xml;utf8,")
@@ -310,9 +308,9 @@
background: darken($ui-secondary-color, 10%);
}
- > .account,
- > .emoji,
- > .autosuggest-hashtag {
+ .autosuggest-account,
+ .autosuggest-emoji,
+ .autosuggest-hashtag {
display: flex;
flex-direction: row;
align-items: center;
@@ -344,12 +342,13 @@
}
}
- & > .account.small {
- .display-name {
- & > span {
- color: $lighter-text-color;
- }
- }
+ .autosuggest-account-icon,
+ .autosuggest-emoji img {
+ margin-inline-end: 8px;
+ }
+
+ .autosuggest-account .display-name > span {
+ color: $lighter-text-color;
}
}
diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss
index 8a40a89446..fe47f4616b 100644
--- a/app/javascript/flavours/glitch/styles/components/status.scss
+++ b/app/javascript/flavours/glitch/styles/components/status.scss
@@ -1185,3 +1185,30 @@ a.status-card.compact:hover {
border-color: lighten($ui-base-color, 12%);
}
}
+
+.hashtag-bar {
+ margin-top: 16px;
+ display: flex;
+ flex-wrap: wrap;
+ font-size: 14px;
+ line-height: 18px;
+ gap: 4px;
+ color: $darker-text-color;
+
+ a {
+ display: inline-flex;
+ color: inherit;
+ text-decoration: none;
+
+ &:hover span {
+ text-decoration: underline;
+ }
+ }
+
+ .link-button {
+ color: inherit;
+ font-size: inherit;
+ line-height: inherit;
+ padding: 0;
+ }
+}
diff --git a/app/javascript/flavours/glitch/utils/html.js b/app/javascript/flavours/glitch/utils/html.js
index 5159df9db7..247e98c88a 100644
--- a/app/javascript/flavours/glitch/utils/html.js
+++ b/app/javascript/flavours/glitch/utils/html.js
@@ -1,3 +1,4 @@
+// NB: This function can still return unsafe HTML
export const unescapeHTML = (html) => {
const wrapper = document.createElement('div');
wrapper.innerHTML = html.replace(/ /g, '\n').replace(/<\/p>
/g, '\n\n').replace(/<[^>]*>/g, '');
diff --git a/app/javascript/flavours/glitch/utils/icons.jsx b/app/javascript/flavours/glitch/utils/icons.jsx
index 225345af68..be566032e0 100644
--- a/app/javascript/flavours/glitch/utils/icons.jsx
+++ b/app/javascript/flavours/glitch/utils/icons.jsx
@@ -1,3 +1,5 @@
+// Copied from emoji-mart for consistency with emoji picker and since
+// they don't export the icons in the package
export const loupeIcon = (