const [searchedResults, setSearchedResults] = useState<IUser[] | IPost[]>([]); const [refineResults, setRefineResults] = useState<IUser[]>([]); const fetchUser = async (id: string) => { try { const { data } = await getApi<IUser>(`/users/${id}`); return data; } catch (err) { console.error('Failed to fetch user:', err); } }; useEffect(() => { const fetchUsersForPosts = async () => { const userPromises = searchedResults .filter( (v): v is IPost => 'author' in v && typeof v.author === 'string', ) .map((v) => fetchUser(v.author as string)); const users = await Promise.all(userPromises); const newTest = [ ...searchedResults.filter((v): v is IUser => 'fullName' in v), ...users.filter((user): user is IUser => Boolean(user)), ]; setRefineResults(newTest); }; void fetchUsersForPosts(); }, [searchedResults]);