mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-01-14 07:27:47 +00:00
fix(#112): error when config field of a recipe expects json
This commit is contained in:
parent
fd41e77e7d
commit
dac8064938
1 changed files with 21 additions and 2 deletions
|
|
@ -263,7 +263,19 @@ new class extends Component {
|
||||||
foreach ($this->configuration_template['custom_fields'] as $field) {
|
foreach ($this->configuration_template['custom_fields'] as $field) {
|
||||||
$fieldKey = $field['keyname'];
|
$fieldKey = $field['keyname'];
|
||||||
if (isset($this->configuration[$fieldKey])) {
|
if (isset($this->configuration[$fieldKey])) {
|
||||||
$configurationValues[$fieldKey] = $this->configuration[$fieldKey];
|
$value = $this->configuration[$fieldKey];
|
||||||
|
|
||||||
|
// For code fields, if the value is a JSON string and the original was an array, decode it
|
||||||
|
if ($field['field_type'] === 'code' && is_string($value)) {
|
||||||
|
$decoded = json_decode($value, true);
|
||||||
|
// If it's valid JSON and decodes to an array/object, use the decoded value
|
||||||
|
// Otherwise, keep the string as-is
|
||||||
|
if (json_last_error() === JSON_ERROR_NONE && (is_array($decoded) || is_object($decoded))) {
|
||||||
|
$value = $decoded;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$configurationValues[$fieldKey] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -626,7 +638,14 @@ HTML;
|
||||||
@foreach($configuration_template['custom_fields'] as $field)
|
@foreach($configuration_template['custom_fields'] as $field)
|
||||||
@php
|
@php
|
||||||
$fieldKey = $field['keyname'] ?? $field['key'] ?? $field['name'];
|
$fieldKey = $field['keyname'] ?? $field['key'] ?? $field['name'];
|
||||||
$currentValue = $configuration[$fieldKey] ?? '';
|
$rawValue = $configuration[$fieldKey] ?? ($field['default'] ?? '');
|
||||||
|
|
||||||
|
// For code fields, if the value is an array, JSON encode it
|
||||||
|
if ($field['field_type'] === 'code' && is_array($rawValue)) {
|
||||||
|
$currentValue = json_encode($rawValue, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||||
|
} else {
|
||||||
|
$currentValue = is_array($rawValue) ? '' : (string) $rawValue;
|
||||||
|
}
|
||||||
@endphp
|
@endphp
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
@if($field['field_type'] === 'author_bio')
|
@if($field['field_type'] === 'author_bio')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue