mirror of
https://github.com/ant-design/ant-design.git
synced 2025-08-06 16:06:28 +08:00
chore: support IconSet
This commit is contained in:
parent
cc0bad9ef9
commit
ba9ec11079
@ -36,17 +36,36 @@
|
||||
|
||||
### 一. 方向性图标
|
||||
|
||||
<div id="iconset-direction"></div>
|
||||
```__react
|
||||
import IconSet from '../../site/component/IconSet';
|
||||
const icons1 = ['step-backward', 'step-forward', 'fast-backward', 'fast-forward', 'shrink', 'arrow-salt', 'down', 'up', 'left', 'right', 'caret-down', 'caret-up', 'caret-left', 'caret-right', 'caret-circle-right', 'caret-circle-left', 'caret-circle-o-right', 'caret-circle-o-left', 'circle-right', 'circle-left', 'circle-o-right', 'circle-o-left', 'double-right', 'double-left', 'verticle-right', 'verticle-left', 'forward', 'backward', 'rollback', 'retweet', 'swap', 'swap-left', 'swap-right', 'arrow-right', 'arrow-up', 'arrow-down', 'arrow-left', 'play-circle', 'play-circle-o', 'circle-up', 'circle-down', 'circle-o-up', 'circle-o-down', 'caret-circle-o-up', 'caret-circle-o-down', 'caret-circle-up', 'caret-circle-down'];
|
||||
|
||||
ReactDOM.render(<IconSet className="icons" icons={icons1} key="icons1" />, mountNode);
|
||||
```
|
||||
|
||||
### 二. 提示建议性图标
|
||||
|
||||
<div id="iconset-hint"></div>
|
||||
```__react
|
||||
import IconSet from '../../site/component/IconSet';
|
||||
const icons2 = ['question', 'question-circle-o', 'question-circle', 'plus', 'plus-circle-o', 'plus-circle', 'pause', 'pause-circle-o', 'pause-circle', 'minus', 'minus-circle-o', 'minus-circle', 'plus-square', 'minus-square', 'info', 'info-circle-o', 'info-circle', 'exclamation', 'exclamation-circle-o', 'exclamation-circle', 'cross', 'cross-circle-o', 'cross-circle', 'check', 'check-circle-o', 'check-circle', 'clock-circle-o', 'clock-circle'];
|
||||
|
||||
ReactDOM.render(<IconSet className="icons" icons={icons2} key="icons2" />, mountNode);
|
||||
```
|
||||
|
||||
### 三. 网站通用图标
|
||||
|
||||
<div id="iconset-common"></div>
|
||||
```__react
|
||||
import IconSet from '../../site/component/IconSet';
|
||||
const icons3 = ['lock', 'unlock', 'android', 'apple', 'area-chart', 'bar-chart', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'edit', 'ellipsis', 'file', 'file-text', 'file-unknown', 'folder', 'folder-open', 'github', 'hdd', 'frown', 'meh', 'inbox', 'laptop', 'appstore-o', 'appstore', 'line-chart', 'link', 'logout', 'mail', 'menu-fold', 'menu-unfold', 'mobile', 'notification', 'paper-clip', 'picture', 'pie-chart', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'smile', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'windows', 'ie', 'chrome', 'home', 'loading', 'smile-circle', 'meh-circle', 'frown-circle', 'tags-o', 'tag-o', 'cloud-upload-o', 'cloud-download-o', 'cloud-upload', 'cloud-o', 'star-o', 'star', 'heart-o', 'heart', 'environment', 'environment-o', 'eye', 'eye-o', 'camera', 'camera-o', 'aliwangwang', 'aliwangwang-o', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customerservice', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'pay-circle-o', 'calculator'];
|
||||
|
||||
ReactDOM.render(<IconSet className="icons" icons={icons3} key="icons3" />, mountNode);
|
||||
```
|
||||
|
||||
|
||||
<style>
|
||||
.markdown .icons {
|
||||
width: 100%;
|
||||
}
|
||||
ul.anticons-list {
|
||||
margin: 20px 0;
|
||||
list-style: none;
|
||||
@ -101,60 +120,4 @@ ul.anticons-list li.copied:after {
|
||||
transform: scale(0.83);
|
||||
font-family: Consolas;
|
||||
}
|
||||
</style>
|
||||
|
||||
`````jsx
|
||||
const Icon = antd.Icon;
|
||||
|
||||
const CopyableIcon = React.createClass({
|
||||
getInitialState() {
|
||||
return {
|
||||
justCopied: false
|
||||
};
|
||||
},
|
||||
onCopied(e) {
|
||||
this.setState({ justCopied: true }, () => {
|
||||
setTimeout(() => {
|
||||
this.setState({ justCopied: false });
|
||||
}, 1000);
|
||||
});
|
||||
},
|
||||
render() {
|
||||
const text = '<Icon type="' + this.props.type + '" />';
|
||||
return (
|
||||
<CopyToClipboard text={text} onCopy={this.onCopied}>
|
||||
<li className={this.state.justCopied ? 'copied' : ''}>
|
||||
<Icon type={this.props.type} />
|
||||
<span className="anticon-class">{this.props.type}</span>
|
||||
</li>
|
||||
</CopyToClipboard>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
const IconSet = React.createClass({
|
||||
getDefaultProps() {
|
||||
return {
|
||||
icons: []
|
||||
};
|
||||
},
|
||||
render() {
|
||||
return (
|
||||
<ul className="anticons-list clearfix">
|
||||
{this.props.icons.map((type, i) => <CopyableIcon key={i} type={type} />)}
|
||||
</ul>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
const icons1 = ['step-backward', 'step-forward', 'fast-backward', 'fast-forward', 'shrink', 'arrow-salt', 'down', 'up', 'left', 'right', 'caret-down', 'caret-up', 'caret-left', 'caret-right', 'caret-circle-right', 'caret-circle-left', 'caret-circle-o-right', 'caret-circle-o-left', 'circle-right', 'circle-left', 'circle-o-right', 'circle-o-left', 'double-right', 'double-left', 'verticle-right', 'verticle-left', 'forward', 'backward', 'rollback', 'retweet', 'swap', 'swap-left', 'swap-right', 'arrow-right', 'arrow-up', 'arrow-down', 'arrow-left', 'play-circle', 'play-circle-o', 'circle-up', 'circle-down', 'circle-o-up', 'circle-o-down', 'caret-circle-o-up', 'caret-circle-o-down', 'caret-circle-up', 'caret-circle-down'];
|
||||
|
||||
const icons2 = ['question', 'question-circle-o', 'question-circle', 'plus', 'plus-circle-o', 'plus-circle', 'pause', 'pause-circle-o', 'pause-circle', 'minus', 'minus-circle-o', 'minus-circle', 'plus-square', 'minus-square', 'info', 'info-circle-o', 'info-circle', 'exclamation', 'exclamation-circle-o', 'exclamation-circle', 'cross', 'cross-circle-o', 'cross-circle', 'check', 'check-circle-o', 'check-circle', 'clock-circle-o', 'clock-circle'];
|
||||
|
||||
const icons3 = ['lock', 'unlock', 'android', 'apple', 'area-chart', 'bar-chart', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'edit', 'ellipsis', 'file', 'file-text', 'file-unknown', 'folder', 'folder-open', 'github', 'hdd', 'frown', 'meh', 'inbox', 'laptop', 'appstore-o', 'appstore', 'line-chart', 'link', 'logout', 'mail', 'menu-fold', 'menu-unfold', 'mobile', 'notification', 'paper-clip', 'picture', 'pie-chart', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'smile', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'windows', 'ie', 'chrome', 'home', 'loading', 'smile-circle', 'meh-circle', 'frown-circle', 'tags-o', 'tag-o', 'cloud-upload-o', 'cloud-download-o', 'cloud-upload', 'cloud-o', 'star-o', 'star', 'heart-o', 'heart', 'environment', 'environment-o', 'eye', 'eye-o', 'camera', 'camera-o', 'aliwangwang', 'aliwangwang-o', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customerservice', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'pay-circle-o', 'calculator'];
|
||||
|
||||
|
||||
ReactDOM.render(<IconSet icons={icons1} />, document.getElementById('iconset-direction'));
|
||||
ReactDOM.render(<IconSet icons={icons2} />, document.getElementById('iconset-hint'));
|
||||
ReactDOM.render(<IconSet icons={icons3} />, document.getElementById('iconset-common'));
|
||||
`````
|
||||
</style>
|
53
site/component/IconSet/index.jsx
Normal file
53
site/component/IconSet/index.jsx
Normal file
@ -0,0 +1,53 @@
|
||||
import React from 'react';
|
||||
import CopyToClipboard from 'react-copy-to-clipboard';
|
||||
import classNames from 'classnames';
|
||||
import { Icon } from '../../../';
|
||||
|
||||
const CopyableIcon = React.createClass({
|
||||
getInitialState() {
|
||||
return {
|
||||
justCopied: false
|
||||
};
|
||||
},
|
||||
onCopied(e) {
|
||||
this.setState({ justCopied: true }, () => {
|
||||
setTimeout(() => {
|
||||
this.setState({ justCopied: false });
|
||||
}, 1000);
|
||||
});
|
||||
},
|
||||
render() {
|
||||
const text = '<Icon type="' + this.props.type + '" />';
|
||||
return (
|
||||
<CopyToClipboard text={text} onCopy={this.onCopied}>
|
||||
<li className={this.state.justCopied ? 'copied' : ''}>
|
||||
<Icon type={this.props.type} />
|
||||
<span className="anticon-class">{this.props.type}</span>
|
||||
</li>
|
||||
</CopyToClipboard>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
const IconSet = React.createClass({
|
||||
getDefaultProps() {
|
||||
return {
|
||||
icons: []
|
||||
};
|
||||
},
|
||||
render() {
|
||||
const className = this.props.className;
|
||||
const listClassName = classNames({
|
||||
'anticons-list': true,
|
||||
clearfix: true,
|
||||
[className]: !!className,
|
||||
});
|
||||
return (
|
||||
<ul className={listClassName}>
|
||||
{this.props.icons.map((type, i) => <CopyableIcon key={i} type={type} />)}
|
||||
</ul>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
export default IconSet;
|
@ -3,6 +3,7 @@ import { Route, IndexRedirect } from 'react-router';
|
||||
import MainContent from '../component/MainContent';
|
||||
import Article from '../component/Article';
|
||||
import ComponentDoc from '../component/ComponentDoc';
|
||||
import demosList from '../../_site/data/demos-list';
|
||||
|
||||
function dashed(name) {
|
||||
return name.toLowerCase().trim().replace(/\s+/g, '-');
|
||||
@ -52,7 +53,8 @@ export function generateChildren(data) {
|
||||
const pagesData = getPagesData(data);
|
||||
const menuItems = getMenuItems(data);
|
||||
const children = pagesData.map((pageData, index) => {
|
||||
const Wrapper = !pageData.meta.hasDemos ?
|
||||
const hasDemos = demosList[pageData.meta.fileName];
|
||||
const Wrapper = !hasDemos ?
|
||||
() => <Article content={pageData} /> :
|
||||
() => <ComponentDoc doc={pageData} />;
|
||||
return (
|
||||
|
Loading…
Reference in New Issue
Block a user