ferns-ui 2.0.0-beta.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Common.d.ts +1 -0
- package/dist/Common.js.map +1 -1
- package/dist/EmojiSelector.d.ts +114 -0
- package/dist/EmojiSelector.js +332 -0
- package/dist/EmojiSelector.js.map +1 -0
- package/dist/TextField.js +9 -2
- package/dist/TextField.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/Common.ts +1 -0
- package/src/EmojiSelector.test.tsx +61 -0
- package/src/EmojiSelector.tsx +510 -0
- package/src/TextField.test.tsx +61 -1
- package/src/TextField.tsx +10 -1
- package/src/__snapshots__/EmojiSelector.test.tsx.snap +604 -0
- package/src/index.tsx +1 -0
package/dist/Common.d.ts
CHANGED
|
@@ -504,6 +504,7 @@ export interface TextFieldProps extends BaseFieldProps, HelperTextProps, ErrorTe
|
|
|
504
504
|
multiline?: boolean;
|
|
505
505
|
rows?: number;
|
|
506
506
|
inputRef?: any;
|
|
507
|
+
trimOnBlur?: boolean;
|
|
507
508
|
}
|
|
508
509
|
export interface TextAreaProps extends Omit<TextFieldProps, "multiline" | "type"> {
|
|
509
510
|
}
|
package/dist/Common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":"AAoXA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,WAAW,CAAC,OAAyB,CAAC,CAAC;AAChD,CAAC;AAqBD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,EAAE;IAClD,OAAO;QACL,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;KACV,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":"AAoXA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,WAAW,CAAC,OAAyB,CAAC,CAAC;AAChD,CAAC;AAqBD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,EAAE;IAClD,OAAO;QACL,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;KACV,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAgSF,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,GAAG;IACZ,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MIT License (MIT)
|
|
3
|
+
*
|
|
4
|
+
* Copyright © 2019 Arron Hunt <arronjhunt@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person
|
|
7
|
+
* obtaining a copy of this software and associated documentation
|
|
8
|
+
* files (the “Software”), to deal in the Software without
|
|
9
|
+
* restriction, including without limitation the rights to use,
|
|
10
|
+
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
* copies of the Software, and to permit persons to whom the
|
|
12
|
+
* Software is furnished to do so, subject to the following
|
|
13
|
+
* conditions:
|
|
14
|
+
*
|
|
15
|
+
* The above copyright notice and this permission notice shall be
|
|
16
|
+
* included in all copies or substantial portions of the Software.
|
|
17
|
+
*
|
|
18
|
+
* THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
20
|
+
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
+
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
+
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
24
|
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
25
|
+
* OTHER DEALINGS IN THE SOFTWARE.
|
|
26
|
+
*/
|
|
27
|
+
import React from "react";
|
|
28
|
+
export declare const Categories: {
|
|
29
|
+
all: {
|
|
30
|
+
symbol: null;
|
|
31
|
+
name: string;
|
|
32
|
+
};
|
|
33
|
+
history: {
|
|
34
|
+
symbol: string;
|
|
35
|
+
name: string;
|
|
36
|
+
};
|
|
37
|
+
emotion: {
|
|
38
|
+
symbol: string;
|
|
39
|
+
name: string;
|
|
40
|
+
};
|
|
41
|
+
people: {
|
|
42
|
+
symbol: string;
|
|
43
|
+
name: string;
|
|
44
|
+
};
|
|
45
|
+
nature: {
|
|
46
|
+
symbol: string;
|
|
47
|
+
name: string;
|
|
48
|
+
};
|
|
49
|
+
food: {
|
|
50
|
+
symbol: string;
|
|
51
|
+
name: string;
|
|
52
|
+
};
|
|
53
|
+
activities: {
|
|
54
|
+
symbol: string;
|
|
55
|
+
name: string;
|
|
56
|
+
};
|
|
57
|
+
places: {
|
|
58
|
+
symbol: string;
|
|
59
|
+
name: string;
|
|
60
|
+
};
|
|
61
|
+
objects: {
|
|
62
|
+
symbol: string;
|
|
63
|
+
name: string;
|
|
64
|
+
};
|
|
65
|
+
symbols: {
|
|
66
|
+
symbol: string;
|
|
67
|
+
name: string;
|
|
68
|
+
};
|
|
69
|
+
flags: {
|
|
70
|
+
symbol: string;
|
|
71
|
+
name: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
interface Emoji {
|
|
75
|
+
unified: string;
|
|
76
|
+
short_names: string[];
|
|
77
|
+
category: string;
|
|
78
|
+
sort_order: number;
|
|
79
|
+
obsoleted_by?: string;
|
|
80
|
+
[key: string]: unknown;
|
|
81
|
+
}
|
|
82
|
+
type CategoryKey = keyof typeof Categories;
|
|
83
|
+
type Category = (typeof Categories)[CategoryKey];
|
|
84
|
+
export declare const charFromEmojiObject: (obj: Emoji) => string;
|
|
85
|
+
interface EmojiSelectorProps {
|
|
86
|
+
theme: string;
|
|
87
|
+
category: Category;
|
|
88
|
+
showTabs: boolean;
|
|
89
|
+
showSearchBar: boolean;
|
|
90
|
+
showHistory: boolean;
|
|
91
|
+
showSectionTitles: boolean;
|
|
92
|
+
columns: number;
|
|
93
|
+
placeholder: string;
|
|
94
|
+
onEmojiSelected: (emoji: string) => void;
|
|
95
|
+
shouldInclude?: (emoji: Emoji) => boolean;
|
|
96
|
+
[key: string]: unknown;
|
|
97
|
+
}
|
|
98
|
+
declare const EmojiSelector: {
|
|
99
|
+
(props: EmojiSelectorProps): React.JSX.Element;
|
|
100
|
+
defaultProps: {
|
|
101
|
+
theme: string;
|
|
102
|
+
category: {
|
|
103
|
+
symbol: null;
|
|
104
|
+
name: string;
|
|
105
|
+
};
|
|
106
|
+
showTabs: boolean;
|
|
107
|
+
showSearchBar: boolean;
|
|
108
|
+
showHistory: boolean;
|
|
109
|
+
showSectionTitles: boolean;
|
|
110
|
+
columns: number;
|
|
111
|
+
placeholder: string;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
export default EmojiSelector;
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MIT License (MIT)
|
|
3
|
+
*
|
|
4
|
+
* Copyright © 2019 Arron Hunt <arronjhunt@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person
|
|
7
|
+
* obtaining a copy of this software and associated documentation
|
|
8
|
+
* files (the “Software”), to deal in the Software without
|
|
9
|
+
* restriction, including without limitation the rights to use,
|
|
10
|
+
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
* copies of the Software, and to permit persons to whom the
|
|
12
|
+
* Software is furnished to do so, subject to the following
|
|
13
|
+
* conditions:
|
|
14
|
+
*
|
|
15
|
+
* The above copyright notice and this permission notice shall be
|
|
16
|
+
* included in all copies or substantial portions of the Software.
|
|
17
|
+
*
|
|
18
|
+
* THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
20
|
+
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
+
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
+
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
24
|
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
25
|
+
* OTHER DEALINGS IN THE SOFTWARE.
|
|
26
|
+
*/
|
|
27
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
28
|
+
var t = {};
|
|
29
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
30
|
+
t[p] = s[p];
|
|
31
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
32
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
33
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
34
|
+
t[p[i]] = s[p[i]];
|
|
35
|
+
}
|
|
36
|
+
return t;
|
|
37
|
+
};
|
|
38
|
+
import AsyncStorage from "@react-native-async-storage/async-storage";
|
|
39
|
+
import emoji from "emoji-datasource";
|
|
40
|
+
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
41
|
+
import { ActivityIndicator, FlatList, Platform, StyleSheet, Text, TextInput, TouchableOpacity, View, } from "react-native";
|
|
42
|
+
export const Categories = {
|
|
43
|
+
all: {
|
|
44
|
+
symbol: null,
|
|
45
|
+
name: "All",
|
|
46
|
+
},
|
|
47
|
+
history: {
|
|
48
|
+
symbol: "🕘",
|
|
49
|
+
name: "Recently used",
|
|
50
|
+
},
|
|
51
|
+
emotion: {
|
|
52
|
+
symbol: "😀",
|
|
53
|
+
name: "Smileys & Emotion",
|
|
54
|
+
},
|
|
55
|
+
people: {
|
|
56
|
+
symbol: "🧑",
|
|
57
|
+
name: "People & Body",
|
|
58
|
+
},
|
|
59
|
+
nature: {
|
|
60
|
+
symbol: "🦄",
|
|
61
|
+
name: "Animals & Nature",
|
|
62
|
+
},
|
|
63
|
+
food: {
|
|
64
|
+
symbol: "🍔",
|
|
65
|
+
name: "Food & Drink",
|
|
66
|
+
},
|
|
67
|
+
activities: {
|
|
68
|
+
symbol: "⚾️",
|
|
69
|
+
name: "Activities",
|
|
70
|
+
},
|
|
71
|
+
places: {
|
|
72
|
+
symbol: "✈️",
|
|
73
|
+
name: "Travel & Places",
|
|
74
|
+
},
|
|
75
|
+
objects: {
|
|
76
|
+
symbol: "💡",
|
|
77
|
+
name: "Objects",
|
|
78
|
+
},
|
|
79
|
+
symbols: {
|
|
80
|
+
symbol: "🔣",
|
|
81
|
+
name: "Symbols",
|
|
82
|
+
},
|
|
83
|
+
flags: {
|
|
84
|
+
symbol: "🏳️🌈",
|
|
85
|
+
name: "Flags",
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
const charFromUtf16 = (utf16) => String.fromCodePoint(...utf16.split("-").map((u) => Number(`0x${u}`)));
|
|
89
|
+
export const charFromEmojiObject = (obj) => charFromUtf16(obj.unified);
|
|
90
|
+
const filteredEmojis = emoji.filter((e) => !e.obsoleted_by);
|
|
91
|
+
const emojiByCategory = (category) => filteredEmojis.filter((e) => e.category === category);
|
|
92
|
+
const sortEmoji = (list) => list.sort((a, b) => a.sort_order - b.sort_order);
|
|
93
|
+
const categoryKeys = Object.keys(Categories);
|
|
94
|
+
const TabBar = ({ theme, activeCategory, onPress, width }) => {
|
|
95
|
+
const tabSize = width / categoryKeys.length;
|
|
96
|
+
return categoryKeys.map((c) => {
|
|
97
|
+
if (c === "all") {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const category = Categories[c];
|
|
101
|
+
return (React.createElement(TouchableOpacity, { key: category.name, onPress: () => onPress(category), style: {
|
|
102
|
+
flex: 1,
|
|
103
|
+
minHeight: 44,
|
|
104
|
+
maxHeight: 60,
|
|
105
|
+
borderColor: category === activeCategory ? theme : "#EEEEEE",
|
|
106
|
+
borderBottomWidth: 2,
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
justifyContent: "center",
|
|
109
|
+
} },
|
|
110
|
+
React.createElement(Text, { style: {
|
|
111
|
+
textAlign: "center",
|
|
112
|
+
paddingBottom: 8,
|
|
113
|
+
fontSize: Math.max(tabSize - 24, 18),
|
|
114
|
+
} }, category.symbol)));
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
const EmojiCell = ({ emoji, colSize, onPress }) => (React.createElement(TouchableOpacity, { activeOpacity: 0.5, style: {
|
|
118
|
+
width: colSize,
|
|
119
|
+
height: colSize,
|
|
120
|
+
alignItems: "center",
|
|
121
|
+
justifyContent: "center",
|
|
122
|
+
}, onPress: onPress },
|
|
123
|
+
React.createElement(Text, { style: { color: "#FFFFFF", fontSize: Math.max(colSize - 12, 6) } }, charFromEmojiObject(emoji))));
|
|
124
|
+
const storage_key = "@react-native-emoji-selector:HISTORY";
|
|
125
|
+
const EmojiSelector = (props) => {
|
|
126
|
+
const { theme, columns, placeholder, showHistory, showSearchBar, showSectionTitles, showTabs, category: initialCategory, shouldInclude, onEmojiSelected } = props, other = __rest(props, ["theme", "columns", "placeholder", "showHistory", "showSearchBar", "showSectionTitles", "showTabs", "category", "shouldInclude", "onEmojiSelected"]);
|
|
127
|
+
const [searchQuery, setSearchQuery] = useState("");
|
|
128
|
+
const [category, setCategory] = useState(initialCategory);
|
|
129
|
+
const [isReady, setIsReady] = useState(false);
|
|
130
|
+
const [history, setHistory] = useState([]);
|
|
131
|
+
const [emojiList, setEmojiList] = useState(null);
|
|
132
|
+
const [colSize, setColSize] = useState(0);
|
|
133
|
+
const [width, setWidth] = useState(0);
|
|
134
|
+
const scrollview = useRef(null);
|
|
135
|
+
//
|
|
136
|
+
// HANDLER METHODS
|
|
137
|
+
//
|
|
138
|
+
const handleTabSelect = useCallback((nextCategory) => {
|
|
139
|
+
if (isReady) {
|
|
140
|
+
if (scrollview.current) {
|
|
141
|
+
scrollview.current.scrollToOffset({ offset: 0, animated: false });
|
|
142
|
+
}
|
|
143
|
+
setSearchQuery("");
|
|
144
|
+
setCategory(nextCategory);
|
|
145
|
+
}
|
|
146
|
+
}, [isReady]);
|
|
147
|
+
const handleEmojiSelect = useCallback((selectedEmoji) => {
|
|
148
|
+
if (showHistory) {
|
|
149
|
+
addToHistoryAsync(selectedEmoji);
|
|
150
|
+
}
|
|
151
|
+
onEmojiSelected(charFromEmojiObject(selectedEmoji));
|
|
152
|
+
}, [onEmojiSelected, showHistory]);
|
|
153
|
+
const handleSearch = useCallback((query) => {
|
|
154
|
+
setSearchQuery(query);
|
|
155
|
+
}, []);
|
|
156
|
+
const addToHistoryAsync = useCallback(async (selectedEmoji) => {
|
|
157
|
+
const stored = await AsyncStorage.getItem(storage_key);
|
|
158
|
+
let value = [];
|
|
159
|
+
if (!stored) {
|
|
160
|
+
// no history
|
|
161
|
+
const record = Object.assign({}, selectedEmoji, { count: 1 });
|
|
162
|
+
value.push(record);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const json = JSON.parse(stored);
|
|
166
|
+
if (json.filter((r) => r.unified === selectedEmoji.unified).length > 0) {
|
|
167
|
+
value = json;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
const record = Object.assign({}, selectedEmoji, { count: 1 });
|
|
171
|
+
value = [record, ...json];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
AsyncStorage.setItem(storage_key, JSON.stringify(value));
|
|
175
|
+
setHistory(value);
|
|
176
|
+
}, []);
|
|
177
|
+
const loadHistoryAsync = useCallback(async () => {
|
|
178
|
+
const result = await AsyncStorage.getItem(storage_key);
|
|
179
|
+
if (result) {
|
|
180
|
+
const parsed = JSON.parse(result);
|
|
181
|
+
setHistory(parsed);
|
|
182
|
+
}
|
|
183
|
+
}, []);
|
|
184
|
+
//
|
|
185
|
+
// RENDER METHODS
|
|
186
|
+
//
|
|
187
|
+
const renderEmojiCell = useCallback(({ item }) => (React.createElement(EmojiCell, { key: item.key, emoji: item.emoji, onPress: () => handleEmojiSelect(item.emoji), colSize: colSize })), [handleEmojiSelect, colSize]);
|
|
188
|
+
const returnSectionData = useCallback(() => {
|
|
189
|
+
const currentEmojiList = emojiList;
|
|
190
|
+
if (!currentEmojiList) {
|
|
191
|
+
return [];
|
|
192
|
+
}
|
|
193
|
+
const currentCategory = category;
|
|
194
|
+
const currentSearchQuery = searchQuery;
|
|
195
|
+
const currentHistory = history;
|
|
196
|
+
let emojiData;
|
|
197
|
+
if (currentCategory === Categories.all && currentSearchQuery === "") {
|
|
198
|
+
//TODO: OPTIMIZE THIS
|
|
199
|
+
const largeList = [];
|
|
200
|
+
for (const c of categoryKeys) {
|
|
201
|
+
const name = Categories[c].name;
|
|
202
|
+
const list = name === Categories.history.name ? currentHistory : currentEmojiList[name] || [];
|
|
203
|
+
if (c !== "all" && c !== "history") {
|
|
204
|
+
largeList.push(...list);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
emojiData = largeList.map((e) => ({ key: e.unified, emoji: e }));
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
let list;
|
|
211
|
+
const hasSearchQuery = currentSearchQuery !== "";
|
|
212
|
+
const name = currentCategory.name;
|
|
213
|
+
if (hasSearchQuery) {
|
|
214
|
+
const filtered = filteredEmojis.filter((e) => {
|
|
215
|
+
let display = false;
|
|
216
|
+
for (const shortName of e.short_names) {
|
|
217
|
+
if (shortName.includes(currentSearchQuery.toLowerCase())) {
|
|
218
|
+
display = true;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return display;
|
|
223
|
+
});
|
|
224
|
+
list = sortEmoji(filtered);
|
|
225
|
+
}
|
|
226
|
+
else if (name === Categories.history.name) {
|
|
227
|
+
list = currentHistory;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
list = currentEmojiList[name] || [];
|
|
231
|
+
}
|
|
232
|
+
emojiData = list.map((e) => ({ key: e.unified, emoji: e }));
|
|
233
|
+
}
|
|
234
|
+
return shouldInclude ? emojiData.filter((e) => shouldInclude(e.emoji)) : emojiData;
|
|
235
|
+
}, [category, emojiList, history, searchQuery, shouldInclude]);
|
|
236
|
+
const prerenderEmojis = useCallback((callback) => {
|
|
237
|
+
const listByCategory = {};
|
|
238
|
+
for (const c of categoryKeys) {
|
|
239
|
+
const name = Categories[c].name;
|
|
240
|
+
listByCategory[name] = sortEmoji(emojiByCategory(name));
|
|
241
|
+
}
|
|
242
|
+
setEmojiList(listByCategory);
|
|
243
|
+
setColSize(Math.max(Math.floor(width / columns), 32));
|
|
244
|
+
if (callback) {
|
|
245
|
+
callback();
|
|
246
|
+
}
|
|
247
|
+
}, [columns, width]);
|
|
248
|
+
const handleLayout = useCallback(({ nativeEvent: { layout } }) => {
|
|
249
|
+
setWidth(layout.width);
|
|
250
|
+
prerenderEmojis(() => {
|
|
251
|
+
setIsReady(true);
|
|
252
|
+
});
|
|
253
|
+
}, [prerenderEmojis]);
|
|
254
|
+
//
|
|
255
|
+
// LIFECYCLE METHODS
|
|
256
|
+
//
|
|
257
|
+
useEffect(() => {
|
|
258
|
+
setCategory(initialCategory);
|
|
259
|
+
if (showHistory) {
|
|
260
|
+
loadHistoryAsync();
|
|
261
|
+
}
|
|
262
|
+
}, [initialCategory, loadHistoryAsync, showHistory]);
|
|
263
|
+
const Searchbar = (React.createElement(View, { style: styles.searchbar_container },
|
|
264
|
+
React.createElement(TextInput, { style: styles.search, placeholder: placeholder, clearButtonMode: "always", returnKeyType: "done", autoCorrect: false, underlineColorAndroid: theme, value: searchQuery, onChangeText: handleSearch })));
|
|
265
|
+
const title = searchQuery !== "" ? "Search Results" : category.name;
|
|
266
|
+
return (React.createElement(View, Object.assign({ style: styles.frame }, other, { onLayout: handleLayout }),
|
|
267
|
+
React.createElement(View, { style: styles.tabBar }, showTabs && (React.createElement(TabBar, { activeCategory: category, onPress: handleTabSelect, theme: theme, width: width }))),
|
|
268
|
+
React.createElement(View, { style: { flex: 1 } },
|
|
269
|
+
showSearchBar && Searchbar,
|
|
270
|
+
isReady ? (React.createElement(View, { style: { flex: 1 } },
|
|
271
|
+
React.createElement(View, { style: styles.container },
|
|
272
|
+
showSectionTitles && React.createElement(Text, { style: styles.sectionHeader }, title),
|
|
273
|
+
React.createElement(FlatList, { style: styles.scrollview, contentContainerStyle: { paddingBottom: colSize }, data: returnSectionData(), renderItem: renderEmojiCell, horizontal: false, numColumns: columns, keyboardShouldPersistTaps: "always", ref: scrollview, removeClippedSubviews: true })))) : (React.createElement(View, Object.assign({ style: styles.loader }, other),
|
|
274
|
+
React.createElement(ActivityIndicator, { size: "large", color: Platform.OS === "android" ? theme : "#000000" }))))));
|
|
275
|
+
};
|
|
276
|
+
EmojiSelector.defaultProps = {
|
|
277
|
+
theme: "#007AFF",
|
|
278
|
+
category: Categories.all,
|
|
279
|
+
showTabs: true,
|
|
280
|
+
showSearchBar: true,
|
|
281
|
+
showHistory: false,
|
|
282
|
+
showSectionTitles: true,
|
|
283
|
+
columns: 6,
|
|
284
|
+
placeholder: "Search...",
|
|
285
|
+
};
|
|
286
|
+
export default EmojiSelector;
|
|
287
|
+
const styles = StyleSheet.create({
|
|
288
|
+
frame: {
|
|
289
|
+
flex: 1,
|
|
290
|
+
width: "100%",
|
|
291
|
+
},
|
|
292
|
+
loader: {
|
|
293
|
+
flex: 1,
|
|
294
|
+
alignItems: "center",
|
|
295
|
+
justifyContent: "center",
|
|
296
|
+
},
|
|
297
|
+
tabBar: {
|
|
298
|
+
flexDirection: "row",
|
|
299
|
+
minHeight: 44,
|
|
300
|
+
maxHeight: 60,
|
|
301
|
+
},
|
|
302
|
+
scrollview: {
|
|
303
|
+
flex: 1,
|
|
304
|
+
overflow: "hidden",
|
|
305
|
+
},
|
|
306
|
+
searchbar_container: {
|
|
307
|
+
width: "100%",
|
|
308
|
+
zIndex: 1,
|
|
309
|
+
backgroundColor: "rgba(255,255,255,0.75)",
|
|
310
|
+
},
|
|
311
|
+
search: Object.assign(Object.assign({}, Platform.select({
|
|
312
|
+
ios: {
|
|
313
|
+
height: 36,
|
|
314
|
+
paddingLeft: 8,
|
|
315
|
+
borderRadius: 10,
|
|
316
|
+
backgroundColor: "#E5E8E9",
|
|
317
|
+
},
|
|
318
|
+
})), { margin: 8 }),
|
|
319
|
+
container: {
|
|
320
|
+
flex: 1,
|
|
321
|
+
flexDirection: "column",
|
|
322
|
+
alignItems: "flex-start",
|
|
323
|
+
overflow: "hidden",
|
|
324
|
+
},
|
|
325
|
+
sectionHeader: {
|
|
326
|
+
margin: 8,
|
|
327
|
+
fontSize: 17,
|
|
328
|
+
width: "100%",
|
|
329
|
+
color: "#8F8F8F",
|
|
330
|
+
},
|
|
331
|
+
});
|
|
332
|
+
//# sourceMappingURL=EmojiSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiSelector.js","sourceRoot":"","sources":["../src/EmojiSelector.tsx"],"names":[],"mappings":"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"}
|
package/dist/TextField.js
CHANGED
|
@@ -39,7 +39,7 @@ const textContentMap = {
|
|
|
39
39
|
}),
|
|
40
40
|
username: "username",
|
|
41
41
|
};
|
|
42
|
-
export const TextField = ({ title, disabled, helperText, errorText, value, onChange, placeholder, blurOnSubmit = true, iconName, onIconClick, type = "text", autoComplete, inputRef, multiline, rows = 1, grow, returnKeyType, onBlur, onFocus, onEnter, onSubmitEditing, testID, }) => {
|
|
42
|
+
export const TextField = ({ title, disabled, helperText, errorText, value, onChange, placeholder, blurOnSubmit = true, iconName, onIconClick, trimOnBlur = true, type = "text", autoComplete, inputRef, multiline, rows = 1, grow, returnKeyType, onBlur, onFocus, onEnter, onSubmitEditing, testID, }) => {
|
|
43
43
|
const { theme } = useTheme();
|
|
44
44
|
const calendar = getCalendars()[0];
|
|
45
45
|
const localTimeZone = calendar === null || calendar === void 0 ? void 0 : calendar.timeZone;
|
|
@@ -112,8 +112,15 @@ export const TextField = ({ title, disabled, helperText, errorText, value, onCha
|
|
|
112
112
|
}, accessibilityHint: "Enter text here", accessibilityState: { disabled }, "aria-label": "Text input field", autoCapitalize: type === "text" ? "sentences" : "none", autoCorrect: shouldAutocorrect, blurOnSubmit: blurOnSubmit, enterKeyHint: returnKeyType, keyboardType: keyboardType, multiline: multiline, numberOfLines: rows || 4, placeholder: placeholder, placeholderTextColor: theme.text.secondaryLight, readOnly: disabled, secureTextEntry: type === "password", style: defaultTextInputStyles, testID: testID, textContentType: textContentType, underlineColorAndroid: "transparent", value: value, onBlur: () => {
|
|
113
113
|
if (disabled)
|
|
114
114
|
return;
|
|
115
|
+
let finalValue = value !== null && value !== void 0 ? value : "";
|
|
116
|
+
if (trimOnBlur && value) {
|
|
117
|
+
finalValue = finalValue.trim();
|
|
118
|
+
if (finalValue !== value) {
|
|
119
|
+
onChange(finalValue);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
115
122
|
if (onBlur) {
|
|
116
|
-
onBlur(
|
|
123
|
+
onBlur(finalValue);
|
|
117
124
|
}
|
|
118
125
|
setFocused(false);
|
|
119
126
|
}, onChangeText: onChange, onContentSizeChange: (event) => {
|
package/dist/TextField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export * from "./DateUtilities";
|
|
|
20
20
|
export * from "./DecimalRangeActionSheet";
|
|
21
21
|
export * from "./DismissButton";
|
|
22
22
|
export * from "./EmailField";
|
|
23
|
+
export { default as EmojiSelector } from "./EmojiSelector";
|
|
23
24
|
export * from "./ErrorBoundary";
|
|
24
25
|
export * from "./ErrorPage";
|
|
25
26
|
export * from "./FernsProvider";
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export * from "./DateUtilities";
|
|
|
20
20
|
export * from "./DecimalRangeActionSheet";
|
|
21
21
|
export * from "./DismissButton";
|
|
22
22
|
export * from "./EmailField";
|
|
23
|
+
export { default as EmojiSelector } from "./EmojiSelector";
|
|
23
24
|
export * from "./ErrorBoundary";
|
|
24
25
|
export * from "./ErrorPage";
|
|
25
26
|
export * from "./FernsProvider";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ferns-ui",
|
|
3
|
-
"version": "2.0.0
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"scripts": {
|
|
@@ -89,6 +89,7 @@
|
|
|
89
89
|
"@react-native-community/datetimepicker": "8.4.4",
|
|
90
90
|
"@react-native-community/slider": "^5.0.1",
|
|
91
91
|
"@react-native-picker/picker": "2.11.1",
|
|
92
|
+
"emoji-datasource": "^16.0.0",
|
|
92
93
|
"expo-clipboard": "~8.0.8",
|
|
93
94
|
"expo-font": "~14.0.10",
|
|
94
95
|
"expo-haptics": "~15.0.8",
|
package/src/Common.ts
CHANGED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import EmojiSelector, {Categories} from "./EmojiSelector";
|
|
4
|
+
import {renderWithTheme} from "./test-utils";
|
|
5
|
+
|
|
6
|
+
describe("EmojiSelector", () => {
|
|
7
|
+
it("renders search bar when showSearchBar is true", () => {
|
|
8
|
+
const {getByPlaceholderText} = renderWithTheme(
|
|
9
|
+
<EmojiSelector
|
|
10
|
+
category={Categories.all}
|
|
11
|
+
columns={6}
|
|
12
|
+
onEmojiSelected={jest.fn()}
|
|
13
|
+
placeholder="Search emojis"
|
|
14
|
+
showHistory={false}
|
|
15
|
+
showSearchBar
|
|
16
|
+
showSectionTitles
|
|
17
|
+
showTabs
|
|
18
|
+
theme="#007AFF"
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
expect(getByPlaceholderText("Search emojis")).toBeTruthy();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("renders tab bar when showTabs is true", () => {
|
|
26
|
+
const {getByText} = renderWithTheme(
|
|
27
|
+
<EmojiSelector
|
|
28
|
+
category={Categories.people}
|
|
29
|
+
columns={6}
|
|
30
|
+
onEmojiSelected={jest.fn()}
|
|
31
|
+
placeholder="Search emojis"
|
|
32
|
+
showHistory={false}
|
|
33
|
+
showSearchBar
|
|
34
|
+
showSectionTitles
|
|
35
|
+
showTabs
|
|
36
|
+
theme="#007AFF"
|
|
37
|
+
/>
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
// One of the known category symbols
|
|
41
|
+
expect(getByText("😀")).toBeTruthy();
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("matches snapshot", () => {
|
|
45
|
+
const tree = renderWithTheme(
|
|
46
|
+
<EmojiSelector
|
|
47
|
+
category={Categories.people}
|
|
48
|
+
columns={6}
|
|
49
|
+
onEmojiSelected={jest.fn()}
|
|
50
|
+
placeholder="Search emojis"
|
|
51
|
+
showHistory={false}
|
|
52
|
+
showSearchBar
|
|
53
|
+
showSectionTitles
|
|
54
|
+
showTabs
|
|
55
|
+
theme="#007AFF"
|
|
56
|
+
/>
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
expect(tree.toJSON()).toMatchSnapshot();
|
|
60
|
+
});
|
|
61
|
+
});
|