formatjs / formatjs-old

The monorepo home to all of the FormatJS related libraries.
https://formatjs.io/
156 stars 53 forks source link

feat(babel-plugin-react-intl): add destructured formatMessage support #582

Closed fsmaia closed 4 years ago

fsmaia commented 4 years ago

This PR closes #529.

When using extractFromFormatMessageCall, it now detects direct formatMessage calls, as in the examples below.

Note: alias detection wasn't implemented yet, I would like to know if it's mandatory to this feature.

Example 1:

render() {
  const { formatMessage } = this.props.intl;

  return (
    <div>{formatMessage({ id: 'foo' })}</div>
  );

Example 2:

render() {
  const { intl: { formatMessage } } = this.props;

  return (
    <div>{formatMessage({ id: 'foo' })}</div>
  );

Example 3 (a stateless React component):

const fn = ({ intl: { formatMessage }) => (
  <div>{formatMessage({ id: 'bar' })}</div>
);
fsmaia commented 4 years ago

@longlho, could you take a look?

longlho commented 4 years ago

I'll take a look as soon as I can. Thanks a lot for your contributions!