@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
36 lines (35 loc) • 1.31 kB
JavaScript
import { ConfigurationReference, getConf } from '@jbrowse/core/configuration';
import { getEnv } from '@jbrowse/core/util';
import { getParentRenderProps } from '@jbrowse/core/util/tracks';
import { types } from 'mobx-state-tree';
import { BaseLinearDisplay } from '../BaseLinearDisplay';
export function stateModelFactory(configSchema) {
return types
.compose('LinearBareDisplay', BaseLinearDisplay, types.model({
type: types.literal('LinearBareDisplay'),
configuration: ConfigurationReference(configSchema),
}))
.views(self => ({
get rendererConfig() {
const configBlob = getConf(self, ['renderer']) || {};
const config = configBlob;
return self.rendererType.configSchema.create(config, getEnv(self));
},
get rendererTypeName() {
return getConf(self, ['renderer', 'type']);
},
}))
.views(self => {
const { renderProps: superRenderProps } = self;
return {
renderProps() {
return {
...superRenderProps(),
...getParentRenderProps(self),
rpcDriverName: self.rpcDriverName,
config: self.rendererConfig,
};
},
};
});
}