- {emojis.map((emoji, i) =>
{emoji.u} :{emoji.n}:
)}
+ key={getKey(item)}
+ >{render(item)}
)}
}
+const emojiFuncs = {
+ getText: (emoji: Emoji) => emoji.u,
+ getKey: (emoji: Emoji) => emoji.u,
+ render: (emoji: Emoji) => <>{emoji.u} :{emoji.n}:>,
+}
+
+export const EmojiAutocompleter = ({ params, ...rest }: AutocompleterProps) => {
+ const items = useFilteredEmojis((params.frozenQuery ?? params.query).slice(1), true)
+ return useAutocompleter({ params, ...rest, items, ...emojiFuncs })
+}
+
export const UserAutocompleter = ({ params }: AutocompleterProps) => {
return
Autocomplete {params.type} {params.query}
diff --git a/web/src/util/emoji/index.ts b/web/src/util/emoji/index.ts
index a209091..13468b5 100644
--- a/web/src/util/emoji/index.ts
+++ b/web/src/util/emoji/index.ts
@@ -16,7 +16,7 @@
import { useRef } from "react"
import data from "./data.json"
-interface Emoji {
+export interface Emoji {
u: string // Unicode codepoint
c: number // Category number
t: string // Emoji title