import { applyLang, avatarError, bindHeader, connectToApp, get, post, t, toast } from "../bd-static/shared.js?v=auth-bridge-2";
const config = {
title: "invite_become_BD",
list: "/team/bd/invite-bd-message-own",
invite: "/team/bd/invite-bd",
cancel: (id) => `/team/bd/invite-bd-cancel/${id}`
};
let invited = [];
let searchResult = [];
let selected = null;
let locked = false;
let appConnected = false;
bindHeader(config.title);
applyLang();
const input = document.getElementById("searchInput");
const clearButton = document.getElementById("clearButton");
input.placeholder = t("enter_user_id");
input.addEventListener("input", () => {
selected = null;
clearButton.hidden = !input.value;
if (!input.value.trim()) {
searchResult = [];
loadInvited();
return;
}
render();
});
input.addEventListener("keyup", (event) => {
if (event.key === "Enter") search();
});
document.getElementById("inviteButton").addEventListener("click", invite);
clearButton.addEventListener("click", () => {
input.value = "";
searchResult = [];
selected = null;
clearButton.hidden = true;
loadInvited();
});
init();
async function init() {
try {
await connectToApp();
appConnected = true;
await loadInvited();
} catch (error) {
toast(error.response?.errorMsg || error.message);
}
}
async function loadInvited() {
if (!appConnected) return;
try {
const response = await get(config.list);
invited = response.body || [];
render();
} catch (error) {
toast(error.response?.errorMsg || error.message);
}
}
async function search() {
if (locked || !appConnected) return;
const account = input.value.trim();
selected = null;
searchResult = [];
if (!account) {
await loadInvited();
return;
}
locked = true;
render();
try {
const response = await get(`/user/user-profile/open-search?account=${encodeURIComponent(account)}`);
if (response.status && response.body) searchResult = [{ userProfile: response.body }];
} catch (error) {
toast(error.response?.errorMsg || error.message);
} finally {
locked = false;
}
render();
}
function render() {
const list = document.getElementById("list");
const data = input.value.trim() ? searchResult : invited;
list.innerHTML = "";
document.getElementById("empty").hidden = data.length > 0;
data.forEach((item) => {
const user = item.userProfile || {};
const card = document.createElement("article");
card.className = "member-card";
card.innerHTML = `