emoji-picker-react 4.3.0 → 4.4.0-rc.1
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/config/config.d.ts +2 -0
- package/dist/config/useConfig.d.ts +2 -0
- package/dist/emoji-picker-react.cjs.development.js +24 -4
- package/dist/emoji-picker-react.cjs.development.js.map +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
- package/dist/emoji-picker-react.esm.js +24 -4
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/dist/predicates/isFunction.d.ts +1 -0
- package/package.json +1 -1
- package/src/config/config.ts +3 -0
- package/src/config/useConfig.ts +8 -0
- package/src/hooks/useDisallowedEmojis.ts +17 -4
- package/src/hooks/useFilter.ts +10 -9
- package/src/predicates/isFunction.ts +5 -0
package/dist/config/config.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GetEmojiUrl } from '../components/emoji/Emoji';
|
|
2
|
+
import { DataEmoji } from '../dataUtils/DataTypes';
|
|
2
3
|
import { EmojiClickData, EmojiStyle, SkinTones, SuggestionMode, Theme } from '../types/exposedTypes';
|
|
3
4
|
import { CategoriesConfig } from './categoryConfig';
|
|
4
5
|
export declare function mergeConfig(userConfig?: PickerConfig): PickerConfigInternal;
|
|
@@ -19,6 +20,7 @@ export declare type PickerConfigInternal = {
|
|
|
19
20
|
height: PickerDimensions;
|
|
20
21
|
width: PickerDimensions;
|
|
21
22
|
getEmojiUrl: GetEmojiUrl;
|
|
23
|
+
showEmoji: undefined | ((emoji: DataEmoji) => boolean);
|
|
22
24
|
};
|
|
23
25
|
export declare type PreviewConfig = {
|
|
24
26
|
defaultEmoji: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DataEmoji } from '../dataUtils/DataTypes';
|
|
1
2
|
import { EmojiClickData, EmojiStyle, SkinTones, SuggestionMode, Theme } from '../types/exposedTypes';
|
|
2
3
|
import { CategoriesConfig } from './categoryConfig';
|
|
3
4
|
import { PickerDimensions, PreviewConfig } from './config';
|
|
@@ -18,3 +19,4 @@ export declare function usePickerSizeConfig(): {
|
|
|
18
19
|
};
|
|
19
20
|
export declare function useEmojiVersionConfig(): string | null;
|
|
20
21
|
export declare function useGetEmojiUrlConfig(): (unified: string, style: EmojiStyle) => string;
|
|
22
|
+
export declare function useShowEmojiConfig(): undefined | ((emoji: DataEmoji) => boolean);
|
|
@@ -16799,6 +16799,7 @@ function basePickerConfig() {
|
|
|
16799
16799
|
event) {},
|
|
16800
16800
|
previewConfig: _extends({}, basePreviewConfig),
|
|
16801
16801
|
searchPlaceHolder: 'Search',
|
|
16802
|
+
showEmoji: undefined,
|
|
16802
16803
|
skinTonesDisabled: false,
|
|
16803
16804
|
suggestedEmojisMode: exports.SuggestionMode.FREQUENT,
|
|
16804
16805
|
theme: exports.Theme.LIGHT,
|
|
@@ -16917,6 +16918,12 @@ function useGetEmojiUrlConfig() {
|
|
|
16917
16918
|
|
|
16918
16919
|
return getEmojiUrl;
|
|
16919
16920
|
}
|
|
16921
|
+
function useShowEmojiConfig() {
|
|
16922
|
+
var _usePickerConfig15 = usePickerConfig(),
|
|
16923
|
+
showEmoji = _usePickerConfig15.showEmoji;
|
|
16924
|
+
|
|
16925
|
+
return showEmoji;
|
|
16926
|
+
}
|
|
16920
16927
|
|
|
16921
16928
|
function getDimension(dimensionConfig) {
|
|
16922
16929
|
return typeof dimensionConfig === 'number' ? dimensionConfig + "px" : dimensionConfig;
|
|
@@ -16965,24 +16972,37 @@ function useDebouncedState(initialValue, delay) {
|
|
|
16965
16972
|
return [state, debouncedSetState];
|
|
16966
16973
|
}
|
|
16967
16974
|
|
|
16975
|
+
function isFunction(value) {
|
|
16976
|
+
return typeof value === 'function';
|
|
16977
|
+
}
|
|
16978
|
+
|
|
16968
16979
|
function useDisallowedEmojis() {
|
|
16969
16980
|
var DisallowedEmojisRef = React.useRef({});
|
|
16970
16981
|
var emojiVersionConfig = useEmojiVersionConfig();
|
|
16982
|
+
var shouldShowEmoji = useShowEmojiConfig();
|
|
16971
16983
|
return React.useMemo(function () {
|
|
16972
16984
|
var emojiVersion = parseFloat("" + emojiVersionConfig);
|
|
16973
16985
|
|
|
16974
|
-
if (!emojiVersionConfig || Number.isNaN(emojiVersion)) {
|
|
16986
|
+
if ((!emojiVersionConfig || Number.isNaN(emojiVersion)) && !shouldShowEmoji) {
|
|
16975
16987
|
return DisallowedEmojisRef.current;
|
|
16976
16988
|
}
|
|
16977
16989
|
|
|
16978
16990
|
return allEmojis.reduce(function (disallowedEmojis, emoji) {
|
|
16991
|
+
if (isFunction(shouldShowEmoji) && !shouldShowEmoji(emoji)) {
|
|
16992
|
+
disallowEmoji();
|
|
16993
|
+
}
|
|
16994
|
+
|
|
16979
16995
|
if (addedInNewerVersion(emoji, emojiVersion)) {
|
|
16980
|
-
|
|
16996
|
+
disallowEmoji();
|
|
16981
16997
|
}
|
|
16982
16998
|
|
|
16983
16999
|
return disallowedEmojis;
|
|
17000
|
+
|
|
17001
|
+
function disallowEmoji() {
|
|
17002
|
+
disallowedEmojis[emojiUnified(emoji)] = true;
|
|
17003
|
+
}
|
|
16984
17004
|
}, DisallowedEmojisRef.current);
|
|
16985
|
-
}, [emojiVersionConfig]);
|
|
17005
|
+
}, [emojiVersionConfig, shouldShowEmoji]);
|
|
16986
17006
|
}
|
|
16987
17007
|
|
|
16988
17008
|
function addedInNewerVersion(emoji, supportedLevel) {
|
|
@@ -17989,7 +18009,7 @@ function useFocusCategoryNavigation() {
|
|
|
17989
18009
|
function useSetFilterRef() {
|
|
17990
18010
|
var filterRef = useFilterRef();
|
|
17991
18011
|
return function setFilter(setter) {
|
|
17992
|
-
if (
|
|
18012
|
+
if (isFunction(setter)) {
|
|
17993
18013
|
return setFilter(setter(filterRef.current));
|
|
17994
18014
|
}
|
|
17995
18015
|
|