Skip to content
Snippets Groups Projects
Unverified Commit 976de668 authored by Oisin Coveney's avatar Oisin Coveney Committed by GitHub
Browse files

Remove ButtonBar (#47212)

parent 7d34ca12
No related branches found
No related tags found
No related merge requests found
import styled from "@emotion/styled";
import type { ReactNode } from "react";
export const ButtonBarRoot = styled.div`
display: flex;
align-items: center;
`;
export interface ButtonBarLeftProps {
center?: ReactNode;
}
export const ButtonBarLeft = styled.div<ButtonBarLeftProps>`
display: flex;
flex: ${props => (props.center ? "1 0 0" : "")};
justify-content: flex-start;
align-items: center;
margin-right: ${props => (props.center ? "" : "auto")};
`;
export const ButtonBarCenter = styled.div`
display: flex;
align-items: center;
`;
export interface ButtonBarRightProps {
center?: ReactNode;
}
export const ButtonBarRight = styled.div<ButtonBarRightProps>`
display: flex;
flex: ${props => (props.center ? "1 0 0" : "")};
gap: 1rem;
justify-content: flex-end;
align-items: center;
margin-left: ${props => (props.center ? "" : "auto")};
`;
import type { HTMLAttributes, ReactNode } from "react";
import { Children } from "react";
import {
ButtonBarCenter,
ButtonBarLeft,
ButtonBarRight,
ButtonBarRoot,
} from "./ButtonBar.styled";
function normalizeArray(array?: ReactNode) {
if (Array.isArray(array)) {
array = array.filter(a => a);
if (Array.isArray(array) && array.length === 0) {
array = null;
} else {
array = Children.toArray(array);
}
}
return array;
}
interface ButtonBarProps extends HTMLAttributes<HTMLDivElement> {
left?: ReactNode;
right?: ReactNode;
center?: ReactNode;
children?: ReactNode;
}
// eslint-disable-next-line import/no-default-export -- deprecated usage
export default function ButtonBar({
children,
left = children,
center,
right,
...props
}: ButtonBarProps) {
left = normalizeArray(left);
center = normalizeArray(center);
right = normalizeArray(right);
return (
<ButtonBarRoot {...props}>
<ButtonBarLeft center={center}>{left}</ButtonBarLeft>
{center && <ButtonBarCenter>{center}</ButtonBarCenter>}
<ButtonBarRight center={center}>{right}</ButtonBarRight>
</ButtonBarRoot>
);
}
// eslint-disable-next-line import/no-default-export -- deprecated usage
export { default } from "./ButtonBar";
import cx from "classnames";
import ButtonBar from "metabase/components/ButtonBar";
import CS from "metabase/css/core/index.css";
import { useSelector } from "metabase/lib/redux";
import { getIsVisualized } from "metabase/query_builder/selectors";
import { Group } from "metabase/ui";
import * as Lib from "metabase-lib";
import { ViewFooterRoot } from "../ViewFooter.styled";
......@@ -56,13 +56,12 @@ export const ViewFooter = ({
return (
<ViewFooterRoot
className={cx(className, CS.textMedium, CS.borderTop)}
className={cx(className, CS.textMedium, CS.borderTop, CS.fullWidth)}
data-testid="view-footer"
>
<ButtonBar
className={CS.flexFull}
left={
!hideChartSettings && (
<Group position="apart" pos="relative" noWrap w="100%">
<Group className={CS.flex1}>
{!hideChartSettings && (
<LeftViewFooterButtonGroup
isShowingChartTypeSidebar={isShowingChartTypeSidebar}
isShowingChartSettingsSidebar={isShowingChartSettingsSidebar}
......@@ -71,18 +70,18 @@ export const ViewFooter = ({
onCloseChartSettings={onCloseChartSettings}
onOpenChartSettings={onOpenChartSettings}
/>
)
}
center={
isVisualized && (
)}
</Group>
{isVisualized && (
<Group>
<CenterViewFooterButtonGroup
setUIControls={setUIControls}
question={question}
isShowingRawTable={isShowingRawTable}
/>
)
}
right={
</Group>
)}
<Group noWrap>
<RightViewFooterButtonGroup
question={question}
result={result}
......@@ -93,8 +92,8 @@ export const ViewFooter = ({
onOpenTimelines={onOpenTimelines}
onCloseTimelines={onCloseTimelines}
/>
}
/>
</Group>
</Group>
</ViewFooterRoot>
);
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment