49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
import { SET_CONFIG } from '../base/config/actionTypes';
|
|
import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
|
|
|
|
import { SET_DYNAMIC_BRANDING_DATA } from './actionTypes';
|
|
import { fetchCustomBrandingData } from './actions.native';
|
|
|
|
|
|
MiddlewareRegistry.register(store => next => action => {
|
|
switch (action.type) {
|
|
case SET_CONFIG: {
|
|
const result = next(action);
|
|
|
|
store.dispatch(fetchCustomBrandingData());
|
|
|
|
return result;
|
|
}
|
|
|
|
case SET_DYNAMIC_BRANDING_DATA: {
|
|
const {
|
|
avatarBackgrounds = [],
|
|
backgroundColor,
|
|
backgroundImageUrl,
|
|
didPageUrl,
|
|
inviteDomain
|
|
} = action.value;
|
|
|
|
action.value = {
|
|
avatarBackgrounds,
|
|
backgroundColor,
|
|
backgroundImageUrl,
|
|
didPageUrl,
|
|
inviteDomain
|
|
};
|
|
|
|
// The backend may send an empty string, make sure we skip that.
|
|
if (Array.isArray(avatarBackgrounds)) {
|
|
// TODO: implement support for gradients.
|
|
action.value.avatarBackgrounds = avatarBackgrounds.filter(
|
|
(color: string) => !color.includes('linear-gradient')
|
|
);
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
return next(action);
|
|
});
|