Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / src / components / molecules / Toggle / renderProps.js
Size: Mime:
"use strict";

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

const react_1 = __importDefault(require("react"));

const exotic_1 = require("exotic");

const RadioIcon_1 = __importDefault(require("../../atoms/Icons/RadioIcon"));

const SwitchIcon_1 = __importDefault(require("../../atoms/Icons/SwitchIcon"));

const styled_1 = require("./styled");

function defaultRenderIcon(props, state) {
  const {
    iconType,
    breed,
    onToggle,
    isAnimated,
    borderColor,
    bgColor,
    tickColor
  } = props;
  const {
    isSelected,
    handleToggleSelected
  } = state;

  const handleToggleClick = event => {
    handleToggleSelected();

    if (exotic_1.isFunction(onToggle)) {
      const args = {
        isSelected: state.isSelected
      };
      onToggle(args);
    }
  };

  const attributes = {
    isSelected,
    isAnimated,
    onClick: handleToggleClick
  };
  const deselectedIconAttributes = {
    bgColor: 'transparent',
    borderColor,
    tickColor: 'transparent'
  };
  const selectedIconAttributes = {
    bgColor,
    borderColor: 'transparent',
    tickColor
  };
  const svgAttributes = isSelected ? selectedIconAttributes : deselectedIconAttributes;

  function switchIconType(type) {
    switch (type) {
      case 'checkbox':
        return react_1.default.createElement(styled_1.StyledCheckboxIcon, Object.assign({
          breed: breed
        }, attributes, svgAttributes));

      case 'switch':
        const switchLabelView = react_1.default.createElement(styled_1.SwitchLabel, {
          className: isSelected ? 'Selected' : '',
          content: isSelected ? 'ON' : 'OFF'
        });
        return react_1.default.createElement(styled_1.SwitchIconWrapper, null, react_1.default.createElement(SwitchIcon_1.default, Object.assign({}, attributes)), switchLabelView);

      default:
        return react_1.default.createElement(RadioIcon_1.default, Object.assign({}, attributes));
    }
  }

  const iconView = switchIconType(iconType);
  return react_1.default.createElement(styled_1.IconWrapper, null, iconView);
}

exports.defaultRenderIcon = defaultRenderIcon;

function defaultRenderLabel(props) {
  const {
    label
  } = props;
  return react_1.default.createElement(styled_1.StyledLabel, null, label);
}

exports.defaultRenderLabel = defaultRenderLabel;

function defaultRenderWrapper(props) {
  const {
    children,
    className
  } = props;
  const passthroughProps = Object.freeze({
    className,
    'data-qa': props['data-qa']
  });
  return react_1.default.createElement(styled_1.Wrapper, Object.assign({}, passthroughProps), children);
}

exports.defaultRenderWrapper = defaultRenderWrapper; //# sourceMappingURL=renderProps.js.map