Skip to content

Commit feb4e55

Browse files
committed
Fix the default value bug.
1 parent 2936e0e commit feb4e55

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

src/Field/TemplatedPageArray/TemplatedPageArrayField.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,14 @@ public function getDescription()
4141

4242
public function resolve($value, array $args, ResolveInfo $info)
4343
{
44+
if (isset($args[TemplatedSelectorType::ARGUMENT_NAME])) {
45+
$selector = $args[TemplatedSelectorType::ARGUMENT_NAME];
46+
} else {
47+
$selector = $this->defaultSelector;
48+
}
4449
Utils::moduleConfig()->currentTemplateContext = $this->template;
4550
$pages = \Processwire\wire('pages');
46-
return $pages->find($args[TemplatedSelectorType::ARGUMENT_NAME]);
51+
return $pages->find($selector);
4752
}
4853

4954
}

src/Field/Traits/OptionalSelectorTrait.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,25 @@
1010

1111
trait OptionalSelectorTrait {
1212

13+
protected $defaultSelector;
14+
1315
public function build(FieldConfig $config)
1416
{
1517
$defaultSelector = new SelectorType();
18+
$this->defaultSelector = $defaultSelector->serialize("");
1619
$config->addArgument(new InputField([
1720
'name' => SelectorType::ARGUMENT_NAME,
1821
'type' => new SelectorType(),
19-
'default' => $defaultSelector->serialize(""),
2022
]));
2123
}
2224

2325
public function resolve($value, array $args, ResolveInfo $info)
2426
{
25-
$selector = $args[SelectorType::ARGUMENT_NAME];
27+
if (isset($args[SelectorType::ARGUMENT_NAME])) {
28+
$selector = $args[SelectorType::ARGUMENT_NAME];
29+
} else {
30+
$selector = $this->defaultSelector;
31+
}
2632
$fieldName = $this->getName();
2733
$result = $value->$fieldName($selector);
2834
if ($result instanceof NullPage) return null;

src/Field/Traits/OptionalTemplatedSelectorTrait.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,25 @@
99

1010
trait OptionalTemplatedSelectorTrait {
1111

12+
protected $defaultSelector;
13+
1214
public function build(FieldConfig $config)
1315
{
14-
$defaultValue = new TemplatedSelectorType($this->template);
16+
$defaultSelector = new TemplatedSelectorType($this->template);
17+
$this->defaultSelector = $defaultSelector->serialize("");
1518
$config->addArgument(new InputField([
1619
'name' => TemplatedSelectorType::ARGUMENT_NAME,
1720
'type' => new TemplatedSelectorType($this->template),
18-
'default' => $defaultValue->serialize(""),
1921
]));
2022
}
2123

2224
public function resolve($value, array $args, ResolveInfo $info)
2325
{
24-
$selector = $args[TemplatedSelectorType::ARGUMENT_NAME];
26+
if (isset($args[TemplatedSelectorType::ARGUMENT_NAME])) {
27+
$selector = $args[TemplatedSelectorType::ARGUMENT_NAME];
28+
} else {
29+
$selector = $this->defaultSelector;
30+
}
2531
$fieldName = $this->getName();
2632
$result = $value->$fieldName($selector);
2733
if ($result instanceof NullPage) return null;

0 commit comments

Comments
 (0)