function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

import { ButtonOutline, Link, MessageBar } from '@looker/components';
import React, { useState, useEffect } from 'react';
var LOCAL_STORAGE_KEY = 'api-40-ga-apix-banner';
var LOCAL_STORAGE_VALUE = 'dismissed';
export var Banner = _ref => {
  var {
    adaptor,
    specs
  } = _ref;
  var [isOpen, setOpen] = useState(false);
  useEffect(onLoad, []);

  if (isOpen) {
    return React.createElement(MessageBar, {
      intent: "inform",
      onPrimaryClick: onClose,
      secondaryAction: React.createElement(Link, {
        href: "https://developers.looker.com/api/advanced-usage/version-4-ga",
        target: "_blank"
      }, React.createElement(ButtonOutline, {
        size: "small"
      }, "Announcement"))
    }, "API 4.0 moves from Beta to General Availability in Looker 22.4 with additions and possible breaking changes. Read the announcement to see how this affects you.");
  } else {
    return null;
  }

  function onLoad() {
    function innerOnLoad() {
      return _innerOnLoad.apply(this, arguments);
    }

    function _innerOnLoad() {
      _innerOnLoad = _asyncToGenerator(function* () {
        var is40Stable = specs['4.0'].status === 'stable' || specs['4.0'].status === 'current';
        var wasDismissed = (yield adaptor.localStorageGetItem(LOCAL_STORAGE_KEY)) === LOCAL_STORAGE_VALUE;
        setOpen(!is40Stable && !wasDismissed && adaptor.isExtension());
      });
      return _innerOnLoad.apply(this, arguments);
    }

    innerOnLoad();
  }

  function onClose() {
    adaptor.localStorageSetItem(LOCAL_STORAGE_KEY, LOCAL_STORAGE_VALUE);
    setOpen(false);
  }
};
//# sourceMappingURL=Banner.js.map