From 86ea47342b4a87c25c3daac1fe87d784990d65d6 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 28 Mar 2025 17:21:46 +0100 Subject: katja: Make an interactive loop --- cli/component.hpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 cli/component.hpp (limited to 'cli/component.hpp') diff --git a/cli/component.hpp b/cli/component.hpp new file mode 100644 index 0000000..a6c1f0d --- /dev/null +++ b/cli/component.hpp @@ -0,0 +1,33 @@ +#pragma once + +#include + +#include "katja/repository.hpp" + +namespace katja +{ +class UpdatesPage : public ftxui::ComponentBase +{ + std::vector updatable; + +public: + explicit UpdatesPage(std::vector&& updatable) + : updatable(std::move(updatable)) + { + } + + ftxui::Element Render() override + { + std::vector> lines; + + for (const auto& package_identifier : this->updatable) + { + auto line = ftxui::text(package_identifier.to_string()) | color(ftxui::Color::SkyBlue2); + lines.push_back(line); + } + ftxui::Element summary = ftxui::text(" Updates (" + std::to_string(lines.size()) + ")"); + + return ftxui::window(summary, ftxui::vbox(lines)); + } +}; +} -- cgit v1.2.3