import { applyLang, bindHeader, connectToApp, get, navigateTo, safeJsonArray, t, toast } from "../bd-static/shared.js"; const state = { card: null, kyc: null }; const bankCard = document.getElementById("bankCard"); const moreCards = document.getElementById("moreCards"); const kycCard = document.getElementById("kycCard"); const kycStatus = document.getElementById("kycStatus"); const kycMore = document.getElementById("kycMore"); const kycColon = document.getElementById("kycColon"); const query = new URLSearchParams(window.location.search); bindHeader("bank_cards_link"); applyLang(); moreCards.addEventListener("click", () => navigateTo("/bank-card")); kycMore.addEventListener("click", () => navigateTo("/KYC")); async function init() { try { await connectToApp(); const [cardsResult, kycResult] = await Promise.allSettled([loadCards(), loadKyc()]); [cardsResult, kycResult].forEach((result) => { if (result.status === "rejected") toast(result.reason?.response?.errorMsg || result.reason?.message); }); } catch (error) { toast(error.response?.errorMsg || error.message); } finally { render(); } } async function loadCards() { const response = await get("/wallet/bank-card/list"); const body = response.status && Array.isArray(response.body) ? response.body : []; state.card = body.find((item) => item.use) || null; } async function loadKyc() { const response = await get("/wallet/withdraw-info/list"); const body = response.status && Array.isArray(response.body) ? response.body : []; state.kyc = body.length > 0 ? { ...body[0], previewUrls: safeJsonArray(body[0].passportFrontUrl) } : null; } function render() { moreCards.hidden = !state.card; bankCard.innerHTML = state.card ? `
${t("category")}
${state.card.cardType || ""}
${t("card_number_label")}
${state.card.cardNo || ""}
${t("payee")}:
${state.card.payee || ""}
` : ` `; const addCard = document.getElementById("addCard"); if (addCard) addCard.addEventListener("click", () => navigateTo("/bank-card")); kycColon.hidden = !state.kyc; kycMore.hidden = !state.kyc; kycStatus.innerHTML = statusHtml(state.kyc?.status); kycCard.innerHTML = state.kyc ? kycDetails(state.kyc) : ` `; const completeKyc = document.getElementById("completeKyc"); if (completeKyc) completeKyc.addEventListener("click", () => navigateTo("/KYC")); const from = query.get("from"); const activeAction = query.get("activeAction"); if (from || activeAction) { sessionStorage.setItem("bankCardsBackQuery", JSON.stringify({ from, activeAction })); } } function statusHtml(status) { if (status === "PASS") return `${t("review_passed")}`; if (status === "NOT_PASS") return `${t("review_failed")}`; if (status === "PENDING") return `${t("awaiting_review")}`; return ""; } function kycDetails(item) { const images = (item.previewUrls || []).map((src) => ``).join(""); return `
${t("passport_id_card_title")}:
${images}
${t("contact_number")}:
${item.contactNumber || ""}
${t("other_description")}:
${item.otherDescription || ""}
`; } init();