diff --git a/src/JasonTable.php b/src/JasonTable.php
index 276891b..bef4652 100644
--- a/src/JasonTable.php
+++ b/src/JasonTable.php
@@ -20,7 +20,7 @@ class JasonTable
$this->beforePrintCell = $closure;
}
- public function getCustomCell(string $key, string $cell)
+ public function getCustomCell(string $key, string|null $cell)
{
if (is_array($this->beforePrintCell)) {
foreach ($this->beforePrintCell as $currentKey => $closure) {
diff --git a/src/ListJsonTable.php b/src/ListJsonTable.php
index 62b1d89..9f374b2 100644
--- a/src/ListJsonTable.php
+++ b/src/ListJsonTable.php
@@ -29,7 +29,7 @@ class ListJsonTable extends JasonTable
#[NoReturn] public function __construct(string $json)
{
- $this->beforePrintCell = false;
+ $this->beforePrintCell = [];
$this->json = $json;
$this->data = json_decode($this->json, true);
$this->baseUrl = $this->data['meta']['baseUrl'] ?? '';
@@ -86,7 +86,7 @@ class ListJsonTable extends JasonTable
}
foreach ($row as $key => $cell) {
if ($this->issetColumn($key) and $this->is_fillable($key)) {
- if($this->beforePrintCell and $cell !== null) {
+ if($this->beforePrintCell) {
$cell = $this->getCustomCell($key, $cell);
}
$this->html .= "
" . $cell . " | ";
@@ -276,10 +276,10 @@ class ListJsonTable extends JasonTable
if ($this->pagination) {
$options = [
'countItem' => $this->data['meta']['total'],
- 'perPage' => $this->data['meta']['perPage'],
- 'currentPage' => $this->data['meta']['currentPage'],
- 'baseUrl' => $this->baseUrl,
- 'prefix' => $this->data['meta']['paginationPrefix'],
+ 'perPage' => $this->data['meta']['perPage'] ?? 10,
+ 'currentPage' => $this->data['meta']['currentPage'] ?? 1,
+ 'baseUrl' => $this->baseUrl ?? '',
+ 'prefix' => $this->data['meta']['paginationPrefix'] ?? '/page',
];
$pagination = new Pagination($options);
$pagination->create();
diff --git a/src/ViewJsonTable.php b/src/ViewJsonTable.php
index 2721007..3d292da 100644
--- a/src/ViewJsonTable.php
+++ b/src/ViewJsonTable.php
@@ -13,9 +13,14 @@ class ViewJsonTable extends JasonTable
private array $dataJson;
public function __construct($json)
{
+ $this->beforePrintCell = [];
$this->json = $json;
$this->data = json_decode($this->json, true);
$this->dataJson = $this->data['data'];
+ $this->beforePrintHook = function () {
+ };
+ $this->afterPrintHook = function () {
+ };
}
public function beginTable(): void
@@ -34,7 +39,7 @@ class ViewJsonTable extends JasonTable
{
foreach ($this->data['meta']['rows'] as $key => $row){
if ($this->issetRow($key)){
- if ($this->beforePrintCell and $this->dataJson[$key] !== null) {
+ if ($this->beforePrintCell) {
$this->dataJson[$key] = $this->getCustomCell($key, $this->dataJson[$key]);
}
$this->html .= "" . $row . " | " . $this->dataJson[$key] . " |
";