Skip to content

Commit

Permalink
feat: storybook for Icon component (#10515)
Browse files Browse the repository at this point in the history
* storybook for Icon component

* fixing webpack aliases

* linting ✨

* Icons are now in a nice little grid.

* lint

* EOF fix for alert.txt. Ugh.
  • Loading branch information
rusackas authored Aug 5, 2020
1 parent 514b29f commit 3d74c3c
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 2 deletions.
4 changes: 4 additions & 0 deletions superset-frontend/.storybook/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ module.exports = {
...config.module,
rules: customConfig.module.rules,
},
resolve: {
...config.resolve,
...customConfig.resolve,
},
plugins: [...config.plugins, ...customConfig.plugins],
}),
};
86 changes: 86 additions & 0 deletions superset-frontend/src/components/Icon/icon.stories.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 { withKnobs, select } from '@storybook/addon-knobs';
import { styled, supersetTheme } from '@superset-ui/style';
import Icon, { iconsRegistry } from './';

export default {
title: 'Icon',
component: Icon,
decorators: [withKnobs],
};

const palette = {};
Object.entries(supersetTheme.colors).forEach(([familyName, family]) => {
Object.entries(family).forEach(([colorName, colorValue]) => {
palette[`${familyName} / ${colorName}`] = colorValue;
});
});

const colorKnob = {
label: 'Color',
options: {
Default: null,
...palette,
},
defaultValue: null,
};

const IconSet = styled.div`
display: flex;
flex-direction: row;
flex-wrap: wrap;
`;

const IconBlock = styled.div`
flex-grow: 0;
flex-shrink: 0;
flex-basis: 10%;
text-align: center;
padding: ${({ theme }) => theme.gridUnit * 2}px;
div {
white-space: nowrap;
font-size: ${({ theme }) => theme.typography.sizes.s}px;
}
`;

export const SupersetIcon = () => {
return (
<IconSet>
{Object.keys(iconsRegistry)
.sort()
.map(iconName => (
<IconBlock>
<Icon
name={iconName}
key={iconName}
color={select(
colorKnob.label,
colorKnob.options,
colorKnob.defaultValue,
colorKnob.groupId,
)}
/>
<div>{iconName}</div>
</IconBlock>
))}
</IconSet>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ type IconName =
| 'share'
| 'warning';

const iconsRegistry: Record<
export const iconsRegistry: Record<
IconName,
React.ComponentType<SVGProps<SVGSVGElement>>
> = {
Expand Down
2 changes: 1 addition & 1 deletion superset/templates/email/alert.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@
<p>Click <a href="{{image_url}}">here</a> or the image below to view the chart related to this alert.</p>
<a href="{{image_url}}">
<img src="cid:screenshot" alt="{{label}}" />
</a>
</a>

0 comments on commit 3d74c3c

Please sign in to comment.