Skip to content

Conversation

AydinHassan
Copy link
Member

@jtreminio this patch is an option also.

@codecov-io
Copy link

codecov-io commented Dec 18, 2019

Codecov Report

Merging #202 into master will increase coverage by 0.09%.
The diff coverage is 100%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master     #202      +/-   ##
============================================
+ Coverage     93.91%   94.01%   +0.09%     
  Complexity      516      516              
============================================
  Files            29       29              
  Lines          1561     1570       +9     
============================================
+ Hits           1466     1476      +10     
+ Misses           95       94       -1
Impacted Files Coverage Δ Complexity Δ
src/Builder/CliMenuBuilder.php 82.94% <100%> (+1.21%) 70 <1> (ø) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 771bc24...b031f5f. Read the comment docs.

@jtreminio
Copy link
Contributor

This fixes issue when style is set in only one spot:

<?php

use PhpSchool\CliMenu\CliMenu;
use PhpSchool\CliMenu\Builder\CliMenuBuilder;

require_once(__DIR__ . '/../vendor/autoload.php');

$menu = (new CliMenuBuilder)
    ->setBackgroundColour('black')
    ->setForegroundColour('green')
    ->setTitle('Color Test #1')
    ->addLineBreak()
    ->addSubMenu('Submenu #1', function (CliMenuBuilder $b) {
        $b->setTitle('Color Test #2')
            ->addLineBreak()
            ->addSubMenu('Submenu #2', function (CliMenuBuilder $b) {
                $b->setTitle('Color Test #3')
                    ->addLineBreak()
                    ->addItem('Foo #6', function (CliMenu $menu) {})
                    ->addItem('Foo #7', function (CliMenu $menu) {})
                    ->addLineBreak();
            })
            ->addItem('Foo #4', function (CliMenu $menu) {})
            ->addItem('Foo #5', function (CliMenu $menu) {})
            ->addLineBreak();
    })
    ->addItem('Foo #2', function (CliMenu $menu) {})
    ->addItem('Foo #3', function (CliMenu $menu) {})
    ->addLineBreak()
    ->build();

$menu->open();

but fails when style is overridden in a nested menu:

<?php

use PhpSchool\CliMenu\CliMenu;
use PhpSchool\CliMenu\Builder\CliMenuBuilder;

require_once(__DIR__ . '/../vendor/autoload.php');

$menu = (new CliMenuBuilder)
    ->setBackgroundColour('black')
    ->setForegroundColour('green')
    ->setTitle('Color Test #1')
    ->addLineBreak()
    ->addSubMenu('Submenu #1', function (CliMenuBuilder $b) {
        $b->setTitle('Color Test #2')
            ->setBackgroundColour('red')
            ->setForegroundColour('blue')
            ->addLineBreak()
            ->addSubMenu('Submenu #2', function (CliMenuBuilder $b) {
                $b->setTitle('Color Test #3')
                    ->addLineBreak()
                    ->addItem('Foo #6', function (CliMenu $menu) {})
                    ->addItem('Foo #7', function (CliMenu $menu) {})
                    ->addLineBreak();
            })
            ->addItem('Foo #4', function (CliMenu $menu) {})
            ->addItem('Foo #5', function (CliMenu $menu) {})
            ->addLineBreak();
    })
    ->addItem('Foo #2', function (CliMenu $menu) {})
    ->addItem('Foo #3', function (CliMenu $menu) {})
    ->addLineBreak()
    ->build();

$menu->open();

Peek 2019-12-19 13-13

@AydinHassan AydinHassan deleted the fix-propagate-styles branch December 20, 2019 07:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants