rust-okx 0.6.0

Async Rust client for the OKX v5 REST API
Documentation
use ratatui::prelude::*;
use ratatui::widgets::{Block, Borders, Paragraph, Tabs};

use crate::app::{App, Tab};
use crate::views;

pub fn render(f: &mut Frame, app: &App) {
    let area = f.area();
    let chunks = Layout::vertical([
        Constraint::Length(3),
        Constraint::Fill(1),
        Constraint::Length(1),
    ])
    .split(area);

    let selected = match app.tab {
        Tab::Account => 0,
        Tab::Chart => 1,
        Tab::Feed => 2,
    };
    let tabs = Tabs::new(vec!["[1] 账户余额", "[2] K 线图", "[3] 实时行情"])
        .block(Block::default().borders(Borders::ALL).title(" OKX CLI "))
        .highlight_style(Style::default().fg(Color::Yellow).bold())
        .select(selected);
    f.render_widget(tabs, chunks[0]);

    match app.tab {
        Tab::Account => views::account::render(f, chunks[1], app),
        Tab::Chart => views::chart::render(f, chunks[1], app),
        Tab::Feed => views::feed::render(f, chunks[1], app),
    }

    let footer =
        Paragraph::new("  q/Esc: 退出    Tab/→: 下一标签    ←: 上一标签    1/2/3: 直接跳转")
            .style(Style::default().fg(Color::DarkGray));
    f.render_widget(footer, chunks[2]);
}