From 223a752bc0a9fce4296e0a48f286aaa0b9da2eb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Mon, 13 Apr 2020 17:41:13 +0200 Subject: [PATCH] Add HorizontalProgress --- .../CopyTextButton/CopyTextButton.test.js | 2 +- .../{ => ProgressBars}/CircleProgress.test.js | 0 .../{ => ProgressBars}/CircleProgress.tsx | 0 .../HorizontalProgress.stories.tsx | 43 ++++++++++++++++ .../ProgressBars/HorizontalProgress.tsx | 51 +++++++++++++++++++ .../ProgressCard.stories.tsx | 0 .../{ => ProgressBars}/ProgressCard.test.js | 0 .../{ => ProgressBars}/ProgressCard.tsx | 0 packages/core/src/index.ts | 5 +- 9 files changed, 98 insertions(+), 3 deletions(-) rename packages/core/src/components/{ => ProgressBars}/CircleProgress.test.js (100%) rename packages/core/src/components/{ => ProgressBars}/CircleProgress.tsx (100%) create mode 100644 packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx create mode 100644 packages/core/src/components/ProgressBars/HorizontalProgress.tsx rename packages/core/src/components/{ => ProgressBars}/ProgressCard.stories.tsx (100%) rename packages/core/src/components/{ => ProgressBars}/ProgressCard.test.js (100%) rename packages/core/src/components/{ => ProgressBars}/ProgressCard.tsx (100%) diff --git a/packages/core/src/components/CopyTextButton/CopyTextButton.test.js b/packages/core/src/components/CopyTextButton/CopyTextButton.test.js index c1c2212be7..0d267ae5c9 100644 --- a/packages/core/src/components/CopyTextButton/CopyTextButton.test.js +++ b/packages/core/src/components/CopyTextButton/CopyTextButton.test.js @@ -17,7 +17,7 @@ import React from 'react'; import { render } from '@testing-library/react'; import { wrapInThemedTestApp } from '@backstage/test-utils'; -import CopyTextButton from 'shared/components/CopyTextButton'; +import CopyTextButton from './CopyTextButton'; const props = { text: 'mockText', diff --git a/packages/core/src/components/CircleProgress.test.js b/packages/core/src/components/ProgressBars/CircleProgress.test.js similarity index 100% rename from packages/core/src/components/CircleProgress.test.js rename to packages/core/src/components/ProgressBars/CircleProgress.test.js diff --git a/packages/core/src/components/CircleProgress.tsx b/packages/core/src/components/ProgressBars/CircleProgress.tsx similarity index 100% rename from packages/core/src/components/CircleProgress.tsx rename to packages/core/src/components/ProgressBars/CircleProgress.tsx diff --git a/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx b/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx new file mode 100644 index 0000000000..d027bcedc5 --- /dev/null +++ b/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import HorizontalProgress from './HorizontalProgress'; + +const containerStyle = { width: 300 }; + +export default { + title: 'HorizontalProgress', + component: HorizontalProgress, +}; + +export const Default = () => ( +
+ +
+); + +export const MediumProgress = () => ( +
+ +
+); + +export const LowProgress = () => ( +
+ +
+); diff --git a/packages/core/src/components/ProgressBars/HorizontalProgress.tsx b/packages/core/src/components/ProgressBars/HorizontalProgress.tsx new file mode 100644 index 0000000000..505610aa08 --- /dev/null +++ b/packages/core/src/components/ProgressBars/HorizontalProgress.tsx @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { FC } from 'react'; +import { Tooltip } from '@material-ui/core'; +// @ts-ignore +import { Line } from 'rc-progress'; +import { getProgressColor } from './CircleProgress'; + +type Props = { + /** + * Progress value between 0.0 - 1.0. + */ + value: number; +}; + +const HorizontalProgress: FC = ({ value }) => { + if (isNaN(value)) { + return null; + } + let percent = Math.round(value * 100 * 100) / 100; + if (percent > 100) { + percent = 100; + } + const strokeColor = getProgressColor(percent, false, 100); + return ( + + + + ); +}; + +export default HorizontalProgress; diff --git a/packages/core/src/components/ProgressCard.stories.tsx b/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx similarity index 100% rename from packages/core/src/components/ProgressCard.stories.tsx rename to packages/core/src/components/ProgressBars/ProgressCard.stories.tsx diff --git a/packages/core/src/components/ProgressCard.test.js b/packages/core/src/components/ProgressBars/ProgressCard.test.js similarity index 100% rename from packages/core/src/components/ProgressCard.test.js rename to packages/core/src/components/ProgressBars/ProgressCard.test.js diff --git a/packages/core/src/components/ProgressCard.tsx b/packages/core/src/components/ProgressBars/ProgressCard.tsx similarity index 100% rename from packages/core/src/components/ProgressCard.tsx rename to packages/core/src/components/ProgressBars/ProgressCard.tsx diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 3e2cfd1018..40a4bd452e 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -25,8 +25,9 @@ export { default as InfoCard } from './layout/InfoCard'; export { default as ErrorBoundary } from './layout/ErrorBoundary'; export * from './layout/Sidebar'; export { default as HorizontalScrollGrid } from './components/HorizontalScrollGrid'; -export { default as ProgressCard } from './components/ProgressCard'; -export { default as CircleProgress } from './components/CircleProgress'; +export { default as ProgressCard } from './components/ProgressBars/ProgressCard'; +export { default as CircleProgress } from './components/ProgressBars/CircleProgress'; +export { default as HorizontalProgress } from './components/ProgressBars/HorizontalProgress'; export { default as CopyTextButton } from './components/CopyTextButton'; export { default as Progress } from './components/Progress'; export { AlphaLabel, BetaLabel } from './components/Lifecycle';