Best JavaScript code snippet using storybook-root
ProfileCard.js
Source:ProfileCard.js  
1import React, { Component } from "react";2import {3  Card,4  Image,5  Header,6  Rating,7  Divider,8  Label,9  Popup,10  Button11} from "semantic-ui-react";12import "../../styling/ProfileContainer.css";13import Highlightable from "../highlightable/Higlightable.js";14export default class ProfileCard extends Component {15  state = { approveLoading: false };16  approve = () => {17    this.setState({ approveLoading: true });18    const { _id } = this.props.data;19    this.props.approve(_id);20  };21  delete = () => {22    const { _id } = this.props.data;23    this.props.del(_id);24  };25  redirect = () => {26    const { redirect, data, adminType } = this.props;27    if (adminType) return;28    const { _id } = this.props.data;29    if (redirect) redirect(_id, data);30  };31  adminRedirect = () => {32    const { redirect, data, adminType } = this.props;33    const { _id } = this.props.data;34    if (redirect) redirect(_id, data);35  };36  render() {37    const { approveLoading } = this.state;38    const {39      name,40      email,41      userData,42      rating,43      ratingCount,44      type,45      image46    } = this.props.data;47    let { searchWords, adminType } = this.props;48    searchWords = searchWords.split(" ");49    const {50      age,51      skills,52      location,53      joinDate,54      availability,55      address,56      phone,57      fieldOfWork,58      hourlyRate,59      gender,60      approved61    } = userData;62    const imageSrc =63      image && image !== null && image.includes(".") && image.includes("/")64        ? image65        : "https://react.semantic-ui.com/images/wireframe/image.png";66    const memberAttributes = [67      <Card.Header key={age} className="card-header" textAlign="center">68        <Highlightable69          green={true}70          textToHighlight={age + " Years"}71          searchWords={searchWords}72        />73      </Card.Header>,74      <Card.Header key={email} className="card-header" textAlign="center">75        <Highlightable76          green={true}77          textToHighlight={location}78          searchWords={searchWords}79        />80      </Card.Header>,81      <Card.Header key={email + 1} className="card-header" textAlign="center">82        <Highlightable83          textToHighlight={availability}84          searchWords={searchWords}85        />86      </Card.Header>,87      skills88        ? skills.map((skill, index) => (89            <Label90              className="skill-label"91              color="yellow"92              key={email + index + 2}93            >94              <Highlightable95                green={true}96                textToHighlight={skill}97                searchWords={searchWords}98              />99            </Label>100          ))101        : null102    ];103    const partnerAttributes = [104      <Card.Header key={email} className="card-header" textAlign="center">105        <Highlightable106          green={true}107          textToHighlight={fieldOfWork}108          searchWords={searchWords}109        />110      </Card.Header>,111      <Card.Header key={email + 1} className="card-header" textAlign="center">112        <Highlightable113          green={true}114          textToHighlight={phone ? "" + phone : phone}115          searchWords={searchWords}116        />117      </Card.Header>,118      <Card.Header key={email + 2} className="card-header" textAlign="center">119        <Highlightable textToHighlight={address} searchWords={searchWords} />120      </Card.Header>121    ];122    const lifeCoachAttributes = [123      <Card.Header key={age} className="card-header" textAlign="center">124        <Highlightable125          green={true}126          textToHighlight={age + " Years"}127          searchWords={searchWords}128        />129      </Card.Header>,130      <Card.Header key={email} className="card-header" textAlign="center">131        <Highlightable132          green={true}133          textToHighlight={hourlyRate ? hourlyRate + "/Hour" : undefined}134          searchWords={searchWords}135        />136      </Card.Header>137    ];138    return (139      <Card onClick={this.redirect} className="hvr-grow centered">140        <Image onClick={this.adminRedirect}>141          <div142            className="images"143            style={{ backgroundImage: "url(" + imageSrc + ")" }}144          />145        </Image>146        <Card.Content>147          <Card.Header className="first-header" textAlign="center">148            <Highlightable149              green={true}150              textToHighlight={name}151              searchWords={searchWords}152            />153          </Card.Header>154          {rating >= 0 ? (155            <Card.Header className="card-header" textAlign="center">156              <Rating icon="star" disabled maxRating={5} rating={rating} />157            </Card.Header>158          ) : null}159          <Card.Header160            className="card-header blue"161            size="tiny"162            textAlign="center"163          >164            <Highlightable165              green={true}166              textToHighlight={email}167              searchWords={searchWords}168            />169          </Card.Header>170          {type === "member"171            ? memberAttributes172            : type === "partner"173            ? partnerAttributes174            : lifeCoachAttributes}175          {!approved && type === "partner" ? (176            <div>177              <Popup178                on="hover"179                position="top right"180                content="Pending approval"181                trigger={<Label corner icon="clock outline" color="yellow" />}182              />183              <Card.Header textAlign="center">184                <Button185                  style={{ marginBottom: "0.4em" }}186                  loading={approveLoading}187                  onClick={this.approve}188                  basic189                  color="green"190                >191                  Approve192                </Button>193              </Card.Header>194            </div>195          ) : null}196          {adminType ? (197            <Card.Header textAlign="center">198              <Button199                style={{ marginTop: "4px" }}200                onClick={this.delete}201                color="red"202              >203                Delete204              </Button>205            </Card.Header>206          ) : null}207        </Card.Content>208        <Card.Content extra>209          <div>210            {ratingCount >= 0 ? (211              <div>212                <span> {ratingCount} Ratings </span>213                <Divider fitted hidden />214              </div>215            ) : null}216            {joinDate ? (217              <span>Joined at {joinDate.toString().slice(0, 10)}</span>218            ) : null}219          </div>220        </Card.Content>221      </Card>222    );223  }...Highlightable.test.js
Source:Highlightable.test.js  
1import React from "react";2import { Text, TouchableHighlight } from "react-native";3import { fireEvent, render } from "../../testing";4import { isHoverEnabled } from "../../utils";5import Highlightable from "./Highlightable";6jest.mock("../../utils");7describe("Highlightable", () => {8  let instance;9  let highlightableItem;10  beforeEach(() => {11    instance = render(12      <Highlightable>13        {isHighlighted => (14          <TouchableHighlight testID="highlightable-item">15            <Text>{`${isHighlighted ? "HIGHLIGHT" : "NO HIGHLIGHT"}`}</Text>16          </TouchableHighlight>17        )}18      </Highlightable>19    );20    highlightableItem = instance.getByTestId("highlightable-item");21  });22  it("renders the item", () => {23    expect(instance.asFragment()).toMatchSnapshot();24  });25  describe("when focused", () => {26    beforeEach(() => {27      fireEvent.focus(highlightableItem);28    });29    it("renders as highlighted", () => {30      expect(instance.asFragment()).toMatchSnapshot();31    });32  });33  describe("when blurred", () => {34    beforeEach(() => {35      fireEvent.focus(highlightableItem);36      fireEvent.blur(highlightableItem);37    });38    it("renders as not highlighted", () => {39      expect(instance.asFragment()).toMatchSnapshot();40    });41  });42  describe("when hover is not enabled", () => {43    beforeEach(() => {44      isHoverEnabled.mockReturnValue(false);45    });46    describe("when mouse enters", () => {47      beforeEach(() => {48        fireEvent.mouseEnter(highlightableItem);49      });50      it("renders as not highlighted", () => {51        expect(instance.asFragment()).toMatchSnapshot();52      });53    });54    describe("when mouse leaves", () => {55      beforeEach(() => {56        fireEvent.mouseEnter(highlightableItem);57        fireEvent.mouseLeave(highlightableItem);58      });59      it("renders as not highlighted", () => {60        expect(instance.asFragment()).toMatchSnapshot();61      });62    });63  });64  describe("when hover is enabled", () => {65    beforeEach(() => {66      isHoverEnabled.mockReturnValue(true);67    });68    describe("when mouse enters", () => {69      beforeEach(() => {70        fireEvent.mouseEnter(highlightableItem);71      });72      it("renders as highlighted", () => {73        expect(instance.asFragment()).toMatchSnapshot();74      });75    });76    describe("when mouse leaves", () => {77      beforeEach(() => {78        fireEvent.mouseEnter(highlightableItem);79        fireEvent.mouseLeave(highlightableItem);80      });81      it("renders as not highlighted", () => {82        expect(instance.asFragment()).toMatchSnapshot();83      });84    });85  });...HighlightablePolygonOverlay.js
Source:HighlightablePolygonOverlay.js  
1import { forEach } from 'lodash-es'2import { FALLBACK_LOCAL } from '../../../../services/i18n/constants'3const STATE = {4  HIGHLIGHTED: 'highlighted',5  ENABLED: 'enabled',6  DISABLED: 'disabled',7}8const FILL_OPACITY = {9  [STATE.HIGHLIGHTED]: 0.5,10  [STATE.ENABLED]: 0.3,11  [STATE.DISABLED]: 0.15,12}13const STROKE_OPACITY = {14  [STATE.HIGHLIGHTED]: 1.0,15  [STATE.ENABLED]: 0.8,16  [STATE.DISABLED]: 0.0,17}18export default mapkit => {19  class HighlightablePolygonOverlay extends mapkit.PolygonOverlay {20    constructor(points, options) {21      super(points, options)22      this.style.strokeColor = 'green'23      this.style.fillColor = 'green'24      this._updated()25    }26    setHighlighted(highlighted) {27      this.data.highlighted = highlighted28      this._updated()29    }30    setId(id) {31      this.data.id = id32      if (HighlightablePolygonOverlay.instances[id]) {33        HighlightablePolygonOverlay.instances[id].push(this)34      } else {35        HighlightablePolygonOverlay.instances[id] = [this]36      }37    }38    get styleState() {39      if (this.data.highlighted) {40        return STATE.HIGHLIGHTED41      } else if (this.enabled) {42        return STATE.ENABLED43      } else {44        return STATE.DISABLED45      }46    }47    _updated() {48      const styleState = this.styleState49      this.style.strokeOpacity = STROKE_OPACITY[styleState]50      this.style.fillOpacity = FILL_OPACITY[styleState]51    }52    static setHighlightById(id) {53      if (HighlightablePolygonOverlay.highlighted)54        forEach(HighlightablePolygonOverlay.highlighted, item => {55          item.setHighlighted(false)56        })57      if (id && HighlightablePolygonOverlay.instances[id]) {58        HighlightablePolygonOverlay.highlighted =59          HighlightablePolygonOverlay.instances[id]60        forEach(HighlightablePolygonOverlay.highlighted, item => {61          item.setHighlighted(true)62        })63      } else {64        HighlightablePolygonOverlay.highlighted = null65      }66    }67  }68  HighlightablePolygonOverlay.instances = {}69  HighlightablePolygonOverlay.highlighted = null70  return HighlightablePolygonOverlay...Using AI Code Generation
1import React from 'react';2import { storiesOf } from '@storybook/react';3import { withHighlightable } from 'storybook-addon-highlightable';4import Button from './Button';5storiesOf('Button', module)6  .addDecorator(withHighlightable)7  .add('with text', () => <Button>Hello Button</Button>)8  .add('with some emoji', () => (9  ));10import React from 'react';11import PropTypes from 'prop-types';12import styled from 'styled-components';13  background: transparent;14  border-radius: 3px;15  border: 2px solid palevioletred;16  color: palevioletred;17  margin: 0 1em;18  padding: 0.25em 1em;19`;20const HighlightableButton = ({ children, highlightable, ...props }) => (21  <Button {...props} {...highlightable}>22    {children}23);24HighlightableButton.propTypes = {25};26export default HighlightableButton;27import React from 'react';28import { shallow } from 'enzyme';29import Button from './Button';30describe('Button', () => {31  it('renders without crashing', () => {32    shallow(<Button>Hello Button</Button>);33  });34});35import { configure } from '@storybook/react';36function loadStories() {37  require('../test.js');38}39configure(loadStories, module);40const path = require('path');41module.exports = ({ config }) => {42  config.module.rules.push({43    test: /\.(js|jsx)$/,44      {45        options: {46        },47      },48    include: path.resolve(__dirname, '../'),49  });50  return config;51};Using AI Code Generation
1import React from 'react';2import { storiesOf } from '@storybook/react';3import { withHighlightable } from 'storybook-root';4import { Button } from '@storybook/react/demo';5const stories = storiesOf('Highlightable', module);6stories.addDecorator(withHighlightable);7stories.add('Button', () => (8));9import { configure } from '@storybook/react';10configure(require.context('../src', true, /\.stories\.js$/), module);11import React from 'react';12import { addDecorator } from '@storybook/react';13import { withHighlightable } from 'storybook-root';14addDecorator(withHighlightable);15import './highlightable';16const path = require('path');17const rootPath = path.resolve(__dirname, '../');18module.exports = async ({ config, mode }) => {19  config.resolve.alias['storybook-root'] = rootPath;20  return config;21};22{23  "compilerOptions": {24  }25}26{27  "compilerOptions": {28    "paths": {29    }30  }31}32{33  "dependencies": {34  },35  "devDependencies": {36  },37  "scripts": {38  }39}40module.exports = {Using AI Code Generation
1import {highlightable} from 'storybook-root/highlightable'2const highlightable = require('storybook-root/highlightable')3const {highlightable} = require('storybook-root/highlightable')4const highlightable = require('storybook-root').highlightable5const {highlightable} = require('storybook-root')6const highlightable = require('storybook-root/highlightable').default7const {highlightable} = require('storybook-root').default8const highlightable = require('storybook-root').default.highlightable9const {highlightable} = require('storybook-root').default10const highlightable = require('storybook-root/highlightable').highlightable11const {highlightable} = require('storybook-root/highlightable').default12const highlightable = require('storybook-root').highlightable.highlightable13const {highlightable} = require('storybook-root').highlightable14const highlightable = require('storybook-root').default.highlightable.highlightable15const {highlightable} = require('storybook-root').default.highlightable16const highlightable = require('storybook-root').default.default.highlightable17const {highlightable} = require('storybook-root').default.default18const highlightable = require('storybook-root').default.default.highlightable.highlightable19const {highlightable} = require('storybook-root').default.default.highlightable20const highlightable = require('storybookUsing AI Code Generation
1import { highlightable } from 'storybook-root';2import { highlightable } from 'storybook-root/highlightable';3import { highlightable } from 'storybook-root';4import { highlightable } from 'storybook-root/highlightable';5import { highlightable } from 'storybook-root';6import { highlightable } from 'storybook-root/highlightable';7import { highlightable } from 'storybook-root';8import { highlightable } from 'storybook-root/highlightable';9import { highlightable } from 'storybook-root';10import { highlightable } from 'storybook-root/highlightable';11import { highlightable } from 'storybook-root';12import { highlightable } from 'storybook-root/highlightable';13import { highlightable } from 'storybook-root';14import { highlightable } from 'storybook-root/highlightable';15import { highlightable } from 'storybook-root';16import { highlightable } from 'storybook-root/highlightable';17import { highlightable } from 'storybook-root';18import { highlightable } from 'storybook-root/highlightable';19import { highlightable } from 'storybook-root';20import { highlightable } from 'storybook-root/highlightable';21import { highlightable } from 'storybook-root';22import { highlightable } from 'storybook-root/highlightable';23import { highlightable } from 'storybook-root';24import { highlightable } from 'storybook-root/highlightable';25import { highlightable } from 'Using AI Code Generation
1import { highlightable } from 'storybook-root';2import { highlightable } from 'storybook-root';3import { highlightable } from 'storybook-root';4import { highlightable } from 'storybook-root';5import { highlightable } from 'storybook-root';6import { highlightable } from 'storybook-root';7import { highlightable } from 'storybook-root';8import { highlightable } from 'storybook-root';9import { highlightable } from 'storybook-root';10import { highlightable } from 'storybook-root';11import { highlightable } from 'storybook-root';12import { highlightable } from 'storybook-root';Using AI Code Generation
1import { highlightable } from 'storybook-addon-jsx';2const Button = ({ children, onClick }) => (3  <button onClick={onClick} className="btn">4    {children}5);6export default highlightable(Button);7import { configure, addDecorator } from '@storybook/react';8import { jsxDecorator } from 'storybook-addon-jsx';9addDecorator(jsxDecorator);10import 'storybook-addon-jsx/register';11module.exports = ({ config }) => {12  config.module.rules.push({13    test: /\.(ts|tsx)$/,14      {15        loader: require.resolve('awesome-typescript-loader'),16      },17      {18        loader: require.resolve('react-docgen-typescript-loader'),19      },20  });21  config.resolve.extensions.push('.ts', '.tsx');22  return config;23};24import { addParameters } from '@storybook/react';25addParameters({26  jsx: {27  },28});29module.exports = {30  stories: ['../src/**/*.stories.(tsx|mdx)'],31  webpackFinal: async config => {32    config.module.rules.push({33      test: /\.(ts|tsx)$/,34        {35          loader: require.resolve('awesome-typescript-loader'),36        },37        {38          loader: require.resolve('react-docgen-typescript-loader'),39        },40    });41    config.resolve.extensions.push('.ts', '.tsx');42    return config;43  },44};45{46}47{48  "compilerOptions": {Using AI Code Generation
1const storybookRoot = require('storybook-root');2storybookRoot.highlightable('myElement', 'myElement');3const storybookRoot = require('storybook-root');4storybookRoot.highlightable('myElement', 'myElement');5const storybookRoot = require('storybook-root');6storybookRoot.highlightable('myElement', 'myElement');7const storybookRoot = require('storybook-root');8storybookRoot.highlightable('myElement', 'myElement');9const storybookRoot = require('storybook-root');10storybookRoot.highlightable('myElement', 'myElement');11const storybookRoot = require('storybook-root');12storybookRoot.highlightable('myElement', 'myElement');13const storybookRoot = require('storybook-root');14storybookRoot.highlightable('myElement', 'myElement');15const storybookRoot = require('storybook-root');16storybookRoot.highlightable('myElement', 'myElement');17const storybookRoot = require('storybook-root');18storybookRoot.highlightable('myElement', 'myElement');19const storybookRoot = require('storybook-root');20storybookRoot.highlightable('myElement', 'myElement');21const storybookRoot = require('storybook-root');22storybookRoot.highlightable('myElement', 'myElement');23const storybookRoot = require('storybook-root');24storybookRoot.highlightable('myElement', 'myElement');25const storybookRoot = require('storybook-root');26storybookRoot.highlightable('myElement', 'myElement');27const storybookRoot = require('storybook-root');28storybookRoot.highlightable('myElement', 'myElement');29const storybookRoot = require('storybook-root');30storybookRoot.highlightable('myElement', 'myElement');Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
