@atlaskit/focused-task-close-account
Version:
This package contains all of the UI components needed to assemble the focused tasks for deactivating and deleting users' accounts in accordance with the GDPR "Right to be forgotten".
92 lines • 4.49 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
import React from 'react';
import { FormattedMessage } from 'react-intl-next';
import Button from '@atlaskit/button';
import { Drawer, DrawerCloseButton, DrawerContent, DrawerSidebar } from '@atlaskit/drawer';
import CrossIcon from '@atlaskit/icon/core/migration/cross';
import * as Styled from './styled';
import Footer from '../Footer';
import { commonMessages } from '../../messages';
import MessagesIntlProvider from '../MessagesIntlProvider';
export var FocusedTaskCloseAccount = /*#__PURE__*/function (_React$Component) {
function FocusedTaskCloseAccount() {
var _this;
_classCallCheck(this, FocusedTaskCloseAccount);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _callSuper(this, FocusedTaskCloseAccount, [].concat(args));
_defineProperty(_this, "state", {
currentScreenIdx: 0
});
_defineProperty(_this, "nextScreen", function () {
var screens = _this.props.screens;
var currentScreenIdx = _this.state.currentScreenIdx;
var nextScreenIdx = currentScreenIdx < screens.length - 1 ? currentScreenIdx + 1 : screens.length - 1;
_this.setState({
currentScreenIdx: nextScreenIdx
});
});
_defineProperty(_this, "previousScreen", function () {
var currentScreenIdx = _this.state.currentScreenIdx;
var previousScreenIdx = currentScreenIdx - 1 >= 0 ? currentScreenIdx - 1 : 0;
_this.setState({
currentScreenIdx: previousScreenIdx
});
});
_defineProperty(_this, "renderCurrentScreen", function () {
var currentScreen = _this.props.screens[_this.state.currentScreenIdx];
return currentScreen;
});
return _this;
}
_inherits(FocusedTaskCloseAccount, _React$Component);
return _createClass(FocusedTaskCloseAccount, [{
key: "render",
value: function render() {
var _this$props = this.props,
isOpen = _this$props.isOpen,
onClose = _this$props.onClose,
screens = _this$props.screens,
submitButton = _this$props.submitButton,
learnMoreLink = _this$props.learnMoreLink;
var currentScreenIdx = this.state.currentScreenIdx;
return /*#__PURE__*/React.createElement(MessagesIntlProvider, null, /*#__PURE__*/React.createElement(Drawer, {
isOpen: isOpen,
onClose: onClose,
width: "full"
}, /*#__PURE__*/React.createElement(DrawerSidebar, null, /*#__PURE__*/React.createElement(DrawerCloseButton, {
icon: function icon(props) {
return /*#__PURE__*/React.createElement(CrossIcon, _extends({
color: "currentColor",
label: ""
}, props, {
LEGACY_size: "medium"
}));
}
})), /*#__PURE__*/React.createElement(DrawerContent, null, /*#__PURE__*/React.createElement(Styled.DrawerInner, null, this.renderCurrentScreen(), /*#__PURE__*/React.createElement(Footer, {
numScreens: screens.length,
currentScreenIdx: currentScreenIdx,
onCancel: onClose,
onNext: this.nextScreen,
onPrevious: this.previousScreen,
secondaryActions: learnMoreLink && /*#__PURE__*/React.createElement(Button, {
appearance: "subtle-link",
spacing: "none",
href: learnMoreLink,
target: "_blank"
}, /*#__PURE__*/React.createElement(FormattedMessage, commonMessages.learnMore), ' '),
submitButton: submitButton
})))));
}
}]);
}(React.Component);
export default FocusedTaskCloseAccount;