~cytrogen/masto-fe

5b463454593e1aa3ab3d23446cdf57d606e933d5 — mogaminsk 2 years ago 0512537
Prevent duplicate concurrent calls of `/api/*/instance` in web UI (#25663)

M app/javascript/mastodon/actions/server.js => app/javascript/mastodon/actions/server.js +12 -0
@@ 19,6 19,10 @@ export const SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS = 'SERVER_DOMAIN_BLOCKS_FETCH_SU
export const SERVER_DOMAIN_BLOCKS_FETCH_FAIL    = 'SERVER_DOMAIN_BLOCKS_FETCH_FAIL';

export const fetchServer = () => (dispatch, getState) => {
  if (getState().getIn(['server', 'server', 'isLoading'])) {
    return;
  }

  dispatch(fetchServerRequest());

  api(getState)


@@ 66,6 70,10 @@ const fetchServerTranslationLanguagesFail = error => ({
});

export const fetchExtendedDescription = () => (dispatch, getState) => {
  if (getState().getIn(['server', 'extendedDescription', 'isLoading'])) {
    return;
  }

  dispatch(fetchExtendedDescriptionRequest());

  api(getState)


@@ 89,6 97,10 @@ const fetchExtendedDescriptionFail = error => ({
});

export const fetchDomainBlocks = () => (dispatch, getState) => {
  if (getState().getIn(['server', 'domainBlocks', 'isLoading'])) {
    return;
  }

  dispatch(fetchDomainBlocksRequest());

  api(getState)

M app/javascript/mastodon/features/about/index.jsx => app/javascript/mastodon/features/about/index.jsx +1 -1
@@ 161,7 161,7 @@ class About extends PureComponent {
          </Section>

          <Section title={intl.formatMessage(messages.rules)}>
            {!isLoading && (server.get('rules').isEmpty() ? (
            {!isLoading && (server.get('rules', []).isEmpty() ? (
              <p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
            ) : (
              <ol className='rules-list'>

M app/javascript/mastodon/reducers/server.js => app/javascript/mastodon/reducers/server.js +3 -3
@@ 17,15 17,15 @@ import {

const initialState = ImmutableMap({
  server: ImmutableMap({
    isLoading: true,
    isLoading: false,
  }),

  extendedDescription: ImmutableMap({
    isLoading: true,
    isLoading: false,
  }),

  domainBlocks: ImmutableMap({
    isLoading: true,
    isLoading: false,
    isAvailable: true,
    items: ImmutableList(),
  }),