Storybook for ProgressCard (#477)

* Storybook for ProgressCard

* Update ProgressCard.stories.tsx

* Fix import
This commit is contained in:
Stefan Ålund
2020-04-06 15:07:36 +02:00
committed by GitHub
parent f8ac148f97
commit 0d93dde6ba
2 changed files with 86 additions and 15 deletions
@@ -0,0 +1,80 @@
/*
* 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 ProgressCard from './ProgressCard';
import { Grid } from '@material-ui/core';
const linkInfo = { title: 'Go to XYZ Location', link: '#' };
export default {
title: 'Progress Card',
component: ProgressCard,
};
export const Default = () => (
<Grid container spacing={2}>
<Grid item>
<ProgressCard title="Progress" progress={0.3} />
</Grid>
<Grid item>
<ProgressCard title="Progress" progress={0.57} />
</Grid>
<Grid item>
<ProgressCard title="Progress" progress={0.89} />
</Grid>
</Grid>
);
export const Subhead = () => (
<Grid container spacing={2}>
<Grid item>
<ProgressCard
title="Progress"
subheader="With a subheader"
progress={0.3}
/>
</Grid>
<Grid item>
<ProgressCard
title="Progress"
subheader="With a subheader"
progress={0.57}
/>
</Grid>
<Grid item>
<ProgressCard
title="Progress"
subheader="With a subheader"
progress={0.89}
/>
</Grid>
</Grid>
);
export const LinkInFooter = () => (
<Grid container spacing={2}>
<Grid item>
<ProgressCard title="Progress" deepLink={linkInfo} progress={0.3} />
</Grid>
<Grid item>
<ProgressCard title="Progress" deepLink={linkInfo} progress={0.57} />
</Grid>
<Grid item>
<ProgressCard title="Progress" deepLink={linkInfo} progress={0.89} />
</Grid>
</Grid>
);
+6 -15
View File
@@ -18,15 +18,16 @@ import React, { FC } from 'react';
import { makeStyles } from '@material-ui/core';
import InfoCard from '../layout/InfoCard';
import { Props as BottomLinkProps } from '../layout/InfoCard/BottomLink';
import CircleProgress from './CircleProgress';
type Props = {
title: string;
subheader?: string;
variant?: string;
progress: number | string;
deepLink?: string | { title: string; link: string };
gacontext?: string;
/** Progress in % specified as decimal, e.g. "0.23" */
progress: number;
deepLink?: BottomLinkProps;
};
const useStyles = makeStyles({
@@ -40,25 +41,15 @@ const ProgressCard: FC<Props> = props => {
const classes = useStyles(props);
const { title, subheader, progress, deepLink, variant } = props;
// TODO(freben): Make type more strict when InfoCard is written in TS
let link: any = undefined;
if (deepLink) {
if (typeof deepLink === 'string') {
link = { title: 'View more', link: deepLink };
} else {
link = deepLink;
}
}
return (
<div className={classes.root}>
<InfoCard
title={title}
subheader={subheader}
deepLink={link}
deepLink={deepLink}
variant={variant}
>
<CircleProgress value={Number(progress)} />
<CircleProgress value={progress} />
</InfoCard>
</div>
);