outl1ne / nova-notes-field

This Laravel Nova package adds a notes field to Nova's arsenal of fields.
MIT License
51 stars 36 forks source link

Fix the delete button in the delete confirmation model it was not showing as important and not clickable #75

Open bm2ilabs opened 5 months ago

bitfactory-oussama-fadlaoui commented 1 month ago

Unfortunately, this package seems to be abandoned by the maintainers. We too have experienced this issue. As a workaround (last measure to prevent having to maintain the package ourselves), we implemented the following in nova.js:

const observer = new MutationObserver(mutations => {
    mutations.forEach(mutation => {
        mutation.addedNodes.forEach((node) => {
            if (typeof node.querySelector !== 'function') {
                return;
            }

            const dangerButton = node.querySelector('dangerbutton');

            if (dangerButton) {
                const button = document.createElement('button');
                // clone all attributes
                for (let i = 0; i < dangerButton.attributes.length; i++) {
                    const { name, value } = dangerButton.attributes[i];
                    button.setAttribute(name, value);
                }
                dangerButton.replaceWith(button);
            }
        });
    });
});

observer.observe(document.body, {
    childList: true,
    subtree: true,
});

// Clean-up is not necessary because we cannot watch for Inertia route events
// and the MutationObserver will be garbage collected when the page is unloaded.