1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _preact = require("preact");
|
9 |
|
10 | var _ = require("./");
|
11 |
|
12 | var _classnames = _interopRequireDefault(require("classnames"));
|
13 |
|
14 | var _smartSuggestionUtils = require("./utils/smart-suggestion-utils");
|
15 |
|
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17 |
|
18 | class _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 |
|
110 | exports.default = _default; |
\ | No newline at end of file |