// DragonX Wallet - ImGui Edition
// Copyright 2024-2026 The Hush Developers
// Released under the GPLv3

#pragma once

namespace dragonx {

class App;

namespace ui {

/**
 * @brief Render the Contacts tab (the address book, promoted out of Settings).
 *
 * Doubles as the future chat roster. Reads/writes the App-owned AddressBook
 * (App::addressBook()). Renders inline in the main content area; the add/edit
 * form is a modal popup layered over the tab.
 *
 * @param app Pointer to the app instance.
 */
void RenderContactsTab(App* app);

// True if an animated avatar frame was drawn since the previous call (clear-on-read). The main render
// loop uses this to keep drawing while an avatar animation plays, then idle when it stops.
bool ConsumeContactsAvatarAnimation();

// UI-sweep ONLY: open the revamped add/edit dialog on a seeded demo contact, in the given avatar
// mode (0 = badge, 1 = icon, 2 = image), so the sweep can capture the preview + avatar picker.
// Pair with ContactsSweepCloseDialog(). Do not use outside the sweep.
void ContactsSweepOpenEditDialog(int avatarMode);
void ContactsSweepCloseDialog();

} // namespace ui
} // namespace dragonx
