Migration from 4.1

Designer Toolbar

The toolbar is configurable. You have to specify them in the appmixer.ui.Designer constructor, otherwise, it will be empty. More information here.

/* Create "Designer". */
var designer = appmixer.ui.Designer({
    el: '#your-designer',
    options: {
        menu: [
            { label: 'Rename', event: 'flow:rename' },
            { label: 'Insights Logs', event: 'flow:insights-logs' },
            { label: 'Clone', event: 'flow:clone' },
            { label: 'Share', event: 'flow:share' },
            { label: 'Export to SVG', event: 'flow:export-svg' },
            { label: 'Export to PNG', event: 'flow:export-png' },
            { label: 'Print', event: 'flow:print' }
        ],
        // buttons in the toolbar
        toolbar: [
            ['undo', 'redo'],
            ['zoom-to-fit', 'zoom-in', 'zoom-out'],
            ['logs']
        ]
    }
});

Custom Inspector Fields

The props structure for Custom Inspector Fields was changed. Although the same data is available inside the fields, it is accessed a bit differently. Until the 4.0 version the props definition looked like this:

props: {
   value: { type: null, required: false },
   variables: { type: Object, default: () => ({}) },
   inputManifest: { type: Object, default: () => ({}) },
   descriptorPath: { type: String, default: '' },
   errors: { type: Array, default: () => ([]) },
   disabled: { type: Boolean, default: false }
}

This is how it looks in 4.1:

props: {
    context: { type: Object },
    value: { type: null, required: false },
    errors: { type: Array, default: () => ([]) },
    disabled: { type: Boolean, default: false },
}

The context object contains the following properties:

  • componentId

  • inputManifest

  • componentManifest

  • descriptorPath

  • variables

As you can see, the context object now contains the contextual data - i.e. the data from the component to which the input belongs. The same data as before remains available, and access to the componentId and componentManifest is now available as well. So if you have references to inputManifest, descriptorPath or variables, change them and refer to these properties inside the context object. For example, if we had this code:

computed: {
    config() {
        return this.inputManifest.config;
    },
},

You have to update it to:

computed: {
    config() {
        return this.context.inputManifest.config;
    },
},

Slack app

Migrate the legacy Slack applications. The Slack Appmixer module in 4.1 does not work with newly registered Slack applications. We upgraded the module to the newest Slack API. Unfortunately, it is no longer compatible with legacy Slack apps. More information can be found in the Slack section.

Last updated