fix: support search admin uses #795

This commit is contained in:
shuai
2024-04-25 18:12:58 +08:00
committed by dashuai
parent 4285968397
commit 988662c7a0
4 changed files with 30 additions and 1 deletions
@@ -65,6 +65,9 @@ const Index = ({
}
});
};
console.log('userName:', pageUsers.getUsers());
return (
<div
className={classNames(
@@ -50,6 +50,8 @@ const Index = ({ userName, onSendReply, onCancel, mode }) => {
});
};
console.log('userName:', pageUsers.getUsers());
return (
<div className="mb-2">
<div className="small mb-2">
+18 -1
View File
@@ -20,6 +20,7 @@
import React, { useEffect, useRef, useState, FC } from 'react';
import { Dropdown } from 'react-bootstrap';
import { useSearchUserStaff } from '@/services';
import * as Types from '@/common/interface';
interface IProps {
@@ -37,6 +38,19 @@ const Mentions: FC<IProps> = ({ children, pageUsers, onSelected }) => {
const [users, setUsers] = useState<Types.PageUser[]>([]);
const [cursor, setCursor] = useState(0);
const [isRequested, setRequestedState] = useState(false);
const { data: staffUserList = [] } = useSearchUserStaff(val);
const mapStaffUsers =
staffUserList
?.map((item) => ({
displayName: item.display_name,
userName: item.username,
}))
?.filter(
(item) =>
users.findIndex((user) => user.userName === item.userName) < 0,
) || [];
console.log('staffUserList:', staffUserList);
const searchUser = () => {
const element = dropdownRef.current?.children[0];
@@ -57,6 +71,9 @@ const Mentions: FC<IProps> = ({ children, pageUsers, onSelected }) => {
if (str.substring(str.lastIndexOf(' '), selectionStart).indexOf('@') < 0) {
return;
}
console.log('str111111:', str);
console.log('str2222:', str.substring(1));
setValue(str.substring(1));
if (!str.substring(1)) {
@@ -103,7 +120,7 @@ const Mentions: FC<IProps> = ({ children, pageUsers, onSelected }) => {
setValue('');
};
const filterData = val
? users.filter(
? [...users, ...mapStaffUsers].filter(
(item) =>
item.displayName?.indexOf(val) === 0 ||
item.userName?.indexOf(val) === 0,
+7
View File
@@ -96,3 +96,10 @@ export const useUserPermission = (
>
>([apiUrl, { params: { action } }], request.instance.get);
};
export const useSearchUserStaff = (name: string) => {
const apiUrl = name
? `/answer/api/v1/user/staff?username=${name}&page_size=10`
: null;
return useSWR<Type.User[]>(apiUrl, request.instance.get);
};