// DragonX Wallet - ImGui Edition
// Copyright 2024-2026 The Hush Developers
// Released under the GPLv3
//
// Shared rendering components used by every balance-tab layout (the animated hero, the address
// list, the recent-transactions strip, the sync bar) plus the balance-lerp animation state.
// Extracted from balance_tab.cpp so the layouts can be split into their own files later.

#pragma once

#include "imgui.h"

namespace dragonx {
class App;
namespace ui {

// Animated balance display values — lerp toward the wallet's real balances each frame. Defined in
// balance_tab.cpp (the lerp is advanced by UpdateBalanceLerp), shared with the components.
extern double s_dispTotal;
extern double s_dispShielded;
extern double s_dispTransparent;
extern double s_dispUnconfirmed;
// True while an async new-address generation is in flight.
extern bool s_generating_z_address;

void UpdateBalanceLerp(App* app);
void RenderCompactHero(App* app, ImDrawList* dl, float availW, float hs, float vs,
                       float heroHeightOverride = -1.0f);
void RenderSharedAddressList(App* app, float listH, float availW, float glassRound, float hs, float vs,
                             float reserveBelow = 0.0f);
void RenderSharedRecentTx(App* app, float recentH, float availW, float hs, float vs);
void RenderSyncBar(App* app, ImDrawList* dl, float vs);

} // namespace ui
} // namespace dragonx
