aboutsummaryrefslogtreecommitdiff
path: root/cli/component.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'cli/component.hpp')
-rw-r--r--cli/component.hpp33
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));
+ }
+};
+}