From b8dd1e34bd7b8a3547c4a5c6a903dee4a6c2ab9a Mon Sep 17 00:00:00 2001 From: tobi Date: Wed, 18 Dec 2024 11:55:01 +0100 Subject: [PATCH] remove unused translation languages --- .../flavours/glitch/actions/server.js | 27 --------- .../glitch/components/status_content.jsx | 56 +----------------- .../flavours/glitch/features/ui/index.jsx | 3 +- .../flavours/glitch/reducers/server.js | 9 --- app/javascript/mastodon/actions/server.js | 27 --------- .../mastodon/components/status_content.jsx | 59 +------------------ app/javascript/mastodon/features/ui/index.jsx | 3 +- app/javascript/mastodon/reducers/server.js | 9 --- 8 files changed, 7 insertions(+), 186 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/server.js b/app/javascript/flavours/glitch/actions/server.js index 564806411..6e842d277 100644 --- a/app/javascript/flavours/glitch/actions/server.js +++ b/app/javascript/flavours/glitch/actions/server.js @@ -6,10 +6,6 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST'; export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS'; export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL'; -export const SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST = 'SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST'; -export const SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS = 'SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS'; -export const SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL = 'SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL'; - export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST'; export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS'; export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL'; @@ -46,29 +42,6 @@ const fetchServerFail = error => ({ error, }); -export const fetchServerTranslationLanguages = () => (dispatch, getState) => { - dispatch(fetchServerTranslationLanguagesRequest()); - - api(getState) - .get('/api/v1/instance/translation_languages').then(({ data }) => { - dispatch(fetchServerTranslationLanguagesSuccess(data)); - }).catch(err => dispatch(fetchServerTranslationLanguagesFail(err))); -}; - -const fetchServerTranslationLanguagesRequest = () => ({ - type: SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, -}); - -const fetchServerTranslationLanguagesSuccess = translationLanguages => ({ - type: SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, - translationLanguages, -}); - -const fetchServerTranslationLanguagesFail = error => ({ - type: SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, - error, -}); - export const fetchDomainBlocks = () => (dispatch, getState) => { if (getState().getIn(['server', 'domainBlocks', 'isLoading'])) { return; diff --git a/app/javascript/flavours/glitch/components/status_content.jsx b/app/javascript/flavours/glitch/components/status_content.jsx index 4719d7dcc..9d4f15c19 100644 --- a/app/javascript/flavours/glitch/components/status_content.jsx +++ b/app/javascript/flavours/glitch/components/status_content.jsx @@ -9,7 +9,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { connect } from 'react-redux'; import { Icon } from 'flavours/glitch/components/icon'; -import { autoPlayGif, languages as preloadedLanguages } from 'flavours/glitch/initial_state'; +import { autoPlayGif } from 'flavours/glitch/initial_state'; import { decode as decodeIDNA } from 'flavours/glitch/utils/idna'; import Permalink from './permalink'; @@ -68,46 +68,6 @@ const isLinkMisleading = (link) => { return !(textMatchesTarget(text, origin, host) || textMatchesTarget(text.toLowerCase(), origin, host)); }; -class TranslateButton extends PureComponent { - - static propTypes = { - translation: ImmutablePropTypes.map, - onClick: PropTypes.func, - }; - - render () { - const { translation, onClick } = this.props; - - if (translation) { - const language = preloadedLanguages.find(lang => lang[0] === translation.get('detected_source_language')); - const languageName = language ? language[2] : translation.get('detected_source_language'); - const provider = translation.get('provider'); - - return ( -
-
- -
- - -
- ); - } - - return ( - - ); - } - -} - -const mapStateToProps = state => ({ - languages: state.getIn(['server', 'translationLanguages', 'items']), -}); class StatusContent extends PureComponent { @@ -129,8 +89,6 @@ class StatusContent extends PureComponent { onUpdate: PropTypes.func, tagLinks: PropTypes.bool, rewriteMentions: PropTypes.string, - languages: ImmutablePropTypes.map, - intl: PropTypes.object, }; static defaultProps = { @@ -321,13 +279,9 @@ class StatusContent extends PureComponent { disabled, tagLinks, rewriteMentions, - intl, } = this.props; const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; - const contentLocale = intl.locale.replace(/[_-].*/, ''); - const targetLanguages = this.props.languages?.get(status.get('language') || 'und'); - const renderTranslate = this.props.onTranslate && this.context.identity.signedIn && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('search_index').trim().length > 0 && targetLanguages?.includes(contentLocale); const content = { __html: status.getIn(['translation', 'contentHtml']) || status.get('contentHtml') }; const spoilerContent = { __html: status.getIn(['translation', 'spoilerHtml']) || status.get('spoilerHtml') }; @@ -337,9 +291,6 @@ class StatusContent extends PureComponent { 'status__content--with-spoiler': status.get('spoiler_text').length > 0, }); - const translateButton = renderTranslate && ( - - ); if (status.get('spoiler_text').length > 0) { let mentionsPlaceholder = ''; @@ -416,7 +367,6 @@ class StatusContent extends PureComponent { onMouseLeave={this.handleMouseLeave} lang={language} /> - {!hidden && translateButton} {media} @@ -441,7 +391,6 @@ class StatusContent extends PureComponent { onMouseLeave={this.handleMouseLeave} lang={language} /> - {translateButton} {media} {extraMedia} @@ -462,7 +411,6 @@ class StatusContent extends PureComponent { onMouseLeave={this.handleMouseLeave} lang={language} /> - {translateButton} {media} {extraMedia} @@ -472,4 +420,4 @@ class StatusContent extends PureComponent { } -export default connect(mapStateToProps)(injectIntl(StatusContent)); +export default connect()(injectIntl(StatusContent)); diff --git a/app/javascript/flavours/glitch/features/ui/index.jsx b/app/javascript/flavours/glitch/features/ui/index.jsx index c17cdb011..0697cc5e1 100644 --- a/app/javascript/flavours/glitch/features/ui/index.jsx +++ b/app/javascript/flavours/glitch/features/ui/index.jsx @@ -17,7 +17,7 @@ import { uploadCompose, resetCompose, changeComposeSpoilerness } from 'flavours/ 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 { fetchServer } 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'; @@ -423,7 +423,6 @@ class UI extends Component { this.props.dispatch(fetchMarkers()); this.props.dispatch(expandHomeTimeline()); this.props.dispatch(expandNotifications()); - this.props.dispatch(fetchServerTranslationLanguages()); setTimeout(() => this.props.dispatch(fetchServer()), 3000); } diff --git a/app/javascript/flavours/glitch/reducers/server.js b/app/javascript/flavours/glitch/reducers/server.js index e295c6b47..738ebfb49 100644 --- a/app/javascript/flavours/glitch/reducers/server.js +++ b/app/javascript/flavours/glitch/reducers/server.js @@ -4,9 +4,6 @@ import { SERVER_FETCH_REQUEST, SERVER_FETCH_SUCCESS, SERVER_FETCH_FAIL, - SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, - SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, - SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, SERVER_DOMAIN_BLOCKS_FETCH_FAIL, @@ -32,12 +29,6 @@ export default function server(state = initialState, action) { return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false); case SERVER_FETCH_FAIL: return state.setIn(['server', 'isLoading'], false); - case SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST: - return state.setIn(['translationLanguages', 'isLoading'], true); - case SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS: - return state.setIn(['translationLanguages', 'items'], fromJS(action.translationLanguages)).setIn(['translationLanguages', 'isLoading'], false); - case SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL: - return state.setIn(['translationLanguages', 'isLoading'], false); case SERVER_DOMAIN_BLOCKS_FETCH_REQUEST: return state.setIn(['domainBlocks', 'isLoading'], true); case SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS: diff --git a/app/javascript/mastodon/actions/server.js b/app/javascript/mastodon/actions/server.js index b917ca4c7..ce4e98ede 100644 --- a/app/javascript/mastodon/actions/server.js +++ b/app/javascript/mastodon/actions/server.js @@ -6,10 +6,6 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST'; export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS'; export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL'; -export const SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST = 'SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST'; -export const SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS = 'SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS'; -export const SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL = 'SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL'; - export const SERVER_DOMAIN_BLOCKS_FETCH_REQUEST = 'SERVER_DOMAIN_BLOCKS_FETCH_REQUEST'; export const SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS = 'SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS'; export const SERVER_DOMAIN_BLOCKS_FETCH_FAIL = 'SERVER_DOMAIN_BLOCKS_FETCH_FAIL'; @@ -42,29 +38,6 @@ const fetchServerFail = error => ({ error, }); -export const fetchServerTranslationLanguages = () => (dispatch, getState) => { - dispatch(fetchServerTranslationLanguagesRequest()); - - api(getState) - .get('/api/v1/instance/translation_languages').then(({ data }) => { - dispatch(fetchServerTranslationLanguagesSuccess(data)); - }).catch(err => dispatch(fetchServerTranslationLanguagesFail(err))); -}; - -const fetchServerTranslationLanguagesRequest = () => ({ - type: SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, -}); - -const fetchServerTranslationLanguagesSuccess = translationLanguages => ({ - type: SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, - translationLanguages, -}); - -const fetchServerTranslationLanguagesFail = error => ({ - type: SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, - error, -}); - export const fetchDomainBlocks = () => (dispatch, getState) => { if (getState().getIn(['server', 'domainBlocks', 'isLoading'])) { return; diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index d3bbc1ba0..f79f86ac7 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -11,7 +11,7 @@ import { connect } from 'react-redux'; import { Icon } from 'mastodon/components/icon'; import PollContainer from 'mastodon/containers/poll_container'; -import { autoPlayGif, languages as preloadedLanguages } from 'mastodon/initial_state'; +import { autoPlayGif } from 'mastodon/initial_state'; const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top) @@ -24,47 +24,6 @@ export function getStatusContent(status) { return status.getIn(['translation', 'contentHtml']) || status.get('contentHtml'); } -class TranslateButton extends PureComponent { - - static propTypes = { - translation: ImmutablePropTypes.map, - onClick: PropTypes.func, - }; - - render () { - const { translation, onClick } = this.props; - - if (translation) { - const language = preloadedLanguages.find(lang => lang[0] === translation.get('detected_source_language')); - const languageName = language ? language[2] : translation.get('detected_source_language'); - const provider = translation.get('provider'); - - return ( -
-
- -
- - -
- ); - } - - return ( - - ); - } - -} - -const mapStateToProps = state => ({ - languages: state.getIn(['server', 'translationLanguages', 'items']), -}); - class StatusContent extends PureComponent { static contextTypes = { @@ -81,8 +40,6 @@ class StatusContent extends PureComponent { onClick: PropTypes.func, collapsible: PropTypes.bool, onCollapsedToggle: PropTypes.func, - languages: ImmutablePropTypes.map, - intl: PropTypes.object, }; state = { @@ -235,13 +192,10 @@ class StatusContent extends PureComponent { }; render () { - const { status, intl, statusContent } = this.props; + const { status, statusContent } = this.props; const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; const renderReadMore = this.props.onClick && status.get('collapsed'); - const contentLocale = intl.locale.replace(/[_-].*/, ''); - const targetLanguages = this.props.languages?.get(status.get('language') || 'und'); - const renderTranslate = this.props.onTranslate && this.context.identity.signedIn && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('search_index').trim().length > 0 && targetLanguages?.includes(contentLocale); const content = { __html: statusContent ?? getStatusContent(status) }; const spoilerContent = { __html: status.getIn(['translation', 'spoilerHtml']) || status.get('spoilerHtml') }; @@ -258,10 +212,6 @@ class StatusContent extends PureComponent { ); - const translateButton = renderTranslate && ( - - ); - const poll = !!status.get('poll') && ( ); @@ -294,7 +244,6 @@ class StatusContent extends PureComponent {
{!hidden && poll} - {translateButton}
); } else if (this.props.onClick) { @@ -304,7 +253,6 @@ class StatusContent extends PureComponent {
{poll} - {translateButton}
{readMoreButton} @@ -316,7 +264,6 @@ class StatusContent extends PureComponent {
{poll} - {translateButton}
); } @@ -324,4 +271,4 @@ class StatusContent extends PureComponent { } -export default connect(mapStateToProps)(injectIntl(StatusContent)); +export default connect()(injectIntl(StatusContent)); diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx index ac5e2d936..4211f14e7 100644 --- a/app/javascript/mastodon/features/ui/index.jsx +++ b/app/javascript/mastodon/features/ui/index.jsx @@ -20,7 +20,7 @@ import { layoutFromWindow } from 'mastodon/is_mobile'; import { uploadCompose, resetCompose, changeComposeSpoilerness } from '../../actions/compose'; import { clearHeight } from '../../actions/height_cache'; import { expandNotifications } from '../../actions/notifications'; -import { fetchServer, fetchServerTranslationLanguages } from '../../actions/server'; +import { fetchServer } from '../../actions/server'; import { expandHomeTimeline } from '../../actions/timelines'; import initialState, { me, owner, singleUserMode, trendsEnabled, trendsAsLanding } from '../../initial_state'; @@ -404,7 +404,6 @@ class UI extends PureComponent { this.props.dispatch(fetchMarkers()); this.props.dispatch(expandHomeTimeline()); this.props.dispatch(expandNotifications()); - this.props.dispatch(fetchServerTranslationLanguages()); setTimeout(() => this.props.dispatch(fetchServer()), 3000); } diff --git a/app/javascript/mastodon/reducers/server.js b/app/javascript/mastodon/reducers/server.js index 5c5f561cc..2f0c1aa87 100644 --- a/app/javascript/mastodon/reducers/server.js +++ b/app/javascript/mastodon/reducers/server.js @@ -4,9 +4,6 @@ import { SERVER_FETCH_REQUEST, SERVER_FETCH_SUCCESS, SERVER_FETCH_FAIL, - SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST, - SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS, - SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL, SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, SERVER_DOMAIN_BLOCKS_FETCH_FAIL, @@ -32,12 +29,6 @@ export default function server(state = initialState, action) { return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false); case SERVER_FETCH_FAIL: return state.setIn(['server', 'isLoading'], false); - case SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST: - return state.setIn(['translationLanguages', 'isLoading'], true); - case SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS: - return state.setIn(['translationLanguages', 'items'], fromJS(action.translationLanguages)).setIn(['translationLanguages', 'isLoading'], false); - case SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL: - return state.setIn(['translationLanguages', 'isLoading'], false); case SERVER_DOMAIN_BLOCKS_FETCH_REQUEST: return state.setIn(['domainBlocks', 'isLoading'], true); case SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS: