Rename themes -> flavours ? ?
This commit is contained in:
		
							parent
							
								
									d216547382
								
							
						
					
					
						commit
						bc4fa6b198
					
				
					 313 changed files with 665 additions and 681 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							|  | @ -1,3 +0,0 @@ | ||||||
| [submodule "app/javascript/themes/mastodon-go"] |  | ||||||
| 	path = app/javascript/themes/mastodon-go |  | ||||||
| 	url = https://github.com/marrus-sh/mastodon-go |  | ||||||
|  | @ -12,7 +12,7 @@ class ApplicationController < ActionController::Base | ||||||
| 
 | 
 | ||||||
|   helper_method :current_account |   helper_method :current_account | ||||||
|   helper_method :current_session |   helper_method :current_session | ||||||
|   helper_method :current_theme |   helper_method :current_flavour | ||||||
|   helper_method :current_skin |   helper_method :current_skin | ||||||
|   helper_method :single_user_mode? |   helper_method :single_user_mode? | ||||||
| 
 | 
 | ||||||
|  | @ -57,8 +57,8 @@ class ApplicationController < ActionController::Base | ||||||
|   def pack(data, pack_name, skin = 'default') |   def pack(data, pack_name, skin = 'default') | ||||||
|     return nil unless pack?(data, pack_name) |     return nil unless pack?(data, pack_name) | ||||||
|     pack_data = { |     pack_data = { | ||||||
|       common: pack_name == 'common' ? nil : resolve_pack(data['name'] ? Themes.instance.get(current_theme) : Themes.instance.core, 'common'), |       common: pack_name == 'common' ? nil : resolve_pack(data['name'] ? Themes.instance.flavour(current_flavour) : Themes.instance.core, 'common'), | ||||||
|       name: data['name'], |       flavour: data['name'], | ||||||
|       pack: pack_name, |       pack: pack_name, | ||||||
|       preload: nil, |       preload: nil, | ||||||
|       skin: nil, |       skin: nil, | ||||||
|  | @ -88,8 +88,8 @@ class ApplicationController < ActionController::Base | ||||||
| 
 | 
 | ||||||
|   def nil_pack(data, pack_name, skin = 'default') |   def nil_pack(data, pack_name, skin = 'default') | ||||||
|     { |     { | ||||||
|       common: pack_name == 'common' ? nil : resolve_pack(data['name'] ? Themes.instance.get(current_theme) : Themes.instance.core, 'common', skin), |       common: pack_name == 'common' ? nil : resolve_pack(data['name'] ? Themes.instance.flavour(current_flavour) : Themes.instance.core, 'common', skin), | ||||||
|       name: data['name'], |       flavour: data['name'], | ||||||
|       pack: nil, |       pack: nil, | ||||||
|       preload: nil, |       preload: nil, | ||||||
|       skin: nil, |       skin: nil, | ||||||
|  | @ -102,23 +102,23 @@ class ApplicationController < ActionController::Base | ||||||
|       if data['name'] && data.key?('fallback') |       if data['name'] && data.key?('fallback') | ||||||
|         if data['fallback'].nil? |         if data['fallback'].nil? | ||||||
|           return nil_pack(data, pack_name, skin) |           return nil_pack(data, pack_name, skin) | ||||||
|         elsif data['fallback'].is_a?(String) && Themes.instance.get(data['fallback']) |         elsif data['fallback'].is_a?(String) && Themes.instance.flavour(data['fallback']) | ||||||
|           return resolve_pack(Themes.instance.get(data['fallback']), pack_name, skin) |           return resolve_pack(Themes.instance.flavour(data['fallback']), pack_name, skin) | ||||||
|         elsif data['fallback'].is_a?(Array) |         elsif data['fallback'].is_a?(Array) | ||||||
|           data['fallback'].each do |fallback| |           data['fallback'].each do |fallback| | ||||||
|             return resolve_pack(Themes.instance.get(fallback), pack_name, skin) if Themes.instance.get(fallback) |             return resolve_pack(Themes.instance.flavour(fallback), pack_name, skin) if Themes.instance.flavour(fallback) | ||||||
|           end |           end | ||||||
|         end |         end | ||||||
|         return nil_pack(data, pack_name, skin) |         return nil_pack(data, pack_name, skin) | ||||||
|       end |       end | ||||||
|       return data.key?('name') && data['name'] != default_theme ? resolve_pack(Themes.instance.get(default_theme), pack_name, skin) : nil_pack(data, pack_name, skin) |       return data.key?('name') && data['name'] != Setting.default_settings['flavour'] ? resolve_pack(Themes.instance.flavour(Setting.default_settings['flavour']), pack_name, skin) : nil_pack(data, pack_name, skin) | ||||||
|     end |     end | ||||||
|     result |     result | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def use_pack(pack_name) |   def use_pack(pack_name) | ||||||
|     @core = resolve_pack(Themes.instance.core, pack_name) |     @core = resolve_pack(Themes.instance.core, pack_name) | ||||||
|     @theme = resolve_pack(Themes.instance.get(current_theme), pack_name, current_skin) |     @theme = resolve_pack(Themes.instance.flavour(current_flavour), pack_name, current_skin) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   protected |   protected | ||||||
|  | @ -151,21 +151,13 @@ class ApplicationController < ActionController::Base | ||||||
|     @current_session ||= SessionActivation.find_by(session_id: cookies.signed['_session_id']) |     @current_session ||= SessionActivation.find_by(session_id: cookies.signed['_session_id']) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def default_theme |   def current_flavour | ||||||
|     Setting.default_settings['theme'] |     return Setting.default_settings['flavour'] unless Themes.instance.flavours.include? current_user&.setting_flavour | ||||||
|   end |     current_user.setting_flavour | ||||||
| 
 |  | ||||||
|   def current_theme |  | ||||||
|     return default_theme unless Themes.instance.names.include? current_user&.setting_theme |  | ||||||
|     current_user.setting_theme |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def default_skin |  | ||||||
|     'default' |  | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def current_skin |   def current_skin | ||||||
|     return default_skin unless Themes.instance.skins_for(current_theme).include? current_user&.setting_skin |     return 'default' unless Themes.instance.skins_for(current_flavour).include? current_user&.setting_skin | ||||||
|     current_user.setting_skin |     current_user.setting_skin | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| const { length } = require('stringz'); | const { length } = require('stringz'); | ||||||
| const { delegate } = require('rails-ujs'); | const { delegate } = require('rails-ujs'); | ||||||
| 
 | 
 | ||||||
| import { processBio } from 'themes/glitch/util/bio_metadata'; | import { processBio } from 'flavours/glitch/util/bio_metadata'; | ||||||
| 
 | 
 | ||||||
| delegate(document, '.account_display_name', 'input', ({ target }) => { | delegate(document, '.account_display_name', 'input', ({ target }) => { | ||||||
|   const nameCounter = document.querySelector('.name-counter'); |   const nameCounter = document.querySelector('.name-counter'); | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api, { getLinks } from 'themes/glitch/util/api'; | import api, { getLinks } from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| export const ACCOUNT_FETCH_REQUEST = 'ACCOUNT_FETCH_REQUEST'; | export const ACCOUNT_FETCH_REQUEST = 'ACCOUNT_FETCH_REQUEST'; | ||||||
| export const ACCOUNT_FETCH_SUCCESS = 'ACCOUNT_FETCH_SUCCESS'; | export const ACCOUNT_FETCH_SUCCESS = 'ACCOUNT_FETCH_SUCCESS'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api, { getLinks } from 'themes/glitch/util/api'; | import api, { getLinks } from 'flavours/glitch/util/api'; | ||||||
| import { fetchRelationships } from './accounts'; | import { fetchRelationships } from './accounts'; | ||||||
| 
 | 
 | ||||||
| export const BLOCKS_FETCH_REQUEST = 'BLOCKS_FETCH_REQUEST'; | export const BLOCKS_FETCH_REQUEST = 'BLOCKS_FETCH_REQUEST'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api from 'themes/glitch/util/api'; | import api from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| export const STATUS_CARD_FETCH_REQUEST = 'STATUS_CARD_FETCH_REQUEST'; | export const STATUS_CARD_FETCH_REQUEST = 'STATUS_CARD_FETCH_REQUEST'; | ||||||
| export const STATUS_CARD_FETCH_SUCCESS = 'STATUS_CARD_FETCH_SUCCESS'; | export const STATUS_CARD_FETCH_SUCCESS = 'STATUS_CARD_FETCH_SUCCESS'; | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import api from 'themes/glitch/util/api'; | import api from 'flavours/glitch/util/api'; | ||||||
| import { throttle } from 'lodash'; | import { throttle } from 'lodash'; | ||||||
| import { search as emojiSearch } from 'themes/glitch/util/emoji/emoji_mart_search_light'; | import { search as emojiSearch } from 'flavours/glitch/util/emoji/emoji_mart_search_light'; | ||||||
| import { useEmoji } from './emojis'; | import { useEmoji } from './emojis'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api, { getLinks } from 'themes/glitch/util/api'; | import api, { getLinks } from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| export const DOMAIN_BLOCK_REQUEST = 'DOMAIN_BLOCK_REQUEST'; | export const DOMAIN_BLOCK_REQUEST = 'DOMAIN_BLOCK_REQUEST'; | ||||||
| export const DOMAIN_BLOCK_SUCCESS = 'DOMAIN_BLOCK_SUCCESS'; | export const DOMAIN_BLOCK_SUCCESS = 'DOMAIN_BLOCK_SUCCESS'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api, { getLinks } from 'themes/glitch/util/api'; | import api, { getLinks } from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| export const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST'; | export const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST'; | ||||||
| export const FAVOURITED_STATUSES_FETCH_SUCCESS = 'FAVOURITED_STATUSES_FETCH_SUCCESS'; | export const FAVOURITED_STATUSES_FETCH_SUCCESS = 'FAVOURITED_STATUSES_FETCH_SUCCESS'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api from 'themes/glitch/util/api'; | import api from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| export const REBLOG_REQUEST = 'REBLOG_REQUEST'; | export const REBLOG_REQUEST = 'REBLOG_REQUEST'; | ||||||
| export const REBLOG_SUCCESS = 'REBLOG_SUCCESS'; | export const REBLOG_SUCCESS = 'REBLOG_SUCCESS'; | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import api, { getLinks } from 'themes/glitch/util/api'; | import api, { getLinks } from 'flavours/glitch/util/api'; | ||||||
| import { fetchRelationships } from './accounts'; | import { fetchRelationships } from './accounts'; | ||||||
| import { openModal } from 'themes/glitch/actions/modal'; | import { openModal } from 'flavours/glitch/actions/modal'; | ||||||
| 
 | 
 | ||||||
| export const MUTES_FETCH_REQUEST = 'MUTES_FETCH_REQUEST'; | export const MUTES_FETCH_REQUEST = 'MUTES_FETCH_REQUEST'; | ||||||
| export const MUTES_FETCH_SUCCESS = 'MUTES_FETCH_SUCCESS'; | export const MUTES_FETCH_SUCCESS = 'MUTES_FETCH_SUCCESS'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api, { getLinks } from 'themes/glitch/util/api'; | import api, { getLinks } from 'flavours/glitch/util/api'; | ||||||
| import { List as ImmutableList } from 'immutable'; | import { List as ImmutableList } from 'immutable'; | ||||||
| import IntlMessageFormat from 'intl-messageformat'; | import IntlMessageFormat from 'intl-messageformat'; | ||||||
| import { fetchRelationships } from './accounts'; | import { fetchRelationships } from './accounts'; | ||||||
|  | @ -1,10 +1,10 @@ | ||||||
| import api from 'themes/glitch/util/api'; | import api from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| export const PINNED_STATUSES_FETCH_REQUEST = 'PINNED_STATUSES_FETCH_REQUEST'; | export const PINNED_STATUSES_FETCH_REQUEST = 'PINNED_STATUSES_FETCH_REQUEST'; | ||||||
| export const PINNED_STATUSES_FETCH_SUCCESS = 'PINNED_STATUSES_FETCH_SUCCESS'; | export const PINNED_STATUSES_FETCH_SUCCESS = 'PINNED_STATUSES_FETCH_SUCCESS'; | ||||||
| export const PINNED_STATUSES_FETCH_FAIL = 'PINNED_STATUSES_FETCH_FAIL'; | export const PINNED_STATUSES_FETCH_FAIL = 'PINNED_STATUSES_FETCH_FAIL'; | ||||||
| 
 | 
 | ||||||
| import { me } from 'themes/glitch/util/initial_state'; | import { me } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| export function fetchPinnedStatuses() { | export function fetchPinnedStatuses() { | ||||||
|   return (dispatch, getState) => { |   return (dispatch, getState) => { | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api from 'themes/glitch/util/api'; | import api from 'flavours/glitch/util/api'; | ||||||
| import { openModal, closeModal } from './modal'; | import { openModal, closeModal } from './modal'; | ||||||
| 
 | 
 | ||||||
| export const REPORT_INIT   = 'REPORT_INIT'; | export const REPORT_INIT   = 'REPORT_INIT'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api from 'themes/glitch/util/api'; | import api from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| export const SEARCH_CHANGE = 'SEARCH_CHANGE'; | export const SEARCH_CHANGE = 'SEARCH_CHANGE'; | ||||||
| export const SEARCH_CLEAR  = 'SEARCH_CLEAR'; | export const SEARCH_CLEAR  = 'SEARCH_CLEAR'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api from 'themes/glitch/util/api'; | import api from 'flavours/glitch/util/api'; | ||||||
| 
 | 
 | ||||||
| import { deleteFromTimelines } from './timelines'; | import { deleteFromTimelines } from './timelines'; | ||||||
| import { fetchStatusCard } from './cards'; | import { fetchStatusCard } from './cards'; | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import { connectStream } from 'themes/glitch/util/stream'; | import { connectStream } from 'flavours/glitch/util/stream'; | ||||||
| import { | import { | ||||||
|   updateTimeline, |   updateTimeline, | ||||||
|   deleteFromTimelines, |   deleteFromTimelines, | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import api, { getLinks } from 'themes/glitch/util/api'; | import api, { getLinks } from 'flavours/glitch/util/api'; | ||||||
| import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; | import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; | ||||||
| 
 | 
 | ||||||
| export const TIMELINE_UPDATE  = 'TIMELINE_UPDATE'; | export const TIMELINE_UPDATE  = 'TIMELINE_UPDATE'; | ||||||
|  | @ -7,7 +7,7 @@ import Permalink from './permalink'; | ||||||
| import IconButton from './icon_button'; | import IconButton from './icon_button'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { me } from 'themes/glitch/util/initial_state'; | import { me } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   follow: { id: 'account.follow', defaultMessage: 'Follow' }, |   follow: { id: 'account.follow', defaultMessage: 'Follow' }, | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import unicodeMapping from 'themes/glitch/util/emoji/emoji_unicode_mapping_light'; | import unicodeMapping from 'flavours/glitch/util/emoji/emoji_unicode_mapping_light'; | ||||||
| 
 | 
 | ||||||
| const assetHost = process.env.CDN_HOST || ''; | const assetHost = process.env.CDN_HOST || ''; | ||||||
| 
 | 
 | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import AutosuggestAccountContainer from 'themes/glitch/features/compose/containers/autosuggest_account_container'; | import AutosuggestAccountContainer from 'flavours/glitch/features/compose/containers/autosuggest_account_container'; | ||||||
| import AutosuggestEmoji from './autosuggest_emoji'; | import AutosuggestEmoji from './autosuggest_emoji'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { isRtl } from 'themes/glitch/util/rtl'; | import { isRtl } from 'flavours/glitch/util/rtl'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import Textarea from 'react-textarea-autosize'; | import Textarea from 'react-textarea-autosize'; | ||||||
| import classNames from 'classnames'; | import classNames from 'classnames'; | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import Motion from 'themes/glitch/util/optional_motion'; | import Motion from 'flavours/glitch/util/optional_motion'; | ||||||
| import spring from 'react-motion/lib/spring'; | import spring from 'react-motion/lib/spring'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| 
 | 
 | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import detectPassiveEvents from 'detect-passive-events'; | import detectPassiveEvents from 'detect-passive-events'; | ||||||
| import { scrollTop } from 'themes/glitch/util/scroll'; | import { scrollTop } from 'flavours/glitch/util/scroll'; | ||||||
| 
 | 
 | ||||||
| export default class Column extends React.PureComponent { | export default class Column extends React.PureComponent { | ||||||
| 
 | 
 | ||||||
|  | @ -4,8 +4,7 @@ import classNames from 'classnames'; | ||||||
| import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; | import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| 
 | 
 | ||||||
| // Glitch imports
 | import NotificationPurgeButtonsContainer from 'flavours/glitch/containers/notification_purge_buttons_container'; | ||||||
| import NotificationPurgeButtonsContainer from 'themes/glitch/containers/notification_purge_buttons_container'; |  | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   show: { id: 'column_header.show_settings', defaultMessage: 'Show settings' }, |   show: { id: 'column_header.show_settings', defaultMessage: 'Show settings' }, | ||||||
|  | @ -3,7 +3,7 @@ import PropTypes from 'prop-types'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import IconButton from './icon_button'; | import IconButton from './icon_button'; | ||||||
| import Overlay from 'react-overlays/lib/Overlay'; | import Overlay from 'react-overlays/lib/Overlay'; | ||||||
| import Motion from 'themes/glitch/util/optional_motion'; | import Motion from 'flavours/glitch/util/optional_motion'; | ||||||
| import spring from 'react-motion/lib/spring'; | import spring from 'react-motion/lib/spring'; | ||||||
| import detectPassiveEvents from 'detect-passive-events'; | import detectPassiveEvents from 'detect-passive-events'; | ||||||
| 
 | 
 | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import Motion from 'themes/glitch/util/optional_motion'; | import Motion from 'flavours/glitch/util/optional_motion'; | ||||||
| import spring from 'react-motion/lib/spring'; | import spring from 'react-motion/lib/spring'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import classNames from 'classnames'; | import classNames from 'classnames'; | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import scheduleIdleTask from 'themes/glitch/util/schedule_idle_task'; | import scheduleIdleTask from 'flavours/glitch/util/schedule_idle_task'; | ||||||
| import getRectFromEntry from 'themes/glitch/util/get_rect_from_entry'; | import getRectFromEntry from 'flavours/glitch/util/get_rect_from_entry'; | ||||||
| import { is } from 'immutable'; | import { is } from 'immutable'; | ||||||
| 
 | 
 | ||||||
| // Diff these props in the "rendered" state
 | // Diff these props in the "rendered" state
 | ||||||
|  | @ -4,9 +4,9 @@ import PropTypes from 'prop-types'; | ||||||
| import { is } from 'immutable'; | import { is } from 'immutable'; | ||||||
| import IconButton from './icon_button'; | import IconButton from './icon_button'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import { isIOS } from 'themes/glitch/util/is_mobile'; | import { isIOS } from 'flavours/glitch/util/is_mobile'; | ||||||
| import classNames from 'classnames'; | import classNames from 'classnames'; | ||||||
| import { autoPlayGif } from 'themes/glitch/util/initial_state'; | import { autoPlayGif } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' }, |   toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' }, | ||||||
|  | @ -1,13 +1,13 @@ | ||||||
| import React, { PureComponent } from 'react'; | import React, { PureComponent } from 'react'; | ||||||
| import { ScrollContainer } from 'react-router-scroll-4'; | import { ScrollContainer } from 'react-router-scroll-4'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import IntersectionObserverArticleContainer from 'themes/glitch/containers/intersection_observer_article_container'; | import IntersectionObserverArticleContainer from 'flavours/glitch/containers/intersection_observer_article_container'; | ||||||
| import LoadMore from './load_more'; | import LoadMore from './load_more'; | ||||||
| import IntersectionObserverWrapper from 'themes/glitch/util/intersection_observer_wrapper'; | import IntersectionObserverWrapper from 'flavours/glitch/util/intersection_observer_wrapper'; | ||||||
| import { throttle } from 'lodash'; | import { throttle } from 'lodash'; | ||||||
| import { List as ImmutableList } from 'immutable'; | import { List as ImmutableList } from 'immutable'; | ||||||
| import classNames from 'classnames'; | import classNames from 'classnames'; | ||||||
| import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from 'themes/glitch/util/fullscreen'; | import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from 'flavours/glitch/util/fullscreen'; | ||||||
| 
 | 
 | ||||||
| export default class ScrollableList extends PureComponent { | export default class ScrollableList extends PureComponent { | ||||||
| 
 | 
 | ||||||
|  | @ -6,9 +6,9 @@ import StatusHeader from './status_header'; | ||||||
| import StatusContent from './status_content'; | import StatusContent from './status_content'; | ||||||
| import StatusActionBar from './status_action_bar'; | import StatusActionBar from './status_action_bar'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { MediaGallery, Video } from 'themes/glitch/util/async-components'; | import { MediaGallery, Video } from 'flavours/glitch/util/async-components'; | ||||||
| import { HotKeys } from 'react-hotkeys'; | import { HotKeys } from 'react-hotkeys'; | ||||||
| import NotificationOverlayContainer from 'themes/glitch/features/notifications/containers/overlay_container'; | import NotificationOverlayContainer from 'flavours/glitch/features/notifications/containers/overlay_container'; | ||||||
| 
 | 
 | ||||||
| // We use the component (and not the container) since we do not want
 | // We use the component (and not the container) since we do not want
 | ||||||
| // to use the progress bar to show download progress
 | // to use the progress bar to show download progress
 | ||||||
|  | @ -1,14 +1,11 @@ | ||||||
| //  THIS FILE EXISTS FOR UPSTREAM COMPATIBILITY & SHOULDN'T BE USED !!
 |  | ||||||
| //  SEE INSTEAD : glitch/components/status/action_bar
 |  | ||||||
| 
 |  | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import IconButton from './icon_button'; | import IconButton from './icon_button'; | ||||||
| import DropdownMenuContainer from 'themes/glitch/containers/dropdown_menu_container'; | import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { me } from 'themes/glitch/util/initial_state'; | import { me } from 'flavours/glitch/util/initial_state'; | ||||||
| import RelativeTimestamp from './relative_timestamp'; | import RelativeTimestamp from './relative_timestamp'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { isRtl } from 'themes/glitch/util/rtl'; | import { isRtl } from 'flavours/glitch/util/rtl'; | ||||||
| import { FormattedMessage } from 'react-intl'; | import { FormattedMessage } from 'react-intl'; | ||||||
| import Permalink from './permalink'; | import Permalink from './permalink'; | ||||||
| import classnames from 'classnames'; | import classnames from 'classnames'; | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import StatusContainer from 'themes/glitch/containers/status_container'; | import StatusContainer from 'flavours/glitch/containers/status_container'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import ScrollableList from './scrollable_list'; | import ScrollableList from './scrollable_list'; | ||||||
| 
 | 
 | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import { makeGetAccount } from 'themes/glitch/selectors'; | import { makeGetAccount } from 'flavours/glitch/selectors'; | ||||||
| import Account from 'themes/glitch/components/account'; | import Account from 'flavours/glitch/components/account'; | ||||||
| import { | import { | ||||||
|   followAccount, |   followAccount, | ||||||
|   unfollowAccount, |   unfollowAccount, | ||||||
|  | @ -10,10 +10,10 @@ import { | ||||||
|   unblockAccount, |   unblockAccount, | ||||||
|   muteAccount, |   muteAccount, | ||||||
|   unmuteAccount, |   unmuteAccount, | ||||||
| } from 'themes/glitch/actions/accounts'; | } from 'flavours/glitch/actions/accounts'; | ||||||
| import { openModal } from 'themes/glitch/actions/modal'; | import { openModal } from 'flavours/glitch/actions/modal'; | ||||||
| import { initMuteModal } from 'themes/glitch/actions/mutes'; | import { initMuteModal } from 'flavours/glitch/actions/mutes'; | ||||||
| import { unfollowModal } from 'themes/glitch/util/initial_state'; | import { unfollowModal } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, |   unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import Card from 'themes/glitch/features/status/components/card'; | import Card from 'flavours/glitch/features/status/components/card'; | ||||||
| import { fromJS } from 'immutable'; | import { fromJS } from 'immutable'; | ||||||
| 
 | 
 | ||||||
| export default class CardContainer extends React.PureComponent { | export default class CardContainer extends React.PureComponent { | ||||||
|  | @ -1,12 +1,12 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import { Provider } from 'react-redux'; | import { Provider } from 'react-redux'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import configureStore from 'themes/glitch/store/configureStore'; | import configureStore from 'flavours/glitch/store/configureStore'; | ||||||
| import { hydrateStore } from 'themes/glitch/actions/store'; | import { hydrateStore } from 'flavours/glitch/actions/store'; | ||||||
| import { IntlProvider, addLocaleData } from 'react-intl'; | import { IntlProvider, addLocaleData } from 'react-intl'; | ||||||
| import { getLocale } from 'mastodon/locales'; | import { getLocale } from 'mastodon/locales'; | ||||||
| import Compose from 'themes/glitch/features/standalone/compose'; | import Compose from 'flavours/glitch/features/standalone/compose'; | ||||||
| import initialState from 'themes/glitch/util/initial_state'; | import initialState from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const { localeData, messages } = getLocale(); | const { localeData, messages } = getLocale(); | ||||||
| addLocaleData(localeData); | addLocaleData(localeData); | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import { openModal, closeModal } from 'themes/glitch/actions/modal'; | import { openModal, closeModal } from 'flavours/glitch/actions/modal'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import DropdownMenu from 'themes/glitch/components/dropdown_menu'; | import DropdownMenu from 'flavours/glitch/components/dropdown_menu'; | ||||||
| import { isUserTouching } from 'themes/glitch/util/is_mobile'; | import { isUserTouching } from 'flavours/glitch/util/is_mobile'; | ||||||
| 
 | 
 | ||||||
| const mapStateToProps = state => ({ | const mapStateToProps = state => ({ | ||||||
|   isModalOpen: state.get('modal').modalType === 'ACTIONS', |   isModalOpen: state.get('modal').modalType === 'ACTIONS', | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import IntersectionObserverArticle from 'themes/glitch/components/intersection_observer_article'; | import IntersectionObserverArticle from 'flavours/glitch/components/intersection_observer_article'; | ||||||
| import { setHeight } from 'themes/glitch/actions/height_cache'; | import { setHeight } from 'flavours/glitch/actions/height_cache'; | ||||||
| 
 | 
 | ||||||
| const makeMapStateToProps = (state, props) => ({ | const makeMapStateToProps = (state, props) => ({ | ||||||
|   cachedHeight: state.getIn(['height_cache', props.saveHeightKey, props.id]), |   cachedHeight: state.getIn(['height_cache', props.saveHeightKey, props.id]), | ||||||
|  | @ -1,16 +1,16 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import { Provider } from 'react-redux'; | import { Provider } from 'react-redux'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import configureStore from 'themes/glitch/store/configureStore'; | import configureStore from 'flavours/glitch/store/configureStore'; | ||||||
| import { showOnboardingOnce } from 'themes/glitch/actions/onboarding'; | import { showOnboardingOnce } from 'flavours/glitch/actions/onboarding'; | ||||||
| import { BrowserRouter, Route } from 'react-router-dom'; | import { BrowserRouter, Route } from 'react-router-dom'; | ||||||
| import { ScrollContext } from 'react-router-scroll-4'; | import { ScrollContext } from 'react-router-scroll-4'; | ||||||
| import UI from 'themes/glitch/features/ui'; | import UI from 'flavours/glitch/features/ui'; | ||||||
| import { hydrateStore } from 'themes/glitch/actions/store'; | import { hydrateStore } from 'flavours/glitch/actions/store'; | ||||||
| import { connectUserStream } from 'themes/glitch/actions/streaming'; | import { connectUserStream } from 'flavours/glitch/actions/streaming'; | ||||||
| import { IntlProvider, addLocaleData } from 'react-intl'; | import { IntlProvider, addLocaleData } from 'react-intl'; | ||||||
| import { getLocale } from 'locales'; | import { getLocale } from 'locales'; | ||||||
| import initialState from 'themes/glitch/util/initial_state'; | import initialState from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const { localeData, messages } = getLocale(); | const { localeData, messages } = getLocale(); | ||||||
| addLocaleData(localeData); | addLocaleData(localeData); | ||||||
|  | @ -2,7 +2,7 @@ import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { IntlProvider, addLocaleData } from 'react-intl'; | import { IntlProvider, addLocaleData } from 'react-intl'; | ||||||
| import { getLocale } from 'mastodon/locales'; | import { getLocale } from 'mastodon/locales'; | ||||||
| import MediaGallery from 'themes/glitch/components/media_gallery'; | import MediaGallery from 'flavours/glitch/components/media_gallery'; | ||||||
| import { fromJS } from 'immutable'; | import { fromJS } from 'immutable'; | ||||||
| 
 | 
 | ||||||
| const { localeData, messages } = getLocale(); | const { localeData, messages } = getLocale(); | ||||||
|  | @ -3,13 +3,13 @@ import { connect } from 'react-redux'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| 
 | 
 | ||||||
| //  Our imports.
 | //  Our imports.
 | ||||||
| import NotificationPurgeButtons from 'themes/glitch/components/notification_purge_buttons'; | import NotificationPurgeButtons from 'flavours/glitch/components/notification_purge_buttons'; | ||||||
| import { | import { | ||||||
|   deleteMarkedNotifications, |   deleteMarkedNotifications, | ||||||
|   enterNotificationClearingMode, |   enterNotificationClearingMode, | ||||||
|   markAllNotifications, |   markAllNotifications, | ||||||
| } from 'themes/glitch/actions/notifications'; | } from 'flavours/glitch/actions/notifications'; | ||||||
| import { openModal } from 'themes/glitch/actions/modal'; | import { openModal } from 'flavours/glitch/actions/modal'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   clearMessage: { id: 'notifications.marked_clear_confirmation', defaultMessage: 'Are you sure you want to permanently clear all selected notifications?' }, |   clearMessage: { id: 'notifications.marked_clear_confirmation', defaultMessage: 'Are you sure you want to permanently clear all selected notifications?' }, | ||||||
|  | @ -1,11 +1,11 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import Status from 'themes/glitch/components/status'; | import Status from 'flavours/glitch/components/status'; | ||||||
| import { makeGetStatus } from 'themes/glitch/selectors'; | import { makeGetStatus } from 'flavours/glitch/selectors'; | ||||||
| import { | import { | ||||||
|   replyCompose, |   replyCompose, | ||||||
|   mentionCompose, |   mentionCompose, | ||||||
| } from 'themes/glitch/actions/compose'; | } from 'flavours/glitch/actions/compose'; | ||||||
| import { | import { | ||||||
|   reblog, |   reblog, | ||||||
|   favourite, |   favourite, | ||||||
|  | @ -13,14 +13,14 @@ import { | ||||||
|   unfavourite, |   unfavourite, | ||||||
|   pin, |   pin, | ||||||
|   unpin, |   unpin, | ||||||
| } from 'themes/glitch/actions/interactions'; | } from 'flavours/glitch/actions/interactions'; | ||||||
| import { blockAccount } from 'themes/glitch/actions/accounts'; | import { blockAccount } from 'flavours/glitch/actions/accounts'; | ||||||
| import { muteStatus, unmuteStatus, deleteStatus } from 'themes/glitch/actions/statuses'; | import { muteStatus, unmuteStatus, deleteStatus } from 'flavours/glitch/actions/statuses'; | ||||||
| import { initMuteModal } from 'themes/glitch/actions/mutes'; | import { initMuteModal } from 'flavours/glitch/actions/mutes'; | ||||||
| import { initReport } from 'themes/glitch/actions/reports'; | import { initReport } from 'flavours/glitch/actions/reports'; | ||||||
| import { openModal } from 'themes/glitch/actions/modal'; | import { openModal } from 'flavours/glitch/actions/modal'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import { boostModal, deleteModal } from 'themes/glitch/util/initial_state'; | import { boostModal, deleteModal } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, |   deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, | ||||||
|  | @ -1,13 +1,13 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import { Provider } from 'react-redux'; | import { Provider } from 'react-redux'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import configureStore from 'themes/glitch/store/configureStore'; | import configureStore from 'flavours/glitch/store/configureStore'; | ||||||
| import { hydrateStore } from 'themes/glitch/actions/store'; | import { hydrateStore } from 'flavours/glitch/actions/store'; | ||||||
| import { IntlProvider, addLocaleData } from 'react-intl'; | import { IntlProvider, addLocaleData } from 'react-intl'; | ||||||
| import { getLocale } from 'mastodon/locales'; | import { getLocale } from 'mastodon/locales'; | ||||||
| import PublicTimeline from 'themes/glitch/features/standalone/public_timeline'; | import PublicTimeline from 'flavours/glitch/features/standalone/public_timeline'; | ||||||
| import HashtagTimeline from 'themes/glitch/features/standalone/hashtag_timeline'; | import HashtagTimeline from 'flavours/glitch/features/standalone/hashtag_timeline'; | ||||||
| import initialState from 'themes/glitch/util/initial_state'; | import initialState from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const { localeData, messages } = getLocale(); | const { localeData, messages } = getLocale(); | ||||||
| addLocaleData(localeData); | addLocaleData(localeData); | ||||||
|  | @ -2,7 +2,7 @@ import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { IntlProvider, addLocaleData } from 'react-intl'; | import { IntlProvider, addLocaleData } from 'react-intl'; | ||||||
| import { getLocale } from 'mastodon/locales'; | import { getLocale } from 'mastodon/locales'; | ||||||
| import Video from 'themes/glitch/features/video'; | import Video from 'flavours/glitch/features/video'; | ||||||
| 
 | 
 | ||||||
| const { localeData, messages } = getLocale(); | const { localeData, messages } = getLocale(); | ||||||
| addLocaleData(localeData); | addLocaleData(localeData); | ||||||
|  | @ -1,10 +1,10 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import DropdownMenuContainer from 'themes/glitch/containers/dropdown_menu_container'; | import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container'; | ||||||
| import { Link } from 'react-router-dom'; | import { Link } from 'react-router-dom'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage, FormattedNumber } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage, FormattedNumber } from 'react-intl'; | ||||||
| import { me } from 'themes/glitch/util/initial_state'; | import { me } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   mention: { id: 'account.mention', defaultMessage: 'Mention @{name}' }, |   mention: { id: 'account.mention', defaultMessage: 'Mention @{name}' }, | ||||||
|  | @ -4,12 +4,12 @@ import PropTypes from 'prop-types'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| 
 | 
 | ||||||
| import Avatar from 'themes/glitch/components/avatar'; | import Avatar from 'flavours/glitch/components/avatar'; | ||||||
| import IconButton from 'themes/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| 
 | 
 | ||||||
| import emojify from 'themes/glitch/util/emoji'; | import emojify from 'flavours/glitch/util/emoji'; | ||||||
| import { me } from 'themes/glitch/util/initial_state'; | import { me } from 'flavours/glitch/util/initial_state'; | ||||||
| import { processBio } from 'themes/glitch/util/bio_metadata'; | import { processBio } from 'flavours/glitch/util/bio_metadata'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, |   unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import Permalink from 'themes/glitch/components/permalink'; | import Permalink from 'flavours/glitch/components/permalink'; | ||||||
| 
 | 
 | ||||||
| export default class MediaItem extends ImmutablePureComponent { | export default class MediaItem extends ImmutablePureComponent { | ||||||
| 
 | 
 | ||||||
|  | @ -2,18 +2,18 @@ import React from 'react'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { fetchAccount } from 'themes/glitch/actions/accounts'; | import { fetchAccount } from 'flavours/glitch/actions/accounts'; | ||||||
| import { refreshAccountMediaTimeline, expandAccountMediaTimeline } from 'themes/glitch/actions/timelines'; | import { refreshAccountMediaTimeline, expandAccountMediaTimeline } from 'flavours/glitch/actions/timelines'; | ||||||
| import LoadingIndicator from 'themes/glitch/components/loading_indicator'; | import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; | ||||||
| import Column from 'themes/glitch/features/ui/components/column'; | import Column from 'flavours/glitch/features/ui/components/column'; | ||||||
| import ColumnBackButton from 'themes/glitch/components/column_back_button'; | import ColumnBackButton from 'flavours/glitch/components/column_back_button'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { getAccountGallery } from 'themes/glitch/selectors'; | import { getAccountGallery } from 'flavours/glitch/selectors'; | ||||||
| import MediaItem from './components/media_item'; | import MediaItem from './components/media_item'; | ||||||
| import HeaderContainer from 'themes/glitch/features/account_timeline/containers/header_container'; | import HeaderContainer from 'flavours/glitch/features/account_timeline/containers/header_container'; | ||||||
| import { FormattedMessage } from 'react-intl'; | import { FormattedMessage } from 'react-intl'; | ||||||
| import { ScrollContainer } from 'react-router-scroll-4'; | import { ScrollContainer } from 'react-router-scroll-4'; | ||||||
| import LoadMore from 'themes/glitch/components/load_more'; | import LoadMore from 'flavours/glitch/components/load_more'; | ||||||
| 
 | 
 | ||||||
| const mapStateToProps = (state, props) => ({ | const mapStateToProps = (state, props) => ({ | ||||||
|   medias: getAccountGallery(state, props.params.accountId), |   medias: getAccountGallery(state, props.params.accountId), | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import InnerHeader from 'themes/glitch/features/account/components/header'; | import InnerHeader from 'flavours/glitch/features/account/components/header'; | ||||||
| import ActionBar from 'themes/glitch/features/account/components/action_bar'; | import ActionBar from 'flavours/glitch/features/account/components/action_bar'; | ||||||
| import MissingIndicator from 'themes/glitch/components/missing_indicator'; | import MissingIndicator from 'flavours/glitch/components/missing_indicator'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| 
 | 
 | ||||||
| export default class Header extends ImmutablePureComponent { | export default class Header extends ImmutablePureComponent { | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import { makeGetAccount } from 'themes/glitch/selectors'; | import { makeGetAccount } from 'flavours/glitch/selectors'; | ||||||
| import Header from '../components/header'; | import Header from '../components/header'; | ||||||
| import { | import { | ||||||
|   followAccount, |   followAccount, | ||||||
|  | @ -8,14 +8,14 @@ import { | ||||||
|   blockAccount, |   blockAccount, | ||||||
|   unblockAccount, |   unblockAccount, | ||||||
|   unmuteAccount, |   unmuteAccount, | ||||||
| } from 'themes/glitch/actions/accounts'; | } from 'flavours/glitch/actions/accounts'; | ||||||
| import { mentionCompose } from 'themes/glitch/actions/compose'; | import { mentionCompose } from 'flavours/glitch/actions/compose'; | ||||||
| import { initMuteModal } from 'themes/glitch/actions/mutes'; | import { initMuteModal } from 'flavours/glitch/actions/mutes'; | ||||||
| import { initReport } from 'themes/glitch/actions/reports'; | import { initReport } from 'flavours/glitch/actions/reports'; | ||||||
| import { openModal } from 'themes/glitch/actions/modal'; | import { openModal } from 'flavours/glitch/actions/modal'; | ||||||
| import { blockDomain, unblockDomain } from 'themes/glitch/actions/domain_blocks'; | import { blockDomain, unblockDomain } from 'flavours/glitch/actions/domain_blocks'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import { unfollowModal } from 'themes/glitch/util/initial_state'; | import { unfollowModal } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, |   unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, | ||||||
|  | @ -2,8 +2,8 @@ import React from 'react'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { fetchAccount } from 'themes/glitch/actions/accounts'; | import { fetchAccount } from 'flavours/glitch/actions/accounts'; | ||||||
| import { refreshAccountTimeline, expandAccountTimeline } from 'themes/glitch/actions/timelines'; | import { refreshAccountTimeline, expandAccountTimeline } from 'flavours/glitch/actions/timelines'; | ||||||
| import StatusList from '../../components/status_list'; | import StatusList from '../../components/status_list'; | ||||||
| import LoadingIndicator from '../../components/loading_indicator'; | import LoadingIndicator from '../../components/loading_indicator'; | ||||||
| import Column from '../ui/components/column'; | import Column from '../ui/components/column'; | ||||||
|  | @ -2,12 +2,12 @@ import React from 'react'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import LoadingIndicator from 'themes/glitch/components/loading_indicator'; | import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; | ||||||
| import { ScrollContainer } from 'react-router-scroll-4'; | import { ScrollContainer } from 'react-router-scroll-4'; | ||||||
| import Column from 'themes/glitch/features/ui/components/column'; | import Column from 'flavours/glitch/features/ui/components/column'; | ||||||
| import ColumnBackButtonSlim from 'themes/glitch/components/column_back_button_slim'; | import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim'; | ||||||
| import AccountContainer from 'themes/glitch/containers/account_container'; | import AccountContainer from 'flavours/glitch/containers/account_container'; | ||||||
| import { fetchBlocks, expandBlocks } from 'themes/glitch/actions/blocks'; | import { fetchBlocks, expandBlocks } from 'flavours/glitch/actions/blocks'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| 
 | 
 | ||||||
|  | @ -2,7 +2,7 @@ import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import SettingText from 'themes/glitch/components/setting_text'; | import SettingText from 'flavours/glitch/components/setting_text'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' }, |   filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' }, | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import ColumnSettings from '../components/column_settings'; | import ColumnSettings from '../components/column_settings'; | ||||||
| import { changeSetting } from 'themes/glitch/actions/settings'; | import { changeSetting } from 'flavours/glitch/actions/settings'; | ||||||
| 
 | 
 | ||||||
| const mapStateToProps = state => ({ | const mapStateToProps = state => ({ | ||||||
|   settings: state.getIn(['settings', 'community']), |   settings: state.getIn(['settings', 'community']), | ||||||
|  | @ -1,17 +1,17 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import StatusListContainer from 'themes/glitch/features/ui/containers/status_list_container'; | import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container'; | ||||||
| import Column from 'themes/glitch/components/column'; | import Column from 'flavours/glitch/components/column'; | ||||||
| import ColumnHeader from 'themes/glitch/components/column_header'; | import ColumnHeader from 'flavours/glitch/components/column_header'; | ||||||
| import { | import { | ||||||
|   refreshCommunityTimeline, |   refreshCommunityTimeline, | ||||||
|   expandCommunityTimeline, |   expandCommunityTimeline, | ||||||
| } from 'themes/glitch/actions/timelines'; | } from 'flavours/glitch/actions/timelines'; | ||||||
| import { addColumn, removeColumn, moveColumn } from 'themes/glitch/actions/columns'; | import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import ColumnSettingsContainer from './containers/column_settings_container'; | import ColumnSettingsContainer from './containers/column_settings_container'; | ||||||
| import { connectCommunityStream } from 'themes/glitch/actions/streaming'; | import { connectCommunityStream } from 'flavours/glitch/actions/streaming'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   title: { id: 'column.community', defaultMessage: 'Local timeline' }, |   title: { id: 'column.community', defaultMessage: 'Local timeline' }, | ||||||
|  | @ -6,10 +6,10 @@ import { injectIntl, defineMessages } from 'react-intl'; | ||||||
| 
 | 
 | ||||||
| //  Our imports  //
 | //  Our imports  //
 | ||||||
| import ComposeDropdown from './dropdown'; | import ComposeDropdown from './dropdown'; | ||||||
| import { uploadCompose } from 'themes/glitch/actions/compose'; | import { uploadCompose } from 'flavours/glitch/actions/compose'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { openModal } from 'themes/glitch/actions/modal'; | import { openModal } from 'flavours/glitch/actions/modal'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   upload : |   upload : | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import Avatar from 'themes/glitch/components/avatar'; | import Avatar from 'flavours/glitch/components/avatar'; | ||||||
| import DisplayName from 'themes/glitch/components/display_name'; | import DisplayName from 'flavours/glitch/components/display_name'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| 
 | 
 | ||||||
|  | @ -1,12 +1,12 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import CharacterCounter from './character_counter'; | import CharacterCounter from './character_counter'; | ||||||
| import Button from 'themes/glitch/components/button'; | import Button from 'flavours/glitch/components/button'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import ReplyIndicatorContainer from '../containers/reply_indicator_container'; | import ReplyIndicatorContainer from '../containers/reply_indicator_container'; | ||||||
| import AutosuggestTextarea from 'themes/glitch/components/autosuggest_textarea'; | import AutosuggestTextarea from 'flavours/glitch/components/autosuggest_textarea'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| import Collapsable from 'themes/glitch/components/collapsable'; | import Collapsable from 'flavours/glitch/components/collapsable'; | ||||||
| import SpoilerButtonContainer from '../containers/spoiler_button_container'; | import SpoilerButtonContainer from '../containers/spoiler_button_container'; | ||||||
| import PrivacyDropdownContainer from '../containers/privacy_dropdown_container'; | import PrivacyDropdownContainer from '../containers/privacy_dropdown_container'; | ||||||
| import ComposeAdvancedOptionsContainer from '../containers/advanced_options_container'; | import ComposeAdvancedOptionsContainer from '../containers/advanced_options_container'; | ||||||
|  | @ -14,12 +14,12 @@ import SensitiveButtonContainer from '../containers/sensitive_button_container'; | ||||||
| import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container'; | import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container'; | ||||||
| import UploadFormContainer from '../containers/upload_form_container'; | import UploadFormContainer from '../containers/upload_form_container'; | ||||||
| import WarningContainer from '../containers/warning_container'; | import WarningContainer from '../containers/warning_container'; | ||||||
| import { isMobile } from 'themes/glitch/util/is_mobile'; | import { isMobile } from 'flavours/glitch/util/is_mobile'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { length } from 'stringz'; | import { length } from 'stringz'; | ||||||
| import { countableText } from 'themes/glitch/util/counter'; | import { countableText } from 'flavours/glitch/util/counter'; | ||||||
| import ComposeAttachOptions from './attach_options'; | import ComposeAttachOptions from './attach_options'; | ||||||
| import initialState from 'themes/glitch/util/initial_state'; | import initialState from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const maxChars = initialState.max_toot_chars; | const maxChars = initialState.max_toot_chars; | ||||||
| 
 | 
 | ||||||
|  | @ -3,7 +3,7 @@ import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| 
 | 
 | ||||||
| //  Our imports.
 | //  Our imports.
 | ||||||
| import IconButton from 'themes/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| 
 | 
 | ||||||
| const iconStyle = { | const iconStyle = { | ||||||
|   height     : null, |   height     : null, | ||||||
|  | @ -1,12 +1,12 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| import { EmojiPicker as EmojiPickerAsync } from 'themes/glitch/util/async-components'; | import { EmojiPicker as EmojiPickerAsync } from 'flavours/glitch/util/async-components'; | ||||||
| import Overlay from 'react-overlays/lib/Overlay'; | import Overlay from 'react-overlays/lib/Overlay'; | ||||||
| import classNames from 'classnames'; | import classNames from 'classnames'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import detectPassiveEvents from 'detect-passive-events'; | import detectPassiveEvents from 'detect-passive-events'; | ||||||
| import { buildCustomEmojis } from 'themes/glitch/util/emoji'; | import { buildCustomEmojis } from 'flavours/glitch/util/emoji'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' }, |   emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' }, | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import Avatar from 'themes/glitch/components/avatar'; | import Avatar from 'flavours/glitch/components/avatar'; | ||||||
| import IconButton from 'themes/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| import Permalink from 'themes/glitch/components/permalink'; | import Permalink from 'flavours/glitch/components/permalink'; | ||||||
| import { FormattedMessage } from 'react-intl'; | import { FormattedMessage } from 'react-intl'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| 
 | 
 | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { injectIntl, defineMessages } from 'react-intl'; | import { injectIntl, defineMessages } from 'react-intl'; | ||||||
| import IconButton from 'themes/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| import Overlay from 'react-overlays/lib/Overlay'; | import Overlay from 'react-overlays/lib/Overlay'; | ||||||
| import Motion from 'themes/glitch/util/optional_motion'; | import Motion from 'flavours/glitch/util/optional_motion'; | ||||||
| import spring from 'react-motion/lib/spring'; | import spring from 'react-motion/lib/spring'; | ||||||
| import detectPassiveEvents from 'detect-passive-events'; | import detectPassiveEvents from 'detect-passive-events'; | ||||||
| import classNames from 'classnames'; | import classNames from 'classnames'; | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import Avatar from 'themes/glitch/components/avatar'; | import Avatar from 'flavours/glitch/components/avatar'; | ||||||
| import IconButton from 'themes/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| import DisplayName from 'themes/glitch/components/display_name'; | import DisplayName from 'flavours/glitch/components/display_name'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| 
 | 
 | ||||||
|  | @ -2,7 +2,7 @@ import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import Overlay from 'react-overlays/lib/Overlay'; | import Overlay from 'react-overlays/lib/Overlay'; | ||||||
| import Motion from 'themes/glitch/util/optional_motion'; | import Motion from 'flavours/glitch/util/optional_motion'; | ||||||
| import spring from 'react-motion/lib/spring'; | import spring from 'react-motion/lib/spring'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import { FormattedMessage } from 'react-intl'; | import { FormattedMessage } from 'react-intl'; | ||||||
| import AccountContainer from 'themes/glitch/containers/account_container'; | import AccountContainer from 'flavours/glitch/containers/account_container'; | ||||||
| import StatusContainer from 'themes/glitch/containers/status_container'; | import StatusContainer from 'flavours/glitch/containers/status_container'; | ||||||
| import { Link } from 'react-router-dom'; | import { Link } from 'react-router-dom'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| 
 | 
 | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import IconButton from 'themes/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| import Motion from 'themes/glitch/util/optional_motion'; | import Motion from 'flavours/glitch/util/optional_motion'; | ||||||
| import spring from 'react-motion/lib/spring'; | import spring from 'react-motion/lib/spring'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import IconButton from 'themes/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
| import { defineMessages, injectIntl } from 'react-intl'; | import { defineMessages, injectIntl } from 'react-intl'; | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue