Skip to content
Snippets Groups Projects
Commit e5997d54 authored by Jack Reed's avatar Jack Reed Committed by Chris Beer
Browse files

Support translations from multiple plugins in the config merge

parent 5915f14d
No related branches found
No related tags found
No related merge requests found
......@@ -64,5 +64,43 @@ describe('MiradorViewer', () => {
expect(config.foo).toBe('bar');
});
it('merges translation configs from multiple plugins', () => {
instance = new MiradorViewer({
id: 'mirador',
},
{
plugins: [
{
config: {
translations: {
en: {
foo: 'bar',
},
},
},
mode: 'add',
target: 'WindowTopBarPluginArea',
},
{
config: {
translations: {
en: {
bat: 'bar',
},
},
},
mode: 'wrap',
target: 'Window',
},
],
});
const { config } = instance.store.getState();
expect(config.translations.en).toEqual(expect.objectContaining({
bat: 'bar',
foo: 'bar',
}));
});
});
});
import deepmerge from 'deepmerge';
import { validatePlugin } from './pluginValidation';
/** */
......@@ -39,7 +40,7 @@ export function getReducersFromPlugins(plugins) {
/** */
export function getConfigFromPlugins(plugins) {
return plugins && plugins.reduce((acc, plugin) => ({ ...acc, ...plugin.config }), {});
return plugins && plugins.reduce((acc, plugin) => (deepmerge(acc, plugin.config || {})), {});
}
/** */
......
......@@ -45,7 +45,7 @@ class MiradorViewer {
processConfig() {
this.store.dispatch(
importConfig(
deepmerge(getConfigFromPlugins(this.plugins), this.config),
deepmerge(this.config, getConfigFromPlugins(this.plugins)),
),
);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment