@php $contactGroups = [ 'phones' => [ 'relation' => 'phoneNumbers', 'fields' => ['phone_number'], 'title' => __('Phone numbers'), 'placeholder' => __('Type a phone number and press Enter'), ], 'emails' => [ 'relation' => 'emailAddresses', 'fields' => ['email_address'], 'title' => __('Email addresses'), 'placeholder' => __('Type an email address and press Enter'), ], 'addresses' => [ 'relation' => 'postalAddresses', 'fields' => ['address_line_1', 'address_line_2', 'locality', 'administrative_area', 'postal_code', 'country_code'], 'title' => __('Postal addresses'), 'placeholder' => null, ], ]; $homeCountry = \App\Models\CompanySetting::countryCode(); $regionLists = \App\Support\AddressRegions::REGIONS; $countries = \App\Support\AddressRegions::COUNTRIES; $submittedContacts = old('contacts', []); @endphp
@foreach($contactGroups as $type => $group) @php $submittedGroup = $submittedContacts[$type] ?? null; if (is_array($submittedGroup) && array_key_exists('items', $submittedGroup)) { $rows = $submittedGroup['items']; } elseif (isset($person) && $person->relationLoaded($group['relation'])) { $rows = $person->{$group['relation']}->map(fn ($contact) => $contact->toArray())->all(); } else { $rows = []; } $items = []; $primarySourceIndex = $submittedGroup['primary'] ?? null; $primaryIndex = null; foreach ($rows as $sourceIndex => $row) { $fields = []; foreach ($group['fields'] as $field) { $fields[$field] = trim((string) ($row[$field] ?? '')); } $value = $type === 'addresses' ? \App\Models\PostalAddress::formatParts($fields) : $fields[$group['fields'][0]]; if ($value === '') { continue; } $itemIndex = count($items); $items[$itemIndex] = [ 'source_index' => $sourceIndex, 'id' => $row['id'] ?? null, 'fields' => $fields, 'value' => $value, 'is_primary' => ! empty($row['is_primary']), ]; if ((string) $sourceIndex === (string) $primarySourceIndex || $items[$itemIndex]['is_primary']) { $primarySourceIndex ??= $sourceIndex; $primaryIndex = (string) $itemIndex; } } if ($items !== [] && ! isset($primaryIndex)) { $primaryIndex = '0'; } @endphp
{{ $group['title'] }} @if($type === 'addresses')
@else
@endif
@foreach($items as $index => $item)
{{ $item['value'] }} @foreach($item['fields'] as $field => $fieldValue) @endforeach @if($type === 'addresses') @endif
@endforeach
@foreach($errors->getMessages() as $errorField => $messages) @if(str_starts_with($errorField, "contacts.{$type}.")) @foreach($messages as $message) {{ $message }} @endforeach @endif @endforeach
@endforeach