swc-plugin-jsx-control-statements
TypeScript icon, indicating that this package has built-in type declarations

0.4.0 • Public • Published

🦀 JSX control statements for swc

Original idea: babel-plugin-jsx-control-statements

Installation

pnpm (recommended):

pnpm i -D swc-plugin-jsx-control-statements

or yarn

yarn add -D swc-plugin-jsx-control-statements

Configure swc

In your SWC config, you have to add to jsc.experimental.plugins - ['swc-plugin-jsx-control-statements', {}], like in the following code:

jsc: {
    experimental: {
        plugins: [
            ['swc-plugin-jsx-control-statements', {}],
        ],
    },
},

Usage

<If> tag

import React from 'react';

const Greeting = () => {
  const [closed, setClosed] = useState(false);
  
  return (
      <>
          <If condition={!closed}>
              Hello,
          </If>
          World
          <If condition={!closed}>
            <button onClick={() => setClosed(true)}>Close</button>
          </If>
      </>
  )
};

<Choose> tag (if - else if - else condition)

import React from 'react';

const Greeting = () => {
  const [closed, setClosed] = useState(false);
  
  return (
      <>
          <Choose>
              <When condition={!closed}>
                  Hello,
              </When>
              <Otherwise>
                  Bye,
              </Otherwise>
          </Choose>
          World
          <If condition={!closed}>
            <button onClick={() => setClosed(true)}>Close</button>
          </If>
      </>
  )
};

TODO:

  • [ ] Support <For /> tag

Package Sidebar

Install

npm i swc-plugin-jsx-control-statements

Weekly Downloads

4

Version

0.4.0

License

MIT

Unpacked Size

812 kB

Total Files

5

Last publish

Collaborators

  • intpp