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

#pragma once

#include <string>
#include <cstdint>

namespace dragonx {

class App;

namespace ui {

/**
 * @brief Dialog showing a large QR code for an address
 */
class QRPopupDialog {
public:
    /**
     * @brief Show the dialog for an address
     * @param address The address to display as QR
     * @param label Optional label for the address
     */
    static void show(const std::string& address, const std::string& label = "");

    /**
     * @brief Render the dialog (call every frame)
     * @param app Pointer to app instance
     */
    static void render(App* app);

    /**
     * @brief Check if dialog is currently open
     */
    static bool isOpen();

    /**
     * @brief Close the dialog and cleanup
     */
    static void close();

private:
    static bool s_open;
    static std::string s_address;
    static std::string s_label;
    static uintptr_t s_qr_texture;
    static int s_qr_width;
    static int s_qr_height;
};

} // namespace ui
} // namespace dragonx
