fix(site): fix pill spinner size (#11368)

This commit is contained in:
Bruno Quaresma
2024-01-02 15:05:20 -03:00
committed by GitHub
parent 467a1a3e71
commit a1341ee9ac
3 changed files with 39 additions and 22 deletions
+14 -6
View File
@@ -1,20 +1,19 @@
import { Pill } from "./Pill";
import { Pill, PillSpinner } from "./Pill";
import type { Meta, StoryObj } from "@storybook/react";
import InfoOutlined from "@mui/icons-material/InfoOutlined";
const meta: Meta<typeof Pill> = {
title: "components/Pill",
component: Pill,
args: {
children: "Default",
},
};
export default meta;
type Story = StoryObj<typeof Pill>;
export const Default: Story = {
args: {
children: "Default",
},
};
export const Default: Story = {};
export const Danger: Story = {
args: {
@@ -72,3 +71,12 @@ export const WithIcon: Story = {
icon: <InfoOutlined />,
},
};
export const WithSpinner: Story = {
args: {
icon: <PillSpinner />,
},
parameters: {
chromatic: { delay: 700 },
},
};
+19
View File
@@ -7,6 +7,9 @@ import {
} from "react";
import { useTheme, type Interpolation, type Theme } from "@emotion/react";
import type { ThemeRole } from "theme/experimental";
import CircularProgress, {
CircularProgressProps,
} from "@mui/material/CircularProgress";
export type PillType = ThemeRole | keyof typeof themeOverrides;
@@ -81,3 +84,19 @@ export const Pill: FC<PillProps> = forwardRef<HTMLDivElement, PillProps>(
);
},
);
export const PillSpinner = (props: CircularProgressProps) => {
return (
<CircularProgress
size={PILL_ICON_SIZE}
css={(theme) => ({
color: theme.experimental.l1.text,
// It is necessary to align it with the MUI Icons internal padding
"& svg": {
transform: "scale(.75)",
},
})}
{...props}
/>
);
};
+6 -16
View File
@@ -1,4 +1,3 @@
import CircularProgress from "@mui/material/CircularProgress";
import ErrorIcon from "@mui/icons-material/ErrorOutline";
import StopIcon from "@mui/icons-material/StopOutlined";
import PlayIcon from "@mui/icons-material/PlayArrowOutlined";
@@ -8,9 +7,9 @@ import duration from "dayjs/plugin/duration";
import minMax from "dayjs/plugin/minMax";
import utc from "dayjs/plugin/utc";
import { type Theme } from "@emotion/react";
import { type FC } from "react";
import semver from "semver";
import type * as TypesGen from "api/typesGenerated";
import { PillSpinner } from "components/Pill/Pill";
dayjs.extend(duration);
dayjs.extend(utc);
@@ -29,15 +28,6 @@ const DisplayAgentVersionLanguage = {
unknown: "Unknown",
};
const LoadingIcon: FC = () => {
return (
<CircularProgress
size={10}
css={(theme) => ({ color: theme.experimental.l1.text })}
/>
);
};
export const getDisplayWorkspaceBuildStatus = (
theme: Theme,
build: TypesGen.WorkspaceBuild,
@@ -185,7 +175,7 @@ export const getDisplayWorkspaceStatus = (
case undefined:
return {
text: "Loading",
icon: <LoadingIcon />,
icon: <PillSpinner />,
} as const;
case "running":
return {
@@ -197,13 +187,13 @@ export const getDisplayWorkspaceStatus = (
return {
type: "active",
text: "Starting",
icon: <LoadingIcon />,
icon: <PillSpinner />,
} as const;
case "stopping":
return {
type: "notice",
text: "Stopping",
icon: <LoadingIcon />,
icon: <PillSpinner />,
} as const;
case "stopped":
return {
@@ -215,7 +205,7 @@ export const getDisplayWorkspaceStatus = (
return {
type: "danger",
text: "Deleting",
icon: <LoadingIcon />,
icon: <PillSpinner />,
} as const;
case "deleted":
return {
@@ -227,7 +217,7 @@ export const getDisplayWorkspaceStatus = (
return {
type: "notice",
text: "Canceling",
icon: <LoadingIcon />,
icon: <PillSpinner />,
} as const;
case "canceled":
return {