requirejs([
    'jquery',
    'Magento_Customer/js/customer-data',
    'toastr',
    'underscore',
    'domReady!',
    "mage/cookies"
], function($, customerData, toastr, _){
    var observableObject = customerData.get('messages');

    toastr.options = {
        "closeButton": false,
        "debug": false,
        "newestOnTop": true,
        "progressBar": false,
        "positionClass": "toast-top-full",
        "preventDuplicates": false,
        "onclick": null,
        "showDuration": "400",
        "hideDuration": "400",
        "timeOut": "3000",
        "extendedTimeOut": "2000",
        // "showEasing": "easeOutCirc",
        // "hideEasing": "easeInCirc",
        "showMethod": "slideDown",
        "hideMethod": "slideUp"
    };

    let showToastMessage = function(data){
        try{
            if (data.messages !== undefined && data.messages.length >= 1) {
                data.messages.forEach(function (message) {
                    switch (message.type) {
                        case "success":
                            toastr.success(message.text, "");
                            break;
                        case "error":
                            toastr.error(message.text, "");
                            break;
                        default:
                            toastr.info(message.text, "");
                    }
                })
                $.mage.cookies.set('mage-messages', '', {
                    samesite: 'strict',
                    domain: ''
                });
                customerData.set('messages', {});
            }
        }catch(e){
            console.log(e);
            console.log(data);
        }
    };

    let previousToastr = $.cookieStorage.get('mage-messages');
    showToastMessage({'messages' : previousToastr});



    observableObject.subscribe(showToastMessage);
});
