@props([ 'label' => 'Plot Area', 'name' => 'plot_area', 'type' => 'text', 'placeholder' => '', 'value' => '', 'step' => null, 'unitSelectEnabled' => false, 'unitName' => 'area_unit', 'selectedUnit' => old('area_unit', 'sqft'), 'id' => 'input-' . uniqid(), 'error' => null, // Added error prop ]) @php $unitSelectEnabled = filter_var($unitSelectEnabled, FILTER_VALIDATE_BOOLEAN); $unitId = 'unit-selector-' . $id; $unitMap = [ 'sqft' => 'Sq. Ft.', 'sqm' => 'Sq. Mtr.', ]; $dimensionMap = [ 'sqft' => 'Ft', 'sqm' => 'Mtr', ]; $selectedUnit = in_array($selectedUnit, ['sqft', 'sqm', 'acres']) ? $selectedUnit : 'sqft'; $inputType = 'text'; $isNumberField = $type === 'number'; // Get error message either from passed error prop or Laravel's error bag $errorMessage = $error ?? $errors->first($name); $unitErrorMessage = $errors->first($unitName); @endphp
{{ __($label) }} @if ($attributes->get('data-unit-dependent', false)) ( {{ $unitMap[$selectedUnit] }}) @endif
merge(['class' => '']) !!}> @if ($unitSelectEnabled) @endif
{{-- Client-side validation error --}} @if ($isNumberField) @endif {{-- Server-side validation error for main input --}} @if ($errorMessage) {{ $errorMessage }} @endif {{-- Server-side validation error for unit select --}} @if ($unitSelectEnabled && $unitErrorMessage) {{ $unitErrorMessage }} @endif
@if ($unitSelectEnabled || $isNumberField) @endif