@truthandsystems/emoji-picker-react
Version:
Emoji Picker component for React Applications on the web
35 lines (26 loc) • 966 B
text/typescript
import React from 'react';
import { MouseDownEvent } from './config';
export type MutableConfig = {
onEmojiClick?: MouseDownEvent;
onReactionClick?: MouseDownEvent;
};
export const MutableConfigContext = React.createContext<
React.MutableRefObject<MutableConfig>
>({} as React.MutableRefObject<MutableConfig>);
export function useMutableConfig(): React.MutableRefObject<MutableConfig> {
const mutableConfig = React.useContext(MutableConfigContext);
return mutableConfig;
}
export function useDefineMutableConfig(
config: MutableConfig
): React.MutableRefObject<MutableConfig> {
const MutableConfigRef = React.useRef<MutableConfig>({
onEmojiClick: config.onEmojiClick || emptyFunc,
onReactionClick: config.onReactionClick || config.onEmojiClick
});
React.useEffect(() => {
MutableConfigRef.current.onEmojiClick = config.onEmojiClick || emptyFunc;
}, [config.onEmojiClick]);
return MutableConfigRef;
}
function emptyFunc() {}