import Mixin from '@ember/object/mixin';

// this mixin relies on `unload-model-route` also being used
export default Mixin.create({
  actions: {
    willTransition(transition) {
      const model = this.controller.get('model');
      if (!model) {
        return true;
      }
      if (model.hasDirtyAttributes) {
        if (
          window.confirm(
            'You have unsaved changes. Navigating away will discard these changes. Are you sure you want to discard your changes?'
          )
        ) {
          this.unloadModel();
          return true;
        } else {
          transition.abort();
          return false;
        }
      }
      return true;
    },
  },
});
