diff options
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)); + } +}; +} |
