import { css, cx } from '@emotion/css'; import * as React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { IconButton, IconName, useStyles2 } from '@grafana/ui'; interface BaseQueryOperationActionProps { icon: IconName; title: string; onClick: (e: React.MouseEvent) => void; disabled?: boolean; dataTestId?: string; } function BaseQueryOperationAction(props: QueryOperationActionProps | QueryOperationToggleActionProps) { const styles = useStyles2(getStyles); return (
); } interface QueryOperationActionProps extends BaseQueryOperationActionProps {} export function QueryOperationAction(props: QueryOperationActionProps) { return ; } interface QueryOperationToggleActionProps extends BaseQueryOperationActionProps { active: boolean; } export const QueryOperationToggleAction = (props: QueryOperationToggleActionProps) => { return ; }; const getStyles = (theme: GrafanaTheme2) => { return { icon: css({ display: 'flex', position: 'relative', color: theme.colors.text.secondary, }), active: css({ '&:before': { display: 'block', content: '" "', position: 'absolute', left: -1, right: 2, height: 3, borderRadius: theme.shape.radius.default, bottom: -8, backgroundImage: theme.colors.gradients.brandHorizontal, }, }), }; };