fix: filter existing referrals from search and clear stale results

- Add-referral search: exclude users already in referrals list
- Both search debounces: clear stale results immediately when query
  changes to prevent previous results flashing during debounce
This commit is contained in:
Fringg
2026-03-29 04:07:31 +03:00
parent 222a1239ef
commit 48fe9235ff

View File

@@ -984,6 +984,7 @@ export default function AdminUserDetail() {
return; return;
} }
setReferrerSearchLoading(true); setReferrerSearchLoading(true);
setReferrerSearchResults([]);
let cancelled = false; let cancelled = false;
const timer = setTimeout(async () => { const timer = setTimeout(async () => {
try { try {
@@ -1028,6 +1029,7 @@ export default function AdminUserDetail() {
return; return;
} }
setAddReferralSearchLoading(true); setAddReferralSearchLoading(true);
setAddReferralSearchResults([]);
let cancelled = false; let cancelled = false;
const timer = setTimeout(async () => { const timer = setTimeout(async () => {
try { try {
@@ -3255,7 +3257,7 @@ export default function AdminUserDetail() {
{addReferralSearchQuery.length >= 2 && addReferralSearchResults.length > 0 && ( {addReferralSearchQuery.length >= 2 && addReferralSearchResults.length > 0 && (
<div className="absolute left-0 right-0 top-full z-50 mt-1 max-h-60 overflow-y-auto rounded-xl border border-dark-700 bg-dark-800 py-1 shadow-xl"> <div className="absolute left-0 right-0 top-full z-50 mt-1 max-h-60 overflow-y-auto rounded-xl border border-dark-700 bg-dark-800 py-1 shadow-xl">
{addReferralSearchResults {addReferralSearchResults
.filter((u) => u.id !== userId) .filter((u) => u.id !== userId && !referralsList.some((r) => r.id === u.id))
.map((u) => ( .map((u) => (
<button <button
key={u.id} key={u.id}
@@ -3276,7 +3278,9 @@ export default function AdminUserDetail() {
</div> </div>
</button> </button>
))} ))}
{addReferralSearchResults.filter((u) => u.id !== userId).length === 0 && ( {addReferralSearchResults.filter(
(u) => u.id !== userId && !referralsList.some((r) => r.id === u.id),
).length === 0 && (
<div className="px-3 py-4 text-center text-sm text-dark-500"> <div className="px-3 py-4 text-center text-sm text-dark-500">
{t('admin.users.detail.referrals.noUsersFound')} {t('admin.users.detail.referrals.noUsersFound')}
</div> </div>