fix: hide blocked user content
This commit is contained in:
@@ -42,6 +42,10 @@ interface UserResult {
|
||||
interface UserSearchResponse {
|
||||
query: string;
|
||||
results: UserResult[];
|
||||
total: number;
|
||||
page: number;
|
||||
limit: number;
|
||||
total_pages: number;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -307,7 +311,11 @@ function SearchInner() {
|
||||
// User-search branch — strip the @ prefix server-side too.
|
||||
// Clear content data so we don't flash old content results.
|
||||
setData(null);
|
||||
const userParams = new URLSearchParams({ q: userQuery, limit: "20" });
|
||||
const userParams = new URLSearchParams({
|
||||
q: userQuery,
|
||||
page: String(currentPage),
|
||||
limit: "20",
|
||||
});
|
||||
fetch(`/api/search/users?${userParams.toString()}`, {
|
||||
signal: controller.signal,
|
||||
})
|
||||
@@ -319,7 +327,14 @@ function SearchInner() {
|
||||
.catch((err) => {
|
||||
if (err.name !== "AbortError") {
|
||||
setIsLoading(false);
|
||||
setUserData({ query: userQuery, results: [] });
|
||||
setUserData({
|
||||
query: userQuery,
|
||||
results: [],
|
||||
total: 0,
|
||||
page: 1,
|
||||
limit: 20,
|
||||
total_pages: 0,
|
||||
});
|
||||
}
|
||||
});
|
||||
return () => controller.abort();
|
||||
@@ -540,16 +555,40 @@ function SearchInner() {
|
||||
userData &&
|
||||
userData.results.length > 0 && (
|
||||
<>
|
||||
<p className="mb-4 text-sm text-muted-foreground">
|
||||
{userData.results.length}{" "}
|
||||
{userData.results.length === 1 ? "user" : "users"} matching
|
||||
“@{userQuery}”
|
||||
</p>
|
||||
{/* Match count + top pagination */}
|
||||
<div className="mb-4 flex items-center justify-between flex-wrap gap-3">
|
||||
<p className="text-sm text-muted-foreground">
|
||||
{userData.total.toLocaleString()}{" "}
|
||||
{userData.total === 1 ? "user" : "users"} matching “@
|
||||
{userQuery}”
|
||||
</p>
|
||||
{userData.total_pages > 1 && (
|
||||
<PaginationControls
|
||||
page={userData.page}
|
||||
totalPages={userData.total_pages}
|
||||
onPageChange={handlePageChange}
|
||||
compact
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 gap-3">
|
||||
{userData.results.map((u) => (
|
||||
<UserResultCard key={u.handle} user={u} />
|
||||
))}
|
||||
</div>
|
||||
|
||||
{/* Bottom pagination */}
|
||||
{userData.total_pages > 1 && (
|
||||
<div className="mt-8">
|
||||
<PaginationControls
|
||||
page={userData.page}
|
||||
totalPages={userData.total_pages}
|
||||
total={userData.total}
|
||||
onPageChange={handlePageChange}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user