Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f796a5a

Browse files
committed
Fix closing and reopening the menu
1 parent 3a24ae4 commit f796a5a

3 files changed

Lines changed: 29 additions & 1 deletion

File tree

‎composer.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"require": {
2222
"php" : ">=7.1",
2323
"beberlei/assert": "^2.4 | ^3",
24-
"php-school/terminal": "^0.2",
24+
"php-school/terminal": "^0.2.1",
2525
"ext-posix": "*"
2626
},
2727
"autoload" : {

‎examples/check-crazy.php‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
use PhpSchool\CliMenu\Builder\SplitItemBuilder;
4+
use PhpSchool\CliMenu\CliMenu;
5+
use PhpSchool\CliMenu\Builder\CliMenuBuilder;
6+
7+
require_once(__DIR__ . '/../vendor/autoload.php');
8+
9+
$itemCallable = function (CliMenu $menu) {
10+
echo $menu->getSelectedItem()->getText();
11+
};
12+
13+
$menu = (new CliMenuBuilder)
14+
->setTitle('Select a Language')
15+
->addSplitItem(function (SplitItemBuilder $b) use ($itemCallable) {
16+
$b->setGutter(5)
17+
->addCheckableItem('Rust', $itemCallable)
18+
->addCheckableItem('C++', $itemCallable)
19+
->addCheckableItem('Go', $itemCallable)
20+
->addCheckableItem('Java', $itemCallable)
21+
->addCheckableItem('C', $itemCallable)
22+
;
23+
})
24+
->build();
25+
26+
$menu->open();

‎src/CliMenu.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ protected function configureTerminal() : void
117117
protected function tearDownTerminal() : void
118118
{
119119
$this->terminal->restoreOriginalConfiguration();
120+
$this->terminal->enableCanonicalMode();
121+
$this->terminal->enableEchoBack();
120122
$this->terminal->enableCursor();
121123
}
122124

0 commit comments

Comments
 (0)