UNPKG

3.09 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _preact = require("preact");
9
10var _ = require("./");
11
12var _classnames = _interopRequireDefault(require("classnames"));
13
14var _smartSuggestionUtils = require("./utils/smart-suggestion-utils");
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18class _default extends _preact.Component {
19 constructor(props) {
20 super(props);
21 this.toggleExpand = this.toggleExpand.bind(this);
22 this.state = {
23 expanded: true
24 };
25 }
26
27 toggleExpand() {
28 this.setState({
29 expanded: !this.state.expanded
30 });
31 }
32
33 render({
34 autoSuggestType,
35 name,
36 value,
37 suggestions,
38 suggestionsDeleting,
39 updateValue,
40 removeSuggestion
41 }, {
42 expanded
43 }) {
44 return (0, _preact.h)("div", {
45 className: "fw3 pa2 bg-near-white br2 shadow-inset",
46 "data-e2e": "smartSuggestions:".concat(name)
47 }, (0, _preact.h)("div", {
48 className: "f6"
49 }, "SmartSuggestions\u2122"), (0, _preact.h)("div", {
50 className: (0, _classnames.default)('overflow-y-scroll', {
51 dn: !expanded
52 })
53 }, suggestionsDeleting && (0, _preact.h)("div", {
54 className: "flex items-center pv2",
55 "data-e2e": "smartSuggestionsUpdating"
56 }, (0, _preact.h)(_.Icon, {
57 icon: "autorenew",
58 className: "spin mr2",
59 size: 16
60 }), "Updating..."), !suggestionsDeleting && suggestions.map(suggestion => {
61 const {
62 pressed,
63 phrase
64 } = suggestion;
65 return (0, _preact.h)("label", {
66 "data-e2e": "suggestionPhrase",
67 key: phrase,
68 className: (0, _classnames.default)('flex items-center ph1 pv2', {
69 fw6: pressed
70 })
71 }, (0, _preact.h)("input", {
72 onChange: e => {
73 e.preventDefault();
74
75 if (autoSuggestType === 'sentence') {
76 updateValue(pressed ? (0, _smartSuggestionUtils.withoutText)(value, phrase) : (0, _smartSuggestionUtils.textAppended)(value, phrase));
77 } else if (autoSuggestType === 'multiple') {
78 updateValue(pressed ? (0, _smartSuggestionUtils.removeCommaSeparatedItem)(value, phrase) : (0, _smartSuggestionUtils.addCommaSeparatedItem)(value, phrase));
79 } else if (autoSuggestType === 'single') {
80 updateValue(pressed ? '' : phrase);
81 }
82 },
83 type: "checkbox",
84 checked: suggestion.pressed,
85 className: "mr2 flex-shrink-0",
86 style: {
87 width: '15px',
88 height: '15px'
89 }
90 }), (0, _preact.h)("span", {
91 className: "lh-solid"
92 }, suggestion.phrase), (0, _preact.h)(_.Button, {
93 tiny: true,
94 className: "flex ml2",
95 onClick: e => {
96 e.preventDefault();
97 e.stopImmediatePropagation();
98 removeSuggestion(name, suggestion.phrase);
99 },
100 type: "button"
101 }, (0, _preact.h)(_.Icon, {
102 icon: "close",
103 size: 12
104 })));
105 })));
106 }
107
108}
109
110exports.default = _default;
\No newline at end of file