fix(frontend): address review feedback on admin rate-limit components

- Replace legacy Button import and lucide Search icon with non-legacy
  Button and Phosphor MagnifyingGlass icon in AdminUserSearch
- Trim search query before submitting in AdminUserSearch.handleSearch
- Always set selectedUser with fallback when user_email is missing in
  RateLimitManager direct lookup
- Replace placeholder string with empty string for missing userEmail in
  AdminUserGrantHistory
This commit is contained in:
Zamil Majdy
2026-03-26 20:36:51 +07:00
parent f82bcbdae5
commit 0042a71ac0
3 changed files with 12 additions and 16 deletions

View File

@@ -2,8 +2,8 @@
import { useState } from "react";
import { Input } from "@/components/__legacy__/ui/input";
import { Button } from "@/components/__legacy__/ui/button";
import { Search } from "lucide-react";
import { Button } from "@/components/atoms/Button/Button";
import { MagnifyingGlass } from "@phosphor-icons/react";
export interface AdminUserSearchProps {
/** Current search query value (controlled). Falls back to internal state if omitted. */
@@ -44,7 +44,7 @@ export function AdminUserSearch({
}
function handleSearch() {
onSearch(currentValue);
onSearch(currentValue.trim());
}
return (
@@ -58,10 +58,12 @@ export function AdminUserSearch({
/>
<Button
variant="outline"
size="small"
onClick={handleSearch}
disabled={isLoading || !currentValue.trim()}
loading={isLoading}
>
{isLoading ? "Searching..." : <Search className="h-4 w-4" />}
{isLoading ? "Searching..." : <MagnifyingGlass size={16} />}
</Button>
</div>
);

View File

@@ -61,12 +61,10 @@ export function RateLimitManager() {
throw new Error("Failed to fetch rate limit");
}
setRateLimitData(response.data);
if (response.data.user_email) {
setSelectedUser({
user_id: response.data.user_id,
user_email: response.data.user_email,
});
}
setSelectedUser({
user_id: response.data.user_id,
user_email: response.data.user_email ?? response.data.user_id,
});
} catch (error) {
console.error("Error fetching rate limit:", error);
const hint = looksLikeEmail(trimmed)

View File

@@ -151,15 +151,11 @@ export async function AdminUserGrantHistory({
<div className="flex items-center justify-end gap-2">
<RateLimitModal
userId={transaction.user_id}
userEmail={
transaction.user_email ?? "User Email wasn't attached"
}
userEmail={transaction.user_email ?? ""}
/>
<AdminAddMoneyButton
userId={transaction.user_id}
userEmail={
transaction.user_email ?? "User Email wasn't attached"
}
userEmail={transaction.user_email ?? ""}
currentBalance={transaction.current_balance}
defaultAmount={
transaction.transaction_type ===