@gem-mine/fish-compatible
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Fish Docs Compatible

NPM version NPM downloads CircleCI

Install

yarn add @gem-mine/fish-compatible

Usage

Helps you to compatible different components between v3 and v4.

Follow Component are provided compatible version:

  • Form
  • Icon
  • Mention
import { Form } from '@gem-mine/fish-compatible';

import '@gem-mine/fish-compatible/assets/index.css'; // If you need

Introduction

Form

Form of v3 api is different with v4:

// V3
import { Form, Input, Button } from 'fish';

class MyForm extends React.Component {
  render() {
    const { form } = this.props;
    return (
      <Form>
        {form.getFieldDecorator('username')(<Input />)}
        <Button>Submit</Button>
      </Form>
    );
  }
}

export default Form.create()(MyForm);

Change to:

// V4 with compatible
import { Form as LegacyForm } from '@gem-mine/fish-compatible';
import { Input, Button } from 'fish';
import '@gem-mine/fish-compatible/assets/index.css';

class MyForm extends React.Component {
  render() {
    const { form } = this.props;
    return (
      <LegacyForm>
        {form.getFieldDecorator('username')(<Input />)}
        <Button>Submit</Button>
      </LegacyForm>
    );
  }
}

export default Form.create()(MyForm);

Icon

Just import Icon from package @gem-mine/fish-compatible and the reset is almost same as before.

// V3
import { Icon, Button } from 'fish';

class MyIconList extends React.Component {
  render() {
    return (
      <div className="icons-list">
        <Button>hello button</Button>
        <Icon type="home" />
        <Icon type="setting" theme="filled" />
        <Icon type="smile" theme="outlined" />
        <Icon type="sync" spin />
        <Icon type="smile" rotate={180} />
        <Icon type="loading" />
      </div>
    );
  }
}

export default MyIconList;

Change to:

// V4 with compatible
import { Icon as LegacyIcon } from '@gem-mine/fish-compatible';

class MyIconList extends React.Component {
  render() {
    return (
      <div className="icons-list">
        <Button>hello button</Button>
        <LegacyIcon type="home" />
        <LegacyIcon type="setting" theme="filled" />
        <LegacyIcon type="smile" theme="outlined" />
        <LegacyIcon type="sync" spin />
        <LegacyIcon type="smile" rotate={180} />
        <LegacyIcon type="loading" />
      </div>
    );
  }
}

export default MyIconList;

Mention

The legacy usage in v3

import { Mention } from 'fish';

const { toString } = Mention;

ReactDOM.render(
  <Mention
    style={{ width: '100%' }}
    onChange={onChange}
    defaultSuggestions={[
      'afc163',
      'benjycui',
      'yiminghe',
      'RaoHai',
      '中文',
      'にほんご',
    ]}
    onSelect={onSelect}
    placement="top"
  />,
  mountNode,
);

Compatible usage in v4

import { Mention } from '@gem-mine/fish-compatible';
import '@gem-mine/fish-compatible/assets/index.css';

const { toString } = Mention;

ReactDOM.render(
  <Mention
    style={{ width: '100%' }}
    onChange={onChange}
    defaultSuggestions={[
      'afc163',
      'benjycui',
      'yiminghe',
      'RaoHai',
      '中文',
      'にほんご',
    ]}
    onSelect={onSelect}
    placement="top"
  />,
  mountNode,
);

FAQ

Missing Grid style when use Form.

You should import Grid style by youself.

import 'fish/es/grid/style/css'; // By CSS
// import 'fish/es/grid/style';         // By LESS

Readme

Keywords

Package Sidebar

Install

npm i @gem-mine/fish-compatible

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

190 kB

Total Files

59

Last publish

Collaborators

  • caolvchong
  • wengzp
  • guoyh
  • mraiguo
  • amazebird
  • githoniel
  • janya
  • gylllll