123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- import {
- LocaleProvider,
- Pagination,
- DatePicker,
- TimePicker,
- Calendar,
- Popconfirm,
- Table,
- Modal,
- Button,
- Select,
- Transfer,
- Radio,
- } from 'antd';
- import zhCN from 'antd/lib/locale-provider/zh_CN';
- import moment from 'moment';
- import 'moment/locale/zh-cn';
- moment.locale('en');
- const Option = Select.Option;
- const RangePicker = DatePicker.RangePicker;
- const columns = [
- {
- title: 'Name',
- dataIndex: 'name',
- filters: [
- {
- text: 'filter1',
- value: 'filter1',
- },
- ],
- },
- {
- title: 'Age',
- dataIndex: 'age',
- },
- ];
- class Page extends React.Component {
- state = {
- visible: false,
- };
- showModal = () => {
- this.setState({ visible: true });
- };
- hideModal = () => {
- this.setState({ visible: false });
- };
- render() {
- const info = () => {
- Modal.info({
- title: 'some info',
- content: 'some info',
- });
- };
- const confirm = () => {
- Modal.confirm({
- title: 'some info',
- content: 'some info',
- });
- };
- return (
- <div className="locale-components">
- <div className="example">
- <Pagination defaultCurrent={1} total={50} showSizeChanger />
- </div>
- <div className="example">
- <Select showSearch style={{ width: 200 }}>
- <Option value="jack">jack</Option>
- <Option value="lucy">lucy</Option>
- </Select>
- <DatePicker />
- <TimePicker />
- <RangePicker style={{ width: 200 }} />
- </div>
- <div className="example">
- <Button type="primary" onClick={this.showModal}>
- Show Modal
- </Button>
- <Button onClick={info}>Show info</Button>
- <Button onClick={confirm}>Show confirm</Button>
- <Popconfirm title="Question?">
- <a href="#">Click to confirm</a>
- </Popconfirm>
- </div>
- <div className="example">
- <Transfer dataSource={[]} showSearch targetKeys={[]} render={item => item.title} />
- </div>
- <div style={{ width: 319, border: '1px solid #d9d9d9', borderRadius: 4 }}>
- <Calendar fullscreen={false} value={moment()} />
- </div>
- <div className="example">
- <Table dataSource={[]} columns={columns} />
- </div>
- <Modal title="Locale Modal" visible={this.state.visible} onCancel={this.hideModal}>
- <p>Locale Modal</p>
- </Modal>
- </div>
- );
- }
- }
- class App extends React.Component {
- constructor() {
- super();
- this.state = {
- locale: null,
- };
- }
- changeLocale = e => {
- const localeValue = e.target.value;
- this.setState({ locale: localeValue });
- if (!localeValue) {
- moment.locale('en');
- } else {
- moment.locale('zh-cn');
- }
- };
- render() {
- const { locale } = this.state;
- return (
- <div>
- <div className="change-locale">
- <span style={{ marginRight: 16 }}>Change locale of components: </span>
- <Radio.Group defaultValue={undefined} onChange={this.changeLocale}>
- <Radio.Button key="en" value={undefined}>
- English
- </Radio.Button>
- <Radio.Button key="cn" value={zhCN}>
- 中文
- </Radio.Button>
- </Radio.Group>
- </div>
- <LocaleProvider locale={locale}>
- <Page
- key={locale ? locale.locale : 'en' /* Have to refresh for production environment */}
- />
- </LocaleProvider>
- </div>
- );
- }
- }
- ReactDOM.render(<App />, mountNode);
|