15 using namespace ftxui;
18 std::string first_name;
19 std::string last_name;
21 std::string phoneNumber;
24 Component input_first_name = Input(&first_name,
"first name");
25 Component input_last_name = Input(&last_name,
"last name");
30 Component input_password = Input(&password,
"password", password_option);
34 Component input_phone_number = Input(&phoneNumber,
"phone number");
35 input_phone_number |= CatchEvent([&](
Event event) {
36 return event.is_character() && !std::isdigit(event.
character()[0]);
38 input_phone_number |= CatchEvent([&](
Event event) {
39 return event.is_character() && phoneNumber.size() > 10;
43 auto component = Container::Vertical({
51 auto renderer = Renderer(component, [&] {
53 hbox(text(
" First name : "), input_first_name->Render()),
54 hbox(text(
" Last name : "), input_last_name->Render()),
55 hbox(text(
" Password : "), input_password->Render()),
56 hbox(text(
" Phone num : "), input_phone_number->Render()),
58 text(
"Hello " + first_name +
" " + last_name),
59 text(
"Your password is " + password),
60 text(
"Your phone number is " + phoneNumber),
65 auto screen = ScreenInteractive::TerminalOutput();
66 screen.Loop(renderer);