CSS Gradient Paste Image

Add a paste image option to CSS Gradient and upload the image using the site's upload button

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

// ==UserScript==
// @name         CSS Gradient Paste Image
// @namespace    CSS Clipboard Upload
// @version      1.0
// @description  Add a paste image option to CSS Gradient and upload the image using the site's upload button
// @author       𝓝𝑒ⓦ 𝓙ⓐ¢𝓀🕹️
// @match        https://cssgradient.io/*
// @license      MIT
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Wait until the DOM is fully loaded
    window.addEventListener('load', function() {
        // Function to create the "Paste Image" button
        function createPasteButton() {
            const div = document.querySelector('.app-options__content');
            if (div) {
                const pasteOption = document.createElement('div');
                pasteOption.className = 'app-option';

                const pasteButton = document.createElement('button');
                pasteButton.className = 'app-option__button';
                pasteButton.innerText = 'Paste Image';
                pasteOption.appendChild(pasteButton);

                // Add the paste option to the div
                div.appendChild(pasteOption);

                // Add event listener for paste event
                pasteButton.addEventListener('click', function() {
                    document.addEventListener('paste', function(event) {
                        const items = (event.clipboardData || event.originalEvent.clipboardData).items;
                        for (const item of items) {
                            if (item.kind === 'file' && item.type.startsWith('image/')) {
                                const blob = item.getAsFile();
                                const fileInput = document.querySelector('.js-upload');
                                const dataTransfer = new DataTransfer();
                                dataTransfer.items.add(blob);
                                fileInput.files = dataTransfer.files;

                                // Trigger the change event to simulate uploading
                                const event = new Event('change');
                                fileInput.dispatchEvent(event);
                            }
                        }
                    }, { once: true });
                });
            } else {
                console.log('Target div not found');
            }
        }

        // Add the paste button to the page
        createPasteButton();
    });
})();