|
6 | 6 | use Loki\AdminComponents\Component\Grid\GridRepository; |
7 | 7 | use Loki\AdminComponents\Component\Grid\GridViewModel; |
8 | 8 | use Loki\AdminComponents\Form\Field\Field; |
| 9 | +use Loki\AdminComponents\Form\Field\FieldType\EntitySelectInterface; |
| 10 | +use Loki\AdminComponents\Form\Field\FieldTypeInterface; |
9 | 11 | use Loki\AdminComponents\Grid\Column\Column; |
10 | 12 | use Loki\Components\Component\Component; |
11 | | -use Loki\Components\Component\ComponentContext; |
12 | 13 | use Magento\Framework\App\ObjectManager; |
| 14 | +use Magento\Framework\DataObject; |
13 | 15 | use Magento\Framework\View\Element\AbstractBlock; |
14 | 16 | use Magento\Framework\View\Element\Block\ArgumentInterface; |
15 | 17 | use Magento\Framework\View\Element\Template; |
@@ -54,18 +56,36 @@ public function getColumns(): array |
54 | 56 | }); |
55 | 57 | } |
56 | 58 |
|
57 | | - public function getCurrentItem() |
| 59 | + public function getCurrentItem(): ?DataObject |
58 | 60 | { |
59 | | - $currentId = 1; |
60 | | - $currentItem = $this->getGridViewModel()->getCurrentItem($currentId); |
61 | | - return $currentItem; |
| 61 | + $items = $this->getGridViewModel()->getValue(); |
| 62 | + if (empty($items)) { |
| 63 | + return null; |
| 64 | + } |
| 65 | + |
| 66 | + $item = array_shift($items); |
| 67 | + if (false === $item instanceof DataObject) { |
| 68 | + return null; |
| 69 | + } |
| 70 | + |
| 71 | + return $item; |
| 72 | + } |
| 73 | + |
| 74 | + public function getFieldType(): FieldTypeInterface|EntitySelectInterface |
| 75 | + { |
| 76 | + return $this->getField()->getFieldType(); |
62 | 77 | } |
63 | 78 |
|
64 | 79 | public function getJsData(): array |
65 | 80 | { |
| 81 | + $item = $this->getCurrentItem(); |
| 82 | + |
66 | 83 | return [ |
67 | 84 | 'ajaxUrl' => $this->getAjaxUrl(), |
68 | 85 | 'valueCode' => $this->getValueCode(), |
| 86 | + 'idField' => $this->getFieldType()->getIdField(), |
| 87 | + 'previewValue' => $this->getFieldType()->getPreviewValue($item), |
| 88 | + 'previewTemplate' => $this->getFieldType()->getPreviewTemplate(), |
69 | 89 | ]; |
70 | 90 | } |
71 | 91 |
|
|
0 commit comments