Magento 2.2.1 – Error/Success Messages Show Wrong Page and Are Not Cleared

magento-2.2.1magento2messages

I'm on 2.2.1 with custom theme
when login failed, message showed up but are not cleared, it showed duplicate, and when login successfully, its still showing in account infomation page
enter image description here
enter image description here

Best Answer

Override messages.js in this location:

app/design/frontend/Mastering/itdesire/Magento_Theme/web/js/view/messages.js

    /**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
define([
    'jquery',
    'uiComponent',
    'underscore',
    'Magento_Customer/js/customer-data',
    'jquery/jquery-storageapi'
], function ($, Component, _, customerData) {
    'use strict';

    return Component.extend({
        defaults: {
            cookieMessages: [],
            messages: []
        },

        /** @inheritdoc */
        initialize: function () {
            this._super();

            this.cookieMessages = $.cookieStorage.get('mage-messages');
            this.messages = customerData.get('messages').extend({
                disposableCustomerData: 'messages'
            });

            if (!_.isEmpty(this.messages().messages)) {
                customerData.set('messages', {});
            }

            $.cookieStorage.set('mage-messages', '');

            $(window).on('beforeunload', function () {
                $.cookieStorage.set('mage-messages', '');
            });

        }
    });
});
Related Topic