From a73b23ceddf01a2ea98f5ab9158a849c547e53c2 Mon Sep 17 00:00:00 2001 From: dingyongliang Date: Tue, 28 Feb 2023 16:51:24 +0800 Subject: [PATCH] * zin: refactor toolbar. --- zin/wg/toolbar/v1.php | 58 ++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 39 deletions(-) diff --git a/zin/wg/toolbar/v1.php b/zin/wg/toolbar/v1.php index 83fb312ec4..2d8ad4ba57 100644 --- a/zin/wg/toolbar/v1.php +++ b/zin/wg/toolbar/v1.php @@ -1,49 +1,29 @@ 'toolbar'); - - static $customProps = 'wrap,gap,items,btnProps,itemRender,beforeRender,afterRender,firstRender'; - - static function create($props) + protected function onBuildItem($item) { - $toolbar = new toolbar(); - foreach($props as $key => $value) $toolbar->prop($key, $value); - return $toolbar; + if (isset($item['type']) && $item['type'] === 'divider') return div()->addClass('toolbar-divider'); + + if(!($item instanceof item)) $item = item(set($item)); + return btn( + setClass('toolbar-item'), + inherit($item) + ); } - protected function buildItem($item) + protected function build() { - if (isset($item['type']) && $item['type'] === 'divider') return h5::div()->addClass('toolbar-divider'); - - return btn::create($item)->addClass('toolbar-item ghost'); - } - - protected function build($isPrint = false, $parent = null) - { - $builder = parent::build($isPrint, $parent); - - $jsRender = $this->prop('js-render'); - if ($jsRender) - { - $id = $this->prop('id'); - $this->props->remove('id'); - $builder->jsVar('options', $this->props->data); - $builder->js(<< { - const toolbar = new zui.Toolbar('#$id', options); - }); - END); - } - return $builder; + $items = $this->prop('items'); + return div( + setClass('toolbar'), + set($this->props->skip(array_keys(static::getDefinedProps()))), + is_array($items) ? array_map(array($this, 'onBuildItem'), $items) : null, + $this->children() + ); } }