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    
@doodle/components / visuals / LogoLink / LogoLink.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _DoodleLogo = _interopRequireDefault(require("../DoodleLogo"));

var _logo = require("../../constants/logo");

var _user = require("../../utils/user");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

var LogoLink = function LogoLink(_ref) {
  var logoUrl = _ref.logoUrl,
      user = _ref.user,
      currentPageType = _ref.currentPageType,
      customUrl = _ref.customUrl;

  /** Gets the redirect URL depending on:
   * Whether there is a user
   * The page the user is on
   * Whether a custom URL is passed in
   */
  var getRedirectUrl = function getRedirectUrl() {
    var hasValidCustomUrl = customUrl && customUrl !== '';

    if (user) {
      if (currentPageType === _logo.PAGE.PRODUCT) {
        return _logo.LINKS.DASHBOARD;
      } // site


      return _logo.LINKS.HOMEPAGE;
    } // user is logged out


    if (currentPageType === _logo.PAGE.PRODUCT && hasValidCustomUrl) {
      return customUrl;
    } // site


    return _logo.LINKS.HOMEPAGE;
  };

  return /*#__PURE__*/_react["default"].createElement("a", {
    href: getRedirectUrl(),
    "aria-label": "Logo",
    className: "LogoLink"
  }, logoUrl ? /*#__PURE__*/_react["default"].createElement("img", {
    alt: "Logo",
    className: "LogoLink-image",
    src: logoUrl
  }) : /*#__PURE__*/_react["default"].createElement(_DoodleLogo["default"], null));
};

LogoLink.propTypes = {
  /** Defines the user and the shape of the data. */
  user: _user.userPropType,

  /** The current page the user is on - defaults to site */
  currentPageType: _propTypes["default"].oneOf(['site', 'product']),

  /** Custom URL passed in from a premium account */
  customUrl: _propTypes["default"].string,

  /** Logo URL to add a custom logo - defaults to empty string, and if empty, Doodle logo will show */
  logoUrl: _propTypes["default"].string
};
LogoLink.defaultProps = {
  user: null,
  currentPageType: _logo.PAGE.SITE,
  logoUrl: '',
  customUrl: ''
};
var _default = LogoLink;
exports["default"] = _default;