AutosuggestAccountInput: improve types

dnd
Alex Gleason 2022-06-04 18:35:04 -05:00
rodzic 0ff1887fec
commit 318b9f0d3b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
3 zmienionych plików z 12 dodań i 7 usunięć

Wyświetl plik

@ -3,7 +3,7 @@ import { throttle } from 'lodash';
import React, { useState, useRef, useCallback, useEffect } from 'react';
import { accountSearch } from 'soapbox/actions/accounts';
import AutosuggestInput from 'soapbox/components/autosuggest_input';
import AutosuggestInput, { Suggestion } from 'soapbox/components/autosuggest_input';
import { useAppDispatch } from 'soapbox/hooks';
import type { Menu } from 'soapbox/components/dropdown_menu';
@ -59,8 +59,10 @@ const AutosuggestAccountInput: React.FC<IAutosuggestAccountInput> = ({
onChange(e);
};
const handleSelected = (_tokenStart: number, _lastToken: string | null, accountId: string) => {
onSelected(accountId);
const handleSelected = (_tokenStart: number, _lastToken: string | null, suggestion: Suggestion) => {
if (typeof suggestion === 'string' && suggestion[0] !== '#') {
onSelected(suggestion);
}
};
useEffect(() => {

Wyświetl plik

@ -3,7 +3,8 @@ import React from 'react';
import unicodeMapping from 'soapbox/features/emoji/emoji_unicode_mapping_light';
import { joinPublicPath } from 'soapbox/utils/static';
type Emoji = {
export type Emoji = {
id: string,
custom: boolean,
imageUrl: string,
native: string,

Wyświetl plik

@ -3,7 +3,7 @@ import { List as ImmutableList } from 'immutable';
import React from 'react';
import ImmutablePureComponent from 'react-immutable-pure-component';
import AutosuggestEmoji from 'soapbox/components/autosuggest_emoji';
import AutosuggestEmoji, { Emoji } from 'soapbox/components/autosuggest_emoji';
import Icon from 'soapbox/components/icon';
import AutosuggestAccount from 'soapbox/features/compose/components/autosuggest_account';
import { isRtl } from 'soapbox/rtl';
@ -15,6 +15,8 @@ type CursorMatch = [
token: string | null,
];
export type Suggestion = string | Emoji;
const textAtCursorMatchesToken = (str: string, caretPosition: number, searchTokens: string[]): CursorMatch => {
let word: string;
@ -45,7 +47,7 @@ interface IAutosuggestInput extends Pick<React.HTMLAttributes<HTMLInputElement>,
suggestions: ImmutableList<any>,
disabled?: boolean,
placeholder?: string,
onSuggestionSelected: (tokenStart: number, lastToken: string | null, suggestion: any) => void,
onSuggestionSelected: (tokenStart: number, lastToken: string | null, suggestion: Suggestion) => void,
onSuggestionsClearRequested: () => void,
onSuggestionsFetchRequested: (token: string) => void,
autoFocus: boolean,
@ -193,7 +195,7 @@ export default class AutosuggestInput extends ImmutablePureComponent<IAutosugges
this.input = c;
}
renderSuggestion = (suggestion: any, i: number) => {
renderSuggestion = (suggestion: Suggestion, i: number) => {
const { selectedSuggestion } = this.state;
let inner, key;