|
|
|
@ -75,6 +75,9 @@ export default class SettingsAPI extends API {
|
|
|
|
|
this.tabs[id] = props;
|
|
|
|
|
this.tabs[id].settings = this.connectStores(id)(render);
|
|
|
|
|
|
|
|
|
|
Object.freeze(this.tabs[id].render.prototype);
|
|
|
|
|
Object.freeze(this.tabs[id]);
|
|
|
|
|
|
|
|
|
|
const Render = this.tabs[id].settings;
|
|
|
|
|
|
|
|
|
|
vizality.api.router.registerRoute({
|
|
|
|
@ -92,6 +95,20 @@ export default class SettingsAPI extends API {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
unregisterAddonSettings (addonId) {
|
|
|
|
|
try {
|
|
|
|
|
if (this.tabs[addonId]) {
|
|
|
|
|
delete this.tabs[addonId];
|
|
|
|
|
} else {
|
|
|
|
|
throw new Error(`Settings for "${addonId}" are not registered, so they cannot be unregistered!`);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
vizality.api.router.unregisterRoute(`/dashboard/plugins/${addonId}`);
|
|
|
|
|
} catch (err) {
|
|
|
|
|
return error(_module, `${_submodule}:unregisterAddonSettings`, null, err);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
registerDashboardItem (props) {
|
|
|
|
|
try {
|
|
|
|
|
const { id, path, heading, subheading, icon, render } = props;
|
|
|
|
|