mirror of
https://github.com/ant-design/ant-design.git
synced 2025-01-01 05:38:03 +08:00
33 lines
828 B
TypeScript
33 lines
828 B
TypeScript
|
import React, { PropTypes } from 'react';
|
||
|
|
||
|
export interface ComponentProps {
|
||
|
locale?: any;
|
||
|
}
|
||
|
|
||
|
export interface ComponentContext {
|
||
|
antLocale?: { [key: string]: any };
|
||
|
}
|
||
|
|
||
|
export default (componentName: string, defaultLocale) => (
|
||
|
function<P>(Component: typeof React.Component): React.ComponentClass<P> {
|
||
|
return class extends Component<P & ComponentProps, any> {
|
||
|
static contextTypes = {
|
||
|
antLocale: PropTypes.object,
|
||
|
};
|
||
|
|
||
|
context: ComponentContext;
|
||
|
|
||
|
getLocale() {
|
||
|
const { antLocale } = this.context;
|
||
|
const localeFromContext = antLocale && antLocale[componentName];
|
||
|
const localeFromProps: any = this.props.locale || {};
|
||
|
return {
|
||
|
...defaultLocale,
|
||
|
...(localeFromContext || {}),
|
||
|
...localeFromProps,
|
||
|
};
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
);
|