import { map } from "lodash";
import React from "react";
import PropTypes from "prop-types";
import Tooltip from "antd/lib/tooltip";
import Button from "antd/lib/button";
import Select from "antd/lib/select";
import AutocompleteToggle from "./AutocompleteToggle";
import "./QueryEditorControls.less";
export default function EditorControl({
addParameterButtonProps,
formatButtonProps,
saveButtonProps,
executeButtonProps,
autocompleteToggleProps,
dataSourceSelectorProps,
}) {
return (
{addParameterButtonProps !== false && (
)}
{formatButtonProps !== false && (
)}
{autocompleteToggleProps !== false && (
)}
{dataSourceSelectorProps === false &&
}
{dataSourceSelectorProps !== false && (
)}
{saveButtonProps !== false && (
)}
{executeButtonProps !== false && (
)}
);
}
const ButtonPropsPropType = PropTypes.oneOfType([
PropTypes.bool, // `false` to hide button
PropTypes.shape({
title: PropTypes.node,
disabled: PropTypes.bool,
onClick: PropTypes.func,
text: PropTypes.node,
}),
]);
EditorControl.propTypes = {
addParameterButtonProps: ButtonPropsPropType,
formatButtonProps: ButtonPropsPropType,
saveButtonProps: ButtonPropsPropType,
executeButtonProps: ButtonPropsPropType,
autocompleteToggleProps: PropTypes.oneOfType([
PropTypes.bool, // `false` to hide
PropTypes.shape({
available: PropTypes.bool,
enabled: PropTypes.bool,
onToggle: PropTypes.func,
}),
]),
dataSourceSelectorProps: PropTypes.oneOfType([
PropTypes.bool, // `false` to hide
PropTypes.shape({
disabled: PropTypes.bool,
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
options: PropTypes.arrayOf(
PropTypes.shape({
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
label: PropTypes.node,
})
),
onChange: PropTypes.func,
}),
]),
};
EditorControl.defaultProps = {
addParameterButtonProps: false,
formatButtonProps: false,
saveButtonProps: false,
executeButtonProps: false,
autocompleteToggleProps: false,
dataSourceSelectorProps: false,
};