diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-03-28 17:21:46 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-03-28 17:21:46 +0100 |
| commit | 86ea47342b4a87c25c3daac1fe87d784990d65d6 (patch) | |
| tree | 1420f87669c571352f47e11919c6f9eedca63fe7 /cli/component.hpp | |
| parent | 7906bd3ecbd7fa3855c9ee346911feada20438d3 (diff) | |
| download | kazbek-86ea47342b4a87c25c3daac1fe87d784990d65d6.tar.gz | |
katja: Make an interactive loop
Diffstat (limited to 'cli/component.hpp')
| -rw-r--r-- | cli/component.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
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 <ftxui/component/component_base.hpp> + +#include "katja/repository.hpp" + +namespace katja +{ +class UpdatesPage : public ftxui::ComponentBase +{ + std::vector<package_identifier> updatable; + +public: + explicit UpdatesPage(std::vector<package_identifier>&& updatable) + : updatable(std::move(updatable)) + { + } + + ftxui::Element Render() override + { + std::vector<std::shared_ptr<ftxui::Node>> 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)); + } +}; +} |
