Import Instance into store

stable/1.0.x
Alex Gleason 2020-04-01 15:05:52 -05:00
rodzic e33b621fb9
commit 8ec0e6e82a
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
4 zmienionych plików z 47 dodań i 1 usunięć

Wyświetl plik

@ -0,0 +1,29 @@
import api from '../api';
export const INSTANCE_IMPORT = 'INSTANCE_IMPORT';
export const INSTANCE_FAIL = 'INSTANCE_FAIL';
export function fetchInstance() {
return (dispatch, getState) => {
api(getState).get(`/api/v1/instance`).then(response => {
dispatch(importInstance(response.data));
}).catch(error => {
dispatch(instanceFail(error));
});
};
}
export function importInstance(instance) {
return {
type: INSTANCE_IMPORT,
instance
};
}
export function instanceFail(error) {
return {
type: INSTANCE_FAIL,
error,
skipAlert: true,
};
};

Wyświetl plik

@ -17,6 +17,7 @@ import { getLocale } from '../locales';
import initialState from '../initial_state';
import { me } from '../initial_state';
import ErrorBoundary from '../components/error_boundary';
import { fetchInstance } from 'gabsocial/actions/instance';
import { fetchSoapboxConfig } from 'gabsocial/actions/soapbox';
const { localeData, messages } = getLocale();
@ -26,8 +27,9 @@ export const store = configureStore();
const hydrateAction = hydrateStore(initialState);
store.dispatch(hydrateAction);
store.dispatch(fetchCustomEmojis());
store.dispatch(fetchInstance());
store.dispatch(fetchSoapboxConfig());
store.dispatch(fetchCustomEmojis());
const mapStateToProps = (state) => {
const account = state.getIn(['accounts', me]);

Wyświetl plik

@ -39,6 +39,7 @@ import group_editor from './group_editor';
import sidebar from './sidebar';
import patron from './patron';
import soapbox from './soapbox';
import instance from './instance';
const reducers = {
dropdown_menu,
@ -81,6 +82,7 @@ const reducers = {
sidebar,
patron,
soapbox,
instance,
};
export default combineReducers(reducers);

Wyświetl plik

@ -0,0 +1,13 @@
import { INSTANCE_IMPORT } from '../actions/instance';
import { Map as ImmutableMap, fromJS } from 'immutable';
const initialState = ImmutableMap();
export default function instance(state = initialState, action) {
switch(action.type) {
case INSTANCE_IMPORT:
return ImmutableMap(fromJS(action.instance));
default:
return state;
}
};