Merge branch 'develop-1.0.0' of github.com:ant-design/ant-design into develop-1.0.0

This commit is contained in:
afc163
2016-05-09 13:42:13 +08:00
3 changed files with 48 additions and 18 deletions
+23 -14
View File
@@ -17,6 +17,22 @@ export default class Header extends React.Component {
constructor(props) {
super(props);
this.onScroll = debounce(() => {
const scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
const clientHeight = document.documentElement.clientHeight;
if (scrollTop >= clientHeight) {
this.setState({ isFirstFrame: false });
} else {
this.setState({ isFirstFrame: true });
}
}, 100);
this.onDocumentClick = () => {
this.setState({
menuVisible: false,
});
};
this.state = {
menuVisible: false,
menuMode: 'horizontal',
@@ -25,21 +41,9 @@ export default class Header extends React.Component {
}
componentDidMount() {
window.addEventListener('scroll', debounce(() => {
const scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
const clientHeight = document.documentElement.clientHeight;
if (scrollTop >= clientHeight) {
this.setState({ isFirstFrame: false });
} else {
this.setState({ isFirstFrame: true });
}
}, 100));
window.addEventListener('scroll', this.onScroll);
document.addEventListener('click', () => {
this.setState({
menuVisible: false,
});
});
document.addEventListener('click', this.onDocumentClick);
enquire.register('only screen and (min-width: 320px) and (max-width: 767px)', {
match: () => {
@@ -51,6 +55,11 @@ export default class Header extends React.Component {
});
}
componentWillUnmount() {
window.removeEventListener('scroll', this.onScroll);
document.removeEventListener('click', this.onDocumentClick);
}
handleMenuIconClick = (e) => {
e.stopPropagation();
e.nativeEvent.stopImmediatePropagation();
+6
View File
@@ -52,32 +52,38 @@ ReactDOM.render(
<Route path="components" component={ReactComponents}>
{utils.generateIndex(reactComponents)}
<Route path=":children"
onEnter={utils.getEnterHandler(reactComponents)}
component={utils.getChildrenWrapper(reactComponents)} />
</Route>
{redirects}
<Route path="docs/react" component={ReactComponents}>
{utils.generateIndex(reactComponents)}
<Route path=":children"
onEnter={utils.getEnterHandler(reactComponents)}
component={utils.getChildrenWrapper(reactComponents)} />
</Route>
<Route path="docs/practice" component={Practice}>
{utils.generateIndex(practice)}
<Route path=":children"
onEnter={utils.getEnterHandler(practice)}
component={utils.getChildrenWrapper(practice)} />
</Route>
<Route path="docs/pattern" component={Pattern}>
{utils.generateIndex(pattern)}
<Route path=":children"
onEnter={utils.getEnterHandler(pattern)}
component={utils.getChildrenWrapper(pattern)} />
</Route>
<Route path="docs/spec" component={Spec}>
{utils.generateIndex(spec)}
<Route path=":children"
onEnter={utils.getEnterHandler(spec)}
component={utils.getChildrenWrapper(spec)} />
</Route>
<Route path="docs/resource" component={Resource}>
{utils.generateIndex(resource)}
<Route path=":children"
onEnter={utils.getEnterHandler(resource)}
component={utils.getChildrenWrapper(resource)} />
</Route>
</Route>
+19 -4
View File
@@ -61,15 +61,30 @@ export function generateIndex(data) {
const pathToFile = {};
Object.keys(redirects).forEach((key) => pathToFile[redirects[key]] = key);
pathToFile['docs/react/changelog'] = './CHANGELOG'; // TODO
function getDoc(data, props) {
const trimedPathname = props.location.pathname.replace(/^\//, '');
const processedPathname = pathToFile[trimedPathname] || trimedPathname;
const doc = data[`${processedPathname}.md`] ||
data[`${processedPathname}/index.md`];
return doc;
}
export function getChildrenWrapper(data) {
return function childrenWrapper(props) {
const trimedPathname = props.location.pathname.replace(/^\//, '');
const processedPathname = pathToFile[trimedPathname] || trimedPathname;
const doc = data[`${processedPathname}.md`] ||
data[`${processedPathname}/index.md`];
const doc = getDoc(data, props);
const hasDemos = demosList[doc.meta.fileName];
return !hasDemos ?
<Article {...props} content={doc} /> :
<ComponentDoc {...props} doc={doc} />;
};
}
export function getEnterHandler(data) {
return function handleEnter(nextState, replace) {
const doc = getDoc(data, nextState);
if (!doc) {
replace('/404');
}
};
}