42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
/**
|
|
* State: general Redux state utility functions.
|
|
* @module soapbox/utils/state
|
|
*/
|
|
|
|
import { getSoapboxConfig } from'soapbox/actions/soapbox';
|
|
import { isPrerendered } from 'soapbox/precheck';
|
|
import { isURL } from 'soapbox/utils/auth';
|
|
import { getBaseURL as getAccountBaseURL } from 'soapbox/utils/accounts';
|
|
import { BACKEND_URL } from 'soapbox/build_config';
|
|
|
|
export const displayFqn = state => {
|
|
const soapbox = getSoapboxConfig(state);
|
|
return soapbox.get('displayFqn');
|
|
};
|
|
|
|
export const federationRestrictionsDisclosed = state => {
|
|
return state.hasIn(['instance', 'pleroma', 'metadata', 'federation', 'mrf_policies']);
|
|
};
|
|
|
|
/**
|
|
* Determine whether Soapbox FE is running in standalone mode.
|
|
* Standalone mode runs separately from any backend and can login anywhere.
|
|
* @param {object} state
|
|
* @returns {boolean}
|
|
*/
|
|
export const isStandalone = state => {
|
|
const instanceFetchFailed = state.getIn(['meta', 'instance_fetch_failed'], false);
|
|
return isURL(BACKEND_URL) ? false : (!isPrerendered && instanceFetchFailed);
|
|
};
|
|
|
|
/**
|
|
* Get the baseURL of the instance.
|
|
* @param {object} state
|
|
* @returns {string} url
|
|
*/
|
|
export const getBaseURL = state => {
|
|
const me = state.get('me');
|
|
const account = state.getIn(['accounts', me]);
|
|
|
|
return isURL(BACKEND_URL) ? BACKEND_URL : getAccountBaseURL(account);
|
|
};
|