16 using namespace ftxui;
19 std::string first_name;
20 std::string last_name;
22 std::string phoneNumber;
25 Component input_first_name = Input(&first_name,
"first name");
26 Component input_last_name = Input(&last_name,
"last name");
29 InputOption password_option;
30 password_option.password =
true;
31 Component input_password = Input(&password,
"password", password_option);
35 InputOption phone_number_option;
36 phone_number_option.multiline =
false;
38 Input(&phoneNumber,
"phone number", phone_number_option);
40 input_phone_number |= CatchEvent([&](Event event) {
41 return event.is_character() && !std::isdigit(event.character()[0]);
43 input_phone_number |= CatchEvent([&](Event event) {
44 return event.is_character() && phoneNumber.size() > 10;
48 auto component = Container::Vertical({
56 auto renderer = Renderer(component, [&] {
58 hbox(text(
" First name : "), input_first_name->Render()),
59 hbox(text(
" Last name : "), input_last_name->Render()),
60 hbox(text(
" Password : "), input_password->Render()),
61 hbox(text(
" Phone num : "), input_phone_number->Render()),
63 text(
"Hello " + first_name +
" " + last_name),
64 text(
"Your password is " + password),
65 text(
"Your phone number is " + phoneNumber),
70 auto screen = App::TerminalOutput();
71 screen.Loop(renderer);