[Back]
import {__} from '@wordpress/i18n';
import {Dropdown, Button, ColorIndicator, ColorPalette} from '@wordpress/components';
import {select} from '@wordpress/data';
import React, {useMemo} from "react";

const ColorSelectorControl = ({label, colorAttribute, attributes, setAttributes}) => {
    const colors = useMemo(() => select('core/block-editor').getSettings().colors, []);
    const renderColorPicker = () => (
        <ColorPalette
            value={attributes[colorAttribute]}
            colors={colors}
            enableAlpha
            onChange={(color) => setAttributes({[colorAttribute]: color})}
        />
    );

    return (
        <>
            <Dropdown
                className="lb-color-settings-dropdown"
                renderToggle={({isOpen, onToggle}) => (
                    <div className="lb-row lb-color-settings-w">
                        <div className="lb-label">{__(label)}</div>
                        <Button onClick={onToggle} aria-expanded={isOpen}>
                            <ColorIndicator className="lb-color-indicator" colorValue={attributes[colorAttribute]}/>
                        </Button>
                    </div>
                )}
                renderContent={renderColorPicker}
            />
        </>
    );
};

export default ColorSelectorControl;