mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-09-22 07:59:22 +03:00
parent
7d451a37b8
commit
ec9e45dad6
@ -114,7 +114,7 @@ export function DropdownSearch<C>(props: DropdownSearchProps<C>): ReactElement {
|
||||
search(e.target.value);
|
||||
setQuery(e.target.value);
|
||||
},
|
||||
[setQuery]
|
||||
[search, onChange]
|
||||
);
|
||||
|
||||
const dropdown = useMemo(() => {
|
||||
|
@ -37,14 +37,16 @@ interface InviteSearchProps<I extends string> {
|
||||
maxLength?: number;
|
||||
}
|
||||
|
||||
const getNicknameForShips = (groups: Groups, contacts: Rolodex): readonly [string[], Map<string, string[]>] => {
|
||||
const getNicknameForShips = (groups: Groups, contacts: Rolodex, selected: string[]): readonly [string[], Map<string, string[]>] => {
|
||||
const peerSet = new Set<string>();
|
||||
const nicknames = new Map<string, string[]>();
|
||||
_.forEach(groups, (group, path) => {
|
||||
if (group.members.size > 0) {
|
||||
const groupEntries = group.members.values();
|
||||
for (const member of groupEntries) {
|
||||
peerSet.add(member);
|
||||
if(!selected.includes(member)) {
|
||||
peerSet.add(member);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,15 +118,15 @@ export function ShipSearch<I extends string, V extends Value<I>>(
|
||||
|
||||
const inputIdx = useRef(initialValues[id].length);
|
||||
|
||||
const selected: string[] = values[id] ?? [];
|
||||
const selected: string[] = useMemo(() => values[id] ?? [], [values, id]);
|
||||
|
||||
const name = () => `${props.id}[${inputIdx.current}]`;
|
||||
|
||||
const pills = selected.slice(0, inputIdx.current);
|
||||
|
||||
const [peers, nicknames] = useMemo(
|
||||
() => getNicknameForShips(props.groups, props.contacts),
|
||||
[props.contacts, props.groups]
|
||||
() => getNicknameForShips(props.groups, props.contacts, selected),
|
||||
[props.contacts, props.groups, selected]
|
||||
);
|
||||
|
||||
const renderCandidate = useCallback(
|
||||
|
Loading…
Reference in New Issue
Block a user