expo-native-sheet-emojis 1.3.0 → 1.5.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/README.md +18 -3
- package/android/src/main/java/expo/community/modules/emojisheet/EmojiGridAdapter.kt +6 -0
- package/android/src/main/java/expo/community/modules/emojisheet/EmojiSheetContentView.kt +4 -0
- package/android/src/main/java/expo/community/modules/emojisheet/EmojiSheetModule.kt +33 -2
- package/android/src/main/java/expo/community/modules/emojisheet/EmojiSheetUIView.kt +2 -0
- package/ios/EmojiGridView.swift +10 -0
- package/ios/EmojiSheetContentView.swift +4 -0
- package/ios/EmojiSheetModule.podspec +1 -1
- package/ios/EmojiSheetModule.swift +42 -10
- package/ios/EmojiSheetUIView.swift +3 -0
- package/lib/commonjs/EmojiSheetModule.js +7 -0
- package/lib/commonjs/EmojiSheetModule.js.map +1 -1
- package/lib/commonjs/EmojiSheetView.js +2 -0
- package/lib/commonjs/EmojiSheetView.js.map +1 -1
- package/lib/module/EmojiSheetModule.js +7 -0
- package/lib/module/EmojiSheetModule.js.map +1 -1
- package/lib/module/EmojiSheetView.js +2 -0
- package/lib/module/EmojiSheetView.js.map +1 -1
- package/lib/typescript/EmojiSheetModule.d.ts +2 -0
- package/lib/typescript/EmojiSheetModule.d.ts.map +1 -1
- package/lib/typescript/EmojiSheetModule.types.d.ts +5 -2
- package/lib/typescript/EmojiSheetModule.types.d.ts.map +1 -1
- package/lib/typescript/EmojiSheetView.d.ts +1 -1
- package/lib/typescript/EmojiSheetView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/EmojiSheetModule.ts +9 -0
- package/src/EmojiSheetModule.types.ts +5 -2
- package/src/EmojiSheetView.tsx +2 -0
package/README.md
CHANGED
|
@@ -285,6 +285,18 @@ Programmatically dismisses the emoji picker sheet.
|
|
|
285
285
|
|
|
286
286
|
**Returns:** `Promise<void>`
|
|
287
287
|
|
|
288
|
+
### EmojiSheetModule.clearRecents()
|
|
289
|
+
|
|
290
|
+
Clears all frequently used emoji data.
|
|
291
|
+
|
|
292
|
+
**Returns:** `Promise<void>`
|
|
293
|
+
|
|
294
|
+
### EmojiSheetModule.clearSkinTonePreferences()
|
|
295
|
+
|
|
296
|
+
Clears all saved skin tone preferences.
|
|
297
|
+
|
|
298
|
+
**Returns:** `Promise<void>`
|
|
299
|
+
|
|
288
300
|
### EmojiSheetView
|
|
289
301
|
|
|
290
302
|
A declarative React component that renders the emoji picker inline.
|
|
@@ -294,7 +306,7 @@ A declarative React component that renders the emoji picker inline.
|
|
|
294
306
|
| Prop | Type | Default | Description |
|
|
295
307
|
|-|-|-|-|
|
|
296
308
|
| onEmojiSelected | `(emoji: string) => void` | required | Called when an emoji is tapped |
|
|
297
|
-
| theme | `EmojiSheetTheme \| 'dark' \| 'light'` | `'light'` | Theme configuration |
|
|
309
|
+
| theme | `EmojiSheetTheme \| 'dark' \| 'light' \| 'system'` | `'light'` | Theme configuration |
|
|
298
310
|
| translations | `EmojiSheetTranslations` | -- | Localized strings |
|
|
299
311
|
| categoryBarPosition | `'top' \| 'bottom'` | `'top'` | Position of the category tab bar |
|
|
300
312
|
| columns | `number` | `7` | Number of emoji columns in the grid |
|
|
@@ -304,6 +316,7 @@ A declarative React component that renders the emoji picker inline.
|
|
|
304
316
|
| showRecents | `boolean` | `true` | Whether to show the frequently used section |
|
|
305
317
|
| enableSkinTones | `boolean` | `true` | Whether to enable skin tone selection on long press |
|
|
306
318
|
| enableHaptics | `boolean` | `true` | Whether to trigger haptic feedback on emoji tap, long-press, and skin tone selection |
|
|
319
|
+
| enableAnimations | `boolean` | `false` | Scale animation on emoji tap. Mostly useful for the embedded `EmojiSheetView` since the imperative sheet dismisses on selection before the animation completes. |
|
|
307
320
|
| excludeEmojis | `string[]` | `[]` | Array of emoji IDs to exclude (e.g., `["pile_of_poo", "thumbs_down"]`) |
|
|
308
321
|
|
|
309
322
|
### EmojiSheetTheme
|
|
@@ -339,7 +352,7 @@ All theme fields with their purpose:
|
|
|
339
352
|
|
|
340
353
|
| Field | Type | Default | Description |
|
|
341
354
|
|-|-|-|-|
|
|
342
|
-
| theme | `EmojiSheetTheme \| 'dark' \| 'light'` | `'light'` | Theme configuration |
|
|
355
|
+
| theme | `EmojiSheetTheme \| 'dark' \| 'light' \| 'system'` | `'light'` | Theme configuration |
|
|
343
356
|
| translations | `EmojiSheetTranslations` | -- | Localized UI strings |
|
|
344
357
|
| snapPoints | `[number, number]` | `[0.5, 1.0]` | Bottom sheet snap points as screen fractions |
|
|
345
358
|
| categoryBarPosition | `'top' \| 'bottom'` | `'top'` | Position of the category tab bar |
|
|
@@ -350,6 +363,7 @@ All theme fields with their purpose:
|
|
|
350
363
|
| showRecents | `boolean` | `true` | Show the frequently used section |
|
|
351
364
|
| enableSkinTones | `boolean` | `true` | Enable skin tone long-press |
|
|
352
365
|
| enableHaptics | `boolean` | `true` | Haptic feedback on tap, long-press, and skin tone select |
|
|
366
|
+
| enableAnimations | `boolean` | `false` | Scale animation on emoji tap (mainly useful for embedded `EmojiSheetView`) |
|
|
353
367
|
| gestureEnabled | `boolean` | `true` | Allow swipe-to-dismiss gesture |
|
|
354
368
|
| backdropOpacity | `number` | `0.22` | Opacity of the backdrop behind the sheet |
|
|
355
369
|
| excludeEmojis | `string[]` | `[]` | Emoji IDs to hide from the picker |
|
|
@@ -377,7 +391,7 @@ Set via `categoryBarPosition: 'top'` or `categoryBarPosition: 'bottom'` in the o
|
|
|
377
391
|
|
|
378
392
|
| Prop | Type | Default | Description |
|
|
379
393
|
|-|-|-|-|
|
|
380
|
-
| theme | `EmojiSheetTheme \| 'dark' \| 'light'` | `'light'` | Visual theme |
|
|
394
|
+
| theme | `EmojiSheetTheme \| 'dark' \| 'light' \| 'system'` | `'light'` | Visual theme |
|
|
381
395
|
| translations | `EmojiSheetTranslations` | -- | Localized strings |
|
|
382
396
|
| snapPoints | `[number, number]` | `[0.5, 1.0]` | Sheet snap points |
|
|
383
397
|
| categoryBarPosition | `'top' \| 'bottom'` | `'top'` | Category bar placement |
|
|
@@ -388,6 +402,7 @@ Set via `categoryBarPosition: 'top'` or `categoryBarPosition: 'bottom'` in the o
|
|
|
388
402
|
| showRecents | `boolean` | `true` | Show recents section |
|
|
389
403
|
| enableSkinTones | `boolean` | `true` | Skin tone long-press |
|
|
390
404
|
| enableHaptics | `boolean` | `true` | Haptic feedback on interactions |
|
|
405
|
+
| enableAnimations | `boolean` | `false` | Scale animation on emoji tap (mainly useful for embedded `EmojiSheetView`) |
|
|
391
406
|
| excludeEmojis | `string[]` | `[]` | Emoji IDs to exclude |
|
|
392
407
|
| gestureEnabled | `boolean` | `true` | Swipe to dismiss |
|
|
393
408
|
| backdropOpacity | `number` | `0.22` | Backdrop opacity |
|
|
@@ -26,6 +26,7 @@ class EmojiGridAdapter(
|
|
|
26
26
|
var emojiTextSize: Float = 32f
|
|
27
27
|
var enableSkinTones: Boolean = true
|
|
28
28
|
var enableHaptics: Boolean = true
|
|
29
|
+
var enableAnimations: Boolean = false
|
|
29
30
|
|
|
30
31
|
sealed class ListItem {
|
|
31
32
|
data class Header(val title: String, val categoryKey: String) : ListItem()
|
|
@@ -119,6 +120,11 @@ class EmojiGridAdapter(
|
|
|
119
120
|
if (enableHaptics) {
|
|
120
121
|
view.performHapticFeedback(android.view.HapticFeedbackConstants.KEYBOARD_TAP)
|
|
121
122
|
}
|
|
123
|
+
if (enableAnimations) {
|
|
124
|
+
view.animate().scaleX(0.85f).scaleY(0.85f).setDuration(80).withEndAction {
|
|
125
|
+
view.animate().scaleX(1f).scaleY(1f).setDuration(80).start()
|
|
126
|
+
}.start()
|
|
127
|
+
}
|
|
122
128
|
onEmojiClick(item.emoji, item.id)
|
|
123
129
|
}
|
|
124
130
|
if (item.toneEnabled && enableSkinTones) {
|
|
@@ -67,6 +67,10 @@ class EmojiSheetContentView(
|
|
|
67
67
|
pickerView.enableHaptics = enable
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
fun updateEnableAnimations(enable: Boolean) {
|
|
71
|
+
pickerView.enableAnimations = enable
|
|
72
|
+
}
|
|
73
|
+
|
|
70
74
|
fun updateSearchPlaceholder(text: String) {
|
|
71
75
|
pickerView.searchPlaceholder = text
|
|
72
76
|
}
|
|
@@ -51,9 +51,27 @@ class EmojiSheetModule : Module() {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
AsyncFunction("clearRecents") {
|
|
55
|
+
appContext.reactContext
|
|
56
|
+
?.getSharedPreferences("emoji_sheet_frequently_used", android.content.Context.MODE_PRIVATE)
|
|
57
|
+
?.edit()?.clear()?.apply()
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
AsyncFunction("clearSkinTonePreferences") {
|
|
61
|
+
appContext.reactContext
|
|
62
|
+
?.getSharedPreferences("emoji_sheet_skin_tones", android.content.Context.MODE_PRIVATE)
|
|
63
|
+
?.edit()?.clear()?.apply()
|
|
64
|
+
}
|
|
65
|
+
|
|
54
66
|
View(EmojiSheetContentView::class) {
|
|
55
67
|
Prop("theme") { view: EmojiSheetContentView, theme: String? ->
|
|
56
|
-
|
|
68
|
+
val resolved = if (theme == "system") {
|
|
69
|
+
val uiMode = view.context.resources.configuration.uiMode and android.content.res.Configuration.UI_MODE_NIGHT_MASK
|
|
70
|
+
if (uiMode == android.content.res.Configuration.UI_MODE_NIGHT_YES) "dark" else "light"
|
|
71
|
+
} else {
|
|
72
|
+
theme ?: "light"
|
|
73
|
+
}
|
|
74
|
+
view.updateTheme(resolved)
|
|
57
75
|
}
|
|
58
76
|
Prop("categoryBarPosition") { view: EmojiSheetContentView, position: String? ->
|
|
59
77
|
view.updateCategoryBarPosition(position ?: "top")
|
|
@@ -79,6 +97,9 @@ class EmojiSheetModule : Module() {
|
|
|
79
97
|
Prop("enableHaptics") { view: EmojiSheetContentView, enable: Boolean? ->
|
|
80
98
|
view.updateEnableHaptics(enable ?: true)
|
|
81
99
|
}
|
|
100
|
+
Prop("enableAnimations") { view: EmojiSheetContentView, enable: Boolean? ->
|
|
101
|
+
view.updateEnableAnimations(enable ?: false)
|
|
102
|
+
}
|
|
82
103
|
Prop("searchPlaceholder") { view: EmojiSheetContentView, text: String? ->
|
|
83
104
|
if (text != null) view.updateSearchPlaceholder(text)
|
|
84
105
|
}
|
|
@@ -97,7 +118,15 @@ class EmojiSheetModule : Module() {
|
|
|
97
118
|
|
|
98
119
|
private fun presentSheet(options: Map<String, Any>, promise: Promise) {
|
|
99
120
|
val activity = appContext.currentActivity ?: return
|
|
100
|
-
val
|
|
121
|
+
val themeString = options["theme"] as? String ?: "light"
|
|
122
|
+
val isDark = when (themeString) {
|
|
123
|
+
"dark" -> true
|
|
124
|
+
"system" -> {
|
|
125
|
+
val uiMode = activity.resources.configuration.uiMode and android.content.res.Configuration.UI_MODE_NIGHT_MASK
|
|
126
|
+
uiMode == android.content.res.Configuration.UI_MODE_NIGHT_YES
|
|
127
|
+
}
|
|
128
|
+
else -> false
|
|
129
|
+
}
|
|
101
130
|
val density = activity.resources.displayMetrics.density
|
|
102
131
|
|
|
103
132
|
// Parse new options
|
|
@@ -109,6 +138,7 @@ class EmojiSheetModule : Module() {
|
|
|
109
138
|
val showRecents = options["showRecents"] as? Boolean ?: true
|
|
110
139
|
val enableSkinTones = options["enableSkinTones"] as? Boolean ?: true
|
|
111
140
|
val enableHaptics = options["enableHaptics"] as? Boolean ?: true
|
|
141
|
+
val enableAnimations = options["enableAnimations"] as? Boolean ?: false
|
|
112
142
|
val recentLimit = (options["recentLimit"] as? Number)?.toInt() ?: 30
|
|
113
143
|
val gestureEnabled = options["gestureEnabled"] as? Boolean ?: true
|
|
114
144
|
val backdropOpacity = (options["backdropOpacity"] as? Number)?.toFloat() ?: if (isDark) 0.4f else 0.22f
|
|
@@ -169,6 +199,7 @@ class EmojiSheetModule : Module() {
|
|
|
169
199
|
pickerView.showRecents = showRecents
|
|
170
200
|
pickerView.enableSkinTones = enableSkinTones
|
|
171
201
|
pickerView.enableHaptics = enableHaptics
|
|
202
|
+
pickerView.enableAnimations = enableAnimations
|
|
172
203
|
pickerView.recentLimit = recentLimit
|
|
173
204
|
pickerView.categoryBarPosition = categoryBarPosition
|
|
174
205
|
pickerView.categoryNames = categoryNames
|
|
@@ -80,6 +80,7 @@ class EmojiSheetUIView(context: Context) : LinearLayout(context) {
|
|
|
80
80
|
var showRecents: Boolean = true
|
|
81
81
|
var enableSkinTones: Boolean = true
|
|
82
82
|
var enableHaptics: Boolean = true
|
|
83
|
+
var enableAnimations: Boolean = false
|
|
83
84
|
var recentLimit: Int = 30
|
|
84
85
|
var categoryBarPosition: String = "top"
|
|
85
86
|
var categoryNames: Map<String, String>? = null
|
|
@@ -282,6 +283,7 @@ class EmojiSheetUIView(context: Context) : LinearLayout(context) {
|
|
|
282
283
|
gridAdapter.emojiTextSize = emojiSize
|
|
283
284
|
gridAdapter.enableSkinTones = enableSkinTones
|
|
284
285
|
gridAdapter.enableHaptics = enableHaptics
|
|
286
|
+
gridAdapter.enableAnimations = enableAnimations
|
|
285
287
|
gridLayoutManager.spanCount = columns
|
|
286
288
|
|
|
287
289
|
// Show/hide search
|
package/ios/EmojiGridView.swift
CHANGED
|
@@ -20,6 +20,7 @@ class EmojiGridView: UIView, UICollectionViewDataSource, UICollectionViewDelegat
|
|
|
20
20
|
}
|
|
21
21
|
var enableSkinTones: Bool = true
|
|
22
22
|
var enableHaptics: Bool = true
|
|
23
|
+
var enableAnimations: Bool = false
|
|
23
24
|
|
|
24
25
|
private lazy var selectionFeedback = UISelectionFeedbackGenerator()
|
|
25
26
|
private lazy var impactFeedbackMedium = UIImpactFeedbackGenerator(style: .medium)
|
|
@@ -238,6 +239,15 @@ class EmojiGridView: UIView, UICollectionViewDataSource, UICollectionViewDelegat
|
|
|
238
239
|
if enableHaptics {
|
|
239
240
|
selectionFeedback.selectionChanged()
|
|
240
241
|
}
|
|
242
|
+
if enableAnimations, let cell = collectionView.cellForItem(at: indexPath) {
|
|
243
|
+
UIView.animate(withDuration: 0.08, delay: 0, options: [.allowUserInteraction]) {
|
|
244
|
+
cell.transform = CGAffineTransform(scaleX: 0.85, y: 0.85)
|
|
245
|
+
} completion: { _ in
|
|
246
|
+
UIView.animate(withDuration: 0.08) {
|
|
247
|
+
cell.transform = .identity
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
241
251
|
let item = sections[indexPath.section].data[indexPath.item]
|
|
242
252
|
var emoji = item.emoji
|
|
243
253
|
if item.toneEnabled, let savedTone = UserDefaults.standard.string(forKey: "EmojiSkinTone_\(item.id)") {
|
|
@@ -77,6 +77,10 @@ class EmojiSheetContentView: ExpoView, EmojiSheetUIViewDelegate {
|
|
|
77
77
|
pickerView.enableHaptics = enable
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
func updateEnableAnimations(_ enable: Bool) {
|
|
81
|
+
pickerView.enableAnimations = enable
|
|
82
|
+
}
|
|
83
|
+
|
|
80
84
|
func updateSearchPlaceholder(_ text: String) {
|
|
81
85
|
pickerView.searchPlaceholder = text
|
|
82
86
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Pod::Spec.new do |s|
|
|
2
2
|
s.name = 'EmojiSheetModule'
|
|
3
|
-
s.version = '1.
|
|
3
|
+
s.version = '1.5.0'
|
|
4
4
|
s.summary = 'Native emoji picker bottom sheet for React Native'
|
|
5
5
|
s.description = 'A fully native iOS/Android emoji picker presented in a bottom sheet with search, skin tones, and theming support.'
|
|
6
6
|
s.author = ''
|
|
@@ -23,9 +23,27 @@ public class EmojiSheetModule: Module {
|
|
|
23
23
|
}
|
|
24
24
|
.runOnQueue(DispatchQueue.main)
|
|
25
25
|
|
|
26
|
+
AsyncFunction("clearRecents") {
|
|
27
|
+
UserDefaults.standard.removeObject(forKey: "EmojiSheet_FrequentlyUsed")
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
AsyncFunction("clearSkinTonePreferences") {
|
|
31
|
+
let defaults = UserDefaults.standard
|
|
32
|
+
let allKeys = defaults.dictionaryRepresentation().keys
|
|
33
|
+
for key in allKeys where key.hasPrefix("EmojiSkinTone_") {
|
|
34
|
+
defaults.removeObject(forKey: key)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
26
38
|
View(EmojiSheetContentView.self) {
|
|
27
39
|
Prop("theme") { (view, theme: String?) in
|
|
28
|
-
|
|
40
|
+
let resolved: String
|
|
41
|
+
if theme == "system" {
|
|
42
|
+
resolved = UITraitCollection.current.userInterfaceStyle == .dark ? "dark" : "light"
|
|
43
|
+
} else {
|
|
44
|
+
resolved = theme ?? "light"
|
|
45
|
+
}
|
|
46
|
+
view.updateTheme(resolved)
|
|
29
47
|
}
|
|
30
48
|
Prop("categoryBarPosition") { (view, position: String?) in
|
|
31
49
|
view.updateCategoryBarPosition(position ?? "top")
|
|
@@ -40,16 +58,19 @@ public class EmojiSheetModule: Module {
|
|
|
40
58
|
view.updateRecentLimit(limit ?? 30)
|
|
41
59
|
}
|
|
42
60
|
Prop("showSearch") { (view, show: Bool?) in
|
|
43
|
-
view.updateShowSearch(show ??
|
|
61
|
+
view.updateShowSearch(show ?? false)
|
|
44
62
|
}
|
|
45
63
|
Prop("showRecents") { (view, show: Bool?) in
|
|
46
|
-
view.updateShowRecents(show ??
|
|
64
|
+
view.updateShowRecents(show ?? false)
|
|
47
65
|
}
|
|
48
66
|
Prop("enableSkinTones") { (view, enable: Bool?) in
|
|
49
|
-
view.updateEnableSkinTones(enable ??
|
|
67
|
+
view.updateEnableSkinTones(enable ?? false)
|
|
50
68
|
}
|
|
51
69
|
Prop("enableHaptics") { (view, enable: Bool?) in
|
|
52
|
-
view.updateEnableHaptics(enable ??
|
|
70
|
+
view.updateEnableHaptics(enable ?? false)
|
|
71
|
+
}
|
|
72
|
+
Prop("enableAnimations") { (view, enable: Bool?) in
|
|
73
|
+
view.updateEnableAnimations(enable ?? false)
|
|
53
74
|
}
|
|
54
75
|
Prop("searchPlaceholder") { (view, text: String?) in
|
|
55
76
|
if let text { view.updateSearchPlaceholder(text) }
|
|
@@ -78,18 +99,28 @@ public class EmojiSheetModule: Module {
|
|
|
78
99
|
return
|
|
79
100
|
}
|
|
80
101
|
|
|
81
|
-
let
|
|
102
|
+
let themeString = options["theme"] as? String ?? "light"
|
|
103
|
+
let isDark: Bool
|
|
104
|
+
switch themeString {
|
|
105
|
+
case "dark":
|
|
106
|
+
isDark = true
|
|
107
|
+
case "system":
|
|
108
|
+
isDark = UITraitCollection.current.userInterfaceStyle == .dark
|
|
109
|
+
default:
|
|
110
|
+
isDark = false
|
|
111
|
+
}
|
|
82
112
|
|
|
83
113
|
// Parse new options
|
|
84
114
|
let snapPoints = (options["snapPoints"] as? [Double]) ?? [0.5, 1.0]
|
|
85
115
|
let columns = (options["columns"] as? Int) ?? 7
|
|
86
116
|
let emojiSize = options["emojiSize"] as? Double ?? 32
|
|
87
|
-
let showSearch = (options["showSearch"] as? Bool) ??
|
|
88
|
-
let showRecents = (options["showRecents"] as? Bool) ??
|
|
89
|
-
let enableSkinTones = (options["enableSkinTones"] as? Bool) ??
|
|
117
|
+
let showSearch = (options["showSearch"] as? Bool) ?? false
|
|
118
|
+
let showRecents = (options["showRecents"] as? Bool) ?? false
|
|
119
|
+
let enableSkinTones = (options["enableSkinTones"] as? Bool) ?? false
|
|
90
120
|
let enableHaptics = (options["enableHaptics"] as? Bool) ?? true
|
|
121
|
+
let enableAnimations = (options["enableAnimations"] as? Bool) ?? false
|
|
91
122
|
let recentLimit = (options["recentLimit"] as? Int) ?? 30
|
|
92
|
-
let gestureEnabled = (options["gestureEnabled"] as? Bool) ??
|
|
123
|
+
let gestureEnabled = (options["gestureEnabled"] as? Bool) ?? false
|
|
93
124
|
let backdropOpacity = options["backdropOpacity"] as? Double ?? (isDark ? 0.4 : 0.22)
|
|
94
125
|
let categoryBarPosition = (options["categoryBarPosition"] as? String) ?? "top"
|
|
95
126
|
let categoryNames = options["categoryNames"] as? [String: String]
|
|
@@ -153,6 +184,7 @@ public class EmojiSheetModule: Module {
|
|
|
153
184
|
pickerView.showRecents = showRecents
|
|
154
185
|
pickerView.enableSkinTones = enableSkinTones
|
|
155
186
|
pickerView.enableHaptics = enableHaptics
|
|
187
|
+
pickerView.enableAnimations = enableAnimations
|
|
156
188
|
pickerView.recentLimit = recentLimit
|
|
157
189
|
pickerView.categoryBarPosition = categoryBarPosition
|
|
158
190
|
pickerView.categoryNames = categoryNames
|
|
@@ -61,6 +61,9 @@ class EmojiSheetUIView: UIView,
|
|
|
61
61
|
var enableHaptics: Bool = true {
|
|
62
62
|
didSet { gridView.enableHaptics = enableHaptics }
|
|
63
63
|
}
|
|
64
|
+
var enableAnimations: Bool = false {
|
|
65
|
+
didSet { gridView.enableAnimations = enableAnimations }
|
|
66
|
+
}
|
|
64
67
|
var recentLimit: Int = 30
|
|
65
68
|
var categoryBarPosition: String = "top" {
|
|
66
69
|
didSet { if categoryBarPosition != oldValue { configureLayout() } }
|
|
@@ -49,6 +49,7 @@ function flattenOptions(options) {
|
|
|
49
49
|
if (options.showRecents != null) flat.showRecents = options.showRecents;
|
|
50
50
|
if (options.enableSkinTones != null) flat.enableSkinTones = options.enableSkinTones;
|
|
51
51
|
if (options.enableHaptics != null) flat.enableHaptics = options.enableHaptics;
|
|
52
|
+
if (options.enableAnimations != null) flat.enableAnimations = options.enableAnimations;
|
|
52
53
|
if (options.gestureEnabled != null) flat.gestureEnabled = options.gestureEnabled;
|
|
53
54
|
if (options.backdropOpacity != null) flat.backdropOpacity = options.backdropOpacity;
|
|
54
55
|
if (options.excludeEmojis) flat.excludeEmojis = options.excludeEmojis;
|
|
@@ -61,6 +62,12 @@ var _default = exports.default = {
|
|
|
61
62
|
},
|
|
62
63
|
dismiss() {
|
|
63
64
|
return NativeEmojiSheet.dismiss();
|
|
65
|
+
},
|
|
66
|
+
clearRecents() {
|
|
67
|
+
return NativeEmojiSheet.clearRecents();
|
|
68
|
+
},
|
|
69
|
+
clearSkinTonePreferences() {
|
|
70
|
+
return NativeEmojiSheet.clearSkinTonePreferences();
|
|
64
71
|
}
|
|
65
72
|
};
|
|
66
73
|
//# sourceMappingURL=EmojiSheetModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_expo","require","flattenOptions","options","flat","theme","backgroundColor","searchBarBackgroundColor","textColor","textSecondaryColor","accentColor","dividerColor","searchTextColor","placeholderTextColor","selectionColor","categoryIconColor","categoryActiveIconColor","categoryActiveBackgroundColor","handleColor","categoryBarBackgroundColor","translations","searchPlaceholder","noResultsText","categoryNames","snapPoints","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","gestureEnabled","backdropOpacity","excludeEmojis","NativeEmojiSheet","requireNativeModule","_default","exports","default","present","dismiss"],"sourceRoot":"../../src","sources":["EmojiSheetModule.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_expo","require","flattenOptions","options","flat","theme","backgroundColor","searchBarBackgroundColor","textColor","textSecondaryColor","accentColor","dividerColor","searchTextColor","placeholderTextColor","selectionColor","categoryIconColor","categoryActiveIconColor","categoryActiveBackgroundColor","handleColor","categoryBarBackgroundColor","translations","searchPlaceholder","noResultsText","categoryNames","snapPoints","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","enableAnimations","gestureEnabled","backdropOpacity","excludeEmojis","NativeEmojiSheet","requireNativeModule","_default","exports","default","present","dismiss","clearRecents","clearSkinTonePreferences"],"sourceRoot":"../../src","sources":["EmojiSheetModule.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ function EmojiSheetView({
|
|
|
19
19
|
showRecents,
|
|
20
20
|
enableSkinTones,
|
|
21
21
|
enableHaptics,
|
|
22
|
+
enableAnimations,
|
|
22
23
|
excludeEmojis,
|
|
23
24
|
...rest
|
|
24
25
|
}) {
|
|
@@ -39,6 +40,7 @@ function EmojiSheetView({
|
|
|
39
40
|
showRecents: showRecents,
|
|
40
41
|
enableSkinTones: enableSkinTones,
|
|
41
42
|
enableHaptics: enableHaptics,
|
|
43
|
+
enableAnimations: enableAnimations,
|
|
42
44
|
excludeEmojis: excludeEmojis,
|
|
43
45
|
searchPlaceholder: translations?.searchPlaceholder,
|
|
44
46
|
noResultsText: translations?.noResultsText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_expo","require","_jsxRuntime","NativeView","requireNativeView","EmojiSheetView","onEmojiSelected","theme","translations","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","excludeEmojis","rest","resolvedTheme","jsx","searchPlaceholder","noResultsText","categoryNames","nativeEvent","emoji"],"sourceRoot":"../../src","sources":["EmojiSheetView.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAyC,IAAAC,WAAA,GAAAD,OAAA;AAOzC,MAAME,UAA0D,GAC9D,IAAAC,uBAAiB,EAAC,YAAY,CAAC;AAElB,SAASC,cAAcA,CAAC;EACrCC,eAAe;EACfC,KAAK;EACLC,YAAY;EACZC,mBAAmB;EACnBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC,WAAW;EACXC,eAAe;EACfC,aAAa;EACbC,aAAa;EACb,GAAGC;AACgB,CAAC,EAAE;EACtB,MAAMC,aAAa,GAAG,
|
|
1
|
+
{"version":3,"names":["_expo","require","_jsxRuntime","NativeView","requireNativeView","EmojiSheetView","onEmojiSelected","theme","translations","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","enableAnimations","excludeEmojis","rest","resolvedTheme","jsx","searchPlaceholder","noResultsText","categoryNames","nativeEvent","emoji"],"sourceRoot":"../../src","sources":["EmojiSheetView.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAyC,IAAAC,WAAA,GAAAD,OAAA;AAOzC,MAAME,UAA0D,GAC9D,IAAAC,uBAAiB,EAAC,YAAY,CAAC;AAElB,SAASC,cAAcA,CAAC;EACrCC,eAAe;EACfC,KAAK;EACLC,YAAY;EACZC,mBAAmB;EACnBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC,WAAW;EACXC,eAAe;EACfC,aAAa;EACbC,gBAAgB;EAChBC,aAAa;EACb,GAAGC;AACgB,CAAC,EAAE;EACtB,MAAMC,aAAa,GAAG,OAAOb,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAGA,KAAK;;EAElE;EACA;EACA;;EAEA,oBACE,IAAAL,WAAA,CAAAmB,GAAA,EAAClB,UAAU;IAAA,GACLgB,IAAI;IACRZ,KAAK,EAAEa,aAAc;IACrBX,mBAAmB,EAAEA,mBAAoB;IACzCC,OAAO,EAAEA,OAAQ;IACjBC,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA,WAAY;IACzBC,eAAe,EAAEA,eAAgB;IACjCC,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCC,aAAa,EAAEA,aAAc;IAC7BI,iBAAiB,EAAEd,YAAY,EAAEc,iBAAkB;IACnDC,aAAa,EAAEf,YAAY,EAAEe,aAAc;IAC3CC,aAAa,EAAEhB,YAAY,EAAEgB,aAAc;IAC3ClB,eAAe,EAAEA,CAAC;MAAEmB;IAAY,CAAC,KAAK;MACpCnB,eAAe,CAACmB,WAAW,CAACC,KAAK,CAAC;IACpC;EAAE,CACH,CAAC;AAEN","ignoreList":[]}
|
|
@@ -45,6 +45,7 @@ function flattenOptions(options) {
|
|
|
45
45
|
if (options.showRecents != null) flat.showRecents = options.showRecents;
|
|
46
46
|
if (options.enableSkinTones != null) flat.enableSkinTones = options.enableSkinTones;
|
|
47
47
|
if (options.enableHaptics != null) flat.enableHaptics = options.enableHaptics;
|
|
48
|
+
if (options.enableAnimations != null) flat.enableAnimations = options.enableAnimations;
|
|
48
49
|
if (options.gestureEnabled != null) flat.gestureEnabled = options.gestureEnabled;
|
|
49
50
|
if (options.backdropOpacity != null) flat.backdropOpacity = options.backdropOpacity;
|
|
50
51
|
if (options.excludeEmojis) flat.excludeEmojis = options.excludeEmojis;
|
|
@@ -57,6 +58,12 @@ export default {
|
|
|
57
58
|
},
|
|
58
59
|
dismiss() {
|
|
59
60
|
return NativeEmojiSheet.dismiss();
|
|
61
|
+
},
|
|
62
|
+
clearRecents() {
|
|
63
|
+
return NativeEmojiSheet.clearRecents();
|
|
64
|
+
},
|
|
65
|
+
clearSkinTonePreferences() {
|
|
66
|
+
return NativeEmojiSheet.clearSkinTonePreferences();
|
|
60
67
|
}
|
|
61
68
|
};
|
|
62
69
|
//# sourceMappingURL=EmojiSheetModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModule","requireNativeModule","flattenOptions","options","flat","theme","backgroundColor","searchBarBackgroundColor","textColor","textSecondaryColor","accentColor","dividerColor","searchTextColor","placeholderTextColor","selectionColor","categoryIconColor","categoryActiveIconColor","categoryActiveBackgroundColor","handleColor","categoryBarBackgroundColor","translations","searchPlaceholder","noResultsText","categoryNames","snapPoints","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","gestureEnabled","backdropOpacity","excludeEmojis","NativeEmojiSheet","present","dismiss"],"sourceRoot":"../../src","sources":["EmojiSheetModule.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["NativeModule","requireNativeModule","flattenOptions","options","flat","theme","backgroundColor","searchBarBackgroundColor","textColor","textSecondaryColor","accentColor","dividerColor","searchTextColor","placeholderTextColor","selectionColor","categoryIconColor","categoryActiveIconColor","categoryActiveBackgroundColor","handleColor","categoryBarBackgroundColor","translations","searchPlaceholder","noResultsText","categoryNames","snapPoints","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","enableAnimations","gestureEnabled","backdropOpacity","excludeEmojis","NativeEmojiSheet","present","dismiss","clearRecents","clearSkinTonePreferences"],"sourceRoot":"../../src","sources":["EmojiSheetModule.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ export default function EmojiSheetView({
|
|
|
15
15
|
showRecents,
|
|
16
16
|
enableSkinTones,
|
|
17
17
|
enableHaptics,
|
|
18
|
+
enableAnimations,
|
|
18
19
|
excludeEmojis,
|
|
19
20
|
...rest
|
|
20
21
|
}) {
|
|
@@ -35,6 +36,7 @@ export default function EmojiSheetView({
|
|
|
35
36
|
showRecents: showRecents,
|
|
36
37
|
enableSkinTones: enableSkinTones,
|
|
37
38
|
enableHaptics: enableHaptics,
|
|
39
|
+
enableAnimations: enableAnimations,
|
|
38
40
|
excludeEmojis: excludeEmojis,
|
|
39
41
|
searchPlaceholder: translations?.searchPlaceholder,
|
|
40
42
|
noResultsText: translations?.noResultsText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["requireNativeView","jsx","_jsx","NativeView","EmojiSheetView","onEmojiSelected","theme","translations","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","excludeEmojis","rest","resolvedTheme","searchPlaceholder","noResultsText","categoryNames","nativeEvent","emoji"],"sourceRoot":"../../src","sources":["EmojiSheetView.tsx"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,MAAM;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOzC,MAAMC,UAA0D,GAC9DH,iBAAiB,CAAC,YAAY,CAAC;AAEjC,eAAe,SAASI,cAAcA,CAAC;EACrCC,eAAe;EACfC,KAAK;EACLC,YAAY;EACZC,mBAAmB;EACnBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC,WAAW;EACXC,eAAe;EACfC,aAAa;EACbC,aAAa;EACb,GAAGC;AACgB,CAAC,EAAE;EACtB,MAAMC,aAAa,GAAG,
|
|
1
|
+
{"version":3,"names":["requireNativeView","jsx","_jsx","NativeView","EmojiSheetView","onEmojiSelected","theme","translations","categoryBarPosition","columns","emojiSize","recentLimit","showSearch","showRecents","enableSkinTones","enableHaptics","enableAnimations","excludeEmojis","rest","resolvedTheme","searchPlaceholder","noResultsText","categoryNames","nativeEvent","emoji"],"sourceRoot":"../../src","sources":["EmojiSheetView.tsx"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,MAAM;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOzC,MAAMC,UAA0D,GAC9DH,iBAAiB,CAAC,YAAY,CAAC;AAEjC,eAAe,SAASI,cAAcA,CAAC;EACrCC,eAAe;EACfC,KAAK;EACLC,YAAY;EACZC,mBAAmB;EACnBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC,WAAW;EACXC,eAAe;EACfC,aAAa;EACbC,gBAAgB;EAChBC,aAAa;EACb,GAAGC;AACgB,CAAC,EAAE;EACtB,MAAMC,aAAa,GAAG,OAAOb,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAGA,KAAK;;EAElE;EACA;EACA;;EAEA,oBACEJ,IAAA,CAACC,UAAU;IAAA,GACLe,IAAI;IACRZ,KAAK,EAAEa,aAAc;IACrBX,mBAAmB,EAAEA,mBAAoB;IACzCC,OAAO,EAAEA,OAAQ;IACjBC,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA,WAAY;IACzBC,eAAe,EAAEA,eAAgB;IACjCC,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCC,aAAa,EAAEA,aAAc;IAC7BG,iBAAiB,EAAEb,YAAY,EAAEa,iBAAkB;IACnDC,aAAa,EAAEd,YAAY,EAAEc,aAAc;IAC3CC,aAAa,EAAEf,YAAY,EAAEe,aAAc;IAC3CjB,eAAe,EAAEA,CAAC;MAAEkB;IAAY,CAAC,KAAK;MACpClB,eAAe,CAACkB,WAAW,CAACC,KAAK,CAAC;IACpC;EAAE,CACH,CAAC;AAEN","ignoreList":[]}
|
|
@@ -3,6 +3,8 @@ export type { EmojiSheetResult };
|
|
|
3
3
|
declare const _default: {
|
|
4
4
|
present(options?: EmojiSheetPresentOptions): Promise<EmojiSheetResult>;
|
|
5
5
|
dismiss(): Promise<void>;
|
|
6
|
+
clearRecents(): Promise<void>;
|
|
7
|
+
clearSkinTonePreferences(): Promise<void>;
|
|
6
8
|
};
|
|
7
9
|
export default _default;
|
|
8
10
|
//# sourceMappingURL=EmojiSheetModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmojiSheetModule.d.ts","sourceRoot":"","sources":["../../src/EmojiSheetModule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAmB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"EmojiSheetModule.d.ts","sourceRoot":"","sources":["../../src/EmojiSheetModule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAmB,MAAM,0BAA0B,CAAC;AAiE5G,YAAY,EAAE,gBAAgB,EAAE,CAAC;;sBAGd,wBAAwB,GAAQ,OAAO,CAAC,gBAAgB,CAAC;eAG/D,OAAO,CAAC,IAAI,CAAC;oBAGR,OAAO,CAAC,IAAI,CAAC;gCAGD,OAAO,CAAC,IAAI,CAAC;;AAV3C,wBAaE"}
|
|
@@ -22,7 +22,7 @@ export type EmojiSheetTranslations = {
|
|
|
22
22
|
categoryNames?: Partial<Record<EmojiCategory, string>>;
|
|
23
23
|
};
|
|
24
24
|
export type EmojiSheetPresentOptions = {
|
|
25
|
-
theme?: EmojiSheetTheme | 'dark' | 'light';
|
|
25
|
+
theme?: EmojiSheetTheme | 'dark' | 'light' | 'system';
|
|
26
26
|
translations?: EmojiSheetTranslations;
|
|
27
27
|
snapPoints?: [number, number];
|
|
28
28
|
categoryBarPosition?: 'top' | 'bottom';
|
|
@@ -33,6 +33,7 @@ export type EmojiSheetPresentOptions = {
|
|
|
33
33
|
showRecents?: boolean;
|
|
34
34
|
enableSkinTones?: boolean;
|
|
35
35
|
enableHaptics?: boolean;
|
|
36
|
+
enableAnimations?: boolean;
|
|
36
37
|
gestureEnabled?: boolean;
|
|
37
38
|
backdropOpacity?: number;
|
|
38
39
|
excludeEmojis?: string[];
|
|
@@ -51,7 +52,7 @@ export type EmojiSelectionListener = (event: {
|
|
|
51
52
|
}) => void;
|
|
52
53
|
export type EmojiSheetViewProps = ViewProps & {
|
|
53
54
|
onEmojiSelected: (emoji: string) => void;
|
|
54
|
-
theme?: EmojiSheetTheme | 'dark' | 'light';
|
|
55
|
+
theme?: EmojiSheetTheme | 'dark' | 'light' | 'system';
|
|
55
56
|
translations?: EmojiSheetTranslations;
|
|
56
57
|
categoryBarPosition?: 'top' | 'bottom';
|
|
57
58
|
columns?: number;
|
|
@@ -61,6 +62,7 @@ export type EmojiSheetViewProps = ViewProps & {
|
|
|
61
62
|
showRecents?: boolean;
|
|
62
63
|
enableSkinTones?: boolean;
|
|
63
64
|
enableHaptics?: boolean;
|
|
65
|
+
enableAnimations?: boolean;
|
|
64
66
|
excludeEmojis?: string[];
|
|
65
67
|
};
|
|
66
68
|
export type EmojiSheetNativeViewProps = ViewProps & {
|
|
@@ -74,6 +76,7 @@ export type EmojiSheetNativeViewProps = ViewProps & {
|
|
|
74
76
|
showRecents?: boolean;
|
|
75
77
|
enableSkinTones?: boolean;
|
|
76
78
|
enableHaptics?: boolean;
|
|
79
|
+
enableAnimations?: boolean;
|
|
77
80
|
searchPlaceholder?: string;
|
|
78
81
|
noResultsText?: string;
|
|
79
82
|
categoryNames?: Partial<Record<EmojiCategory, string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmojiSheetModule.types.d.ts","sourceRoot":"","sources":["../../src/EmojiSheetModule.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,SAAS,GACT,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"EmojiSheetModule.types.d.ts","sourceRoot":"","sources":["../../src/EmojiSheetModule.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { EmojiSheetViewProps } from './EmojiSheetModule.types';
|
|
2
|
-
export default function EmojiSheetView({ onEmojiSelected, theme, translations, categoryBarPosition, columns, emojiSize, recentLimit, showSearch, showRecents, enableSkinTones, enableHaptics, excludeEmojis, ...rest }: EmojiSheetViewProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export default function EmojiSheetView({ onEmojiSelected, theme, translations, categoryBarPosition, columns, emojiSize, recentLimit, showSearch, showRecents, enableSkinTones, enableHaptics, enableAnimations, excludeEmojis, ...rest }: EmojiSheetViewProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=EmojiSheetView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmojiSheetView.d.ts","sourceRoot":"","sources":["../../src/EmojiSheetView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,eAAe,EACf,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,IAAI,EACR,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"EmojiSheetView.d.ts","sourceRoot":"","sources":["../../src/EmojiSheetView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,eAAe,EACf,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,GAAG,IAAI,EACR,EAAE,mBAAmB,2CA6BrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-native-sheet-emojis",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "A fully native emoji picker bottom sheet for React Native. Built with Swift and Kotlin for maximum performance. Features search with multilingual keywords, skin tones, frequently used tracking, theming, and configurable layout.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
package/src/EmojiSheetModule.ts
CHANGED
|
@@ -47,6 +47,7 @@ function flattenOptions(options: EmojiSheetPresentOptions): NativeOptions {
|
|
|
47
47
|
if (options.showRecents != null) flat.showRecents = options.showRecents;
|
|
48
48
|
if (options.enableSkinTones != null) flat.enableSkinTones = options.enableSkinTones;
|
|
49
49
|
if (options.enableHaptics != null) flat.enableHaptics = options.enableHaptics;
|
|
50
|
+
if (options.enableAnimations != null) flat.enableAnimations = options.enableAnimations;
|
|
50
51
|
if (options.gestureEnabled != null) flat.gestureEnabled = options.gestureEnabled;
|
|
51
52
|
if (options.backdropOpacity != null) flat.backdropOpacity = options.backdropOpacity;
|
|
52
53
|
if (options.excludeEmojis) flat.excludeEmojis = options.excludeEmojis;
|
|
@@ -57,6 +58,8 @@ function flattenOptions(options: EmojiSheetPresentOptions): NativeOptions {
|
|
|
57
58
|
declare class EmojiSheetModuleType extends NativeModule {
|
|
58
59
|
present(options: NativeOptions): Promise<EmojiSheetResult>;
|
|
59
60
|
dismiss(): Promise<void>;
|
|
61
|
+
clearRecents(): Promise<void>;
|
|
62
|
+
clearSkinTonePreferences(): Promise<void>;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
const NativeEmojiSheet = requireNativeModule<EmojiSheetModuleType>('EmojiSheet');
|
|
@@ -70,4 +73,10 @@ export default {
|
|
|
70
73
|
dismiss(): Promise<void> {
|
|
71
74
|
return NativeEmojiSheet.dismiss();
|
|
72
75
|
},
|
|
76
|
+
clearRecents(): Promise<void> {
|
|
77
|
+
return NativeEmojiSheet.clearRecents();
|
|
78
|
+
},
|
|
79
|
+
clearSkinTonePreferences(): Promise<void> {
|
|
80
|
+
return NativeEmojiSheet.clearSkinTonePreferences();
|
|
81
|
+
},
|
|
73
82
|
};
|
|
@@ -36,7 +36,7 @@ export type EmojiSheetTranslations = {
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
export type EmojiSheetPresentOptions = {
|
|
39
|
-
theme?: EmojiSheetTheme | 'dark' | 'light';
|
|
39
|
+
theme?: EmojiSheetTheme | 'dark' | 'light' | 'system';
|
|
40
40
|
translations?: EmojiSheetTranslations;
|
|
41
41
|
snapPoints?: [number, number];
|
|
42
42
|
categoryBarPosition?: 'top' | 'bottom';
|
|
@@ -47,6 +47,7 @@ export type EmojiSheetPresentOptions = {
|
|
|
47
47
|
showRecents?: boolean;
|
|
48
48
|
enableSkinTones?: boolean;
|
|
49
49
|
enableHaptics?: boolean;
|
|
50
|
+
enableAnimations?: boolean;
|
|
50
51
|
gestureEnabled?: boolean;
|
|
51
52
|
backdropOpacity?: number;
|
|
52
53
|
excludeEmojis?: string[];
|
|
@@ -60,7 +61,7 @@ export type EmojiSelectionListener = (event: { nativeEvent: { emoji: string } })
|
|
|
60
61
|
|
|
61
62
|
export type EmojiSheetViewProps = ViewProps & {
|
|
62
63
|
onEmojiSelected: (emoji: string) => void;
|
|
63
|
-
theme?: EmojiSheetTheme | 'dark' | 'light';
|
|
64
|
+
theme?: EmojiSheetTheme | 'dark' | 'light' | 'system';
|
|
64
65
|
translations?: EmojiSheetTranslations;
|
|
65
66
|
categoryBarPosition?: 'top' | 'bottom';
|
|
66
67
|
columns?: number;
|
|
@@ -70,6 +71,7 @@ export type EmojiSheetViewProps = ViewProps & {
|
|
|
70
71
|
showRecents?: boolean;
|
|
71
72
|
enableSkinTones?: boolean;
|
|
72
73
|
enableHaptics?: boolean;
|
|
74
|
+
enableAnimations?: boolean;
|
|
73
75
|
excludeEmojis?: string[];
|
|
74
76
|
};
|
|
75
77
|
|
|
@@ -84,6 +86,7 @@ export type EmojiSheetNativeViewProps = ViewProps & {
|
|
|
84
86
|
showRecents?: boolean;
|
|
85
87
|
enableSkinTones?: boolean;
|
|
86
88
|
enableHaptics?: boolean;
|
|
89
|
+
enableAnimations?: boolean;
|
|
87
90
|
searchPlaceholder?: string;
|
|
88
91
|
noResultsText?: string;
|
|
89
92
|
categoryNames?: Partial<Record<EmojiCategory, string>>;
|
package/src/EmojiSheetView.tsx
CHANGED
|
@@ -20,6 +20,7 @@ export default function EmojiSheetView({
|
|
|
20
20
|
showRecents,
|
|
21
21
|
enableSkinTones,
|
|
22
22
|
enableHaptics,
|
|
23
|
+
enableAnimations,
|
|
23
24
|
excludeEmojis,
|
|
24
25
|
...rest
|
|
25
26
|
}: EmojiSheetViewProps) {
|
|
@@ -41,6 +42,7 @@ export default function EmojiSheetView({
|
|
|
41
42
|
showRecents={showRecents}
|
|
42
43
|
enableSkinTones={enableSkinTones}
|
|
43
44
|
enableHaptics={enableHaptics}
|
|
45
|
+
enableAnimations={enableAnimations}
|
|
44
46
|
excludeEmojis={excludeEmojis}
|
|
45
47
|
searchPlaceholder={translations?.searchPlaceholder}
|
|
46
48
|
noResultsText={translations?.noResultsText}
|