1.1.2 • Published 6 years ago

babel-plugin-reactjss-class-info v1.1.2

Weekly downloads
2
License
ISC
Repository
github
Last release
6 years ago

npm version

babel-plugin-reactjss-class-info

This is experimental specific solution to a problem for integrating Selenium tests with reactjss. I do not plan adding features unless there is a personal need, but feel free to use this if it benefits you.

Install

npm install --save-dev babel-plugin-reactjss-class-info

Usage

.babelrc

{
  plugins: ["reactjss-class-info"]
}

Examples

Input

myfile.js

import React from 'react';
import classnames from 'classnames';

class ReactComponent extends React.Component {
  render() {
    const { classes } = this.props;

    return(
      <ReactComponent className={classes.main}>
        <header
          onClick={this.handleClick}
          className={classnames({
            [classes.header]: true,
            [classes.hovered]: false
          })}
        />
        <div
          id="component-body"
          className={classnames(
            [classes.one, classes.two],
            classes.three,
            { [classes.four]: true }
          )}
        >
          I am the body
        </div>
      </ReactComponent>
    )
  }
}

Output

myfile.js

import React from 'react';
import classnames from 'classnames';

class ReactComponent extends React.Component {
  render() {
    const { classes } = this.props;

    return(
      <ReactComponent
        className={classes.main}
        data-qa-class="myfile_ReactComponent_main"
      >
        <header
          onClick={this.handleClick}
          className={classnames({
            [classes.header]: true,
            [classes.hovered]: false
          })}
          data-qa-class="myfile_header_header-hovered"
        />
        <div
          id="component-body"
          className={classnames(
            [classes.one, classes.two],
            classes.three,
            { [classes.four]: true }
          )}
          data-qa-class="myfile_div_one-two-three-four"
        >
          I am the body
        </div>
      </ReactComponent>
    )
  }
}

Currently, the plugin will output the class in the following format:

[filename]_[component name]_[all classes delimited by -]

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago