:

Post Message

Guidelines for using post message functionality in Altinn Studio

Window.postMessage() is introduced to handle communication between components that has no connection other then the need to communicate/trigger events. Eg. its used to communicate with the syncBar to get it to perform a new status check. To read more see: Window.postMessage

Usage

Dispatching a message event is done the following way:

// variables should be used for messages
var SAVED_EVENT = 'SAVED'
window.postMessage(SAVED_EVENT, window.location.href);

Catching the event is done by adding an event listener to the component one needs to communicate with:

  public componentDidMount() {
    window.addEventListener('message', this.eventThatShouldHappend);
  }

  public eventThatShouldHappend(){
     if (event.data === SAVED_EVENT){
       //Do necessary handling of correct message
     }
  }

When the commponent is unmounting the event listener should be removed:

  public componentWillUnmount() {
    window.removeEventListener('message', this.eventThatShouldHappend);
  }

Remember to create “message variables” that make sense when comparing different messages. Example: “SAVED_IN_UI_EDITOR”, “SAVED_IN_OTHER_PLACE” or “FETCH_REPO_STATUS”.