@props([ 'title' => '', 'name' => $attributes->wire('model')->value() ?? '', 'placeholder' => 'اختر من القائمة', 'options' => [], 'isrequired' => false, 'value' => null, 'hint' => '', 'mb' => 'mb-3', 'no_keys' => false, 'searchable' => true, 'searchPlaceholder' => 'بحث...', ]) @php $wireModel = null; $wireDirective = null; foreach ($attributes->getAttributes() as $attributeName => $attributeValue) { if (str_starts_with($attributeName, 'wire:model')) { $wireModel = $attributeValue; $wireDirective = $attributeName; break; } } $isLivewire = filled($wireModel); $isLive = $wireDirective && str_contains($wireDirective, '.live'); if (! $isLivewire && blank($name)) { throw new InvalidArgumentException('يجب تمرير wire:model أو name إلى مكوّن select.'); } $items = collect($options) ->map(function ($option, $optionValue) use ($no_keys): array { if (is_object($option)) { return [ 'value' => $option->id, 'label' => (string) $option->name, ]; } return [ 'value' => $no_keys ? $option : $optionValue, 'label' => (string) __((string) $option), ]; }) ->values() ->all(); $oldKey = $name ? preg_replace('/\[([^\]]+)\]/', '.$1', $name) : null; $initialValue = $isLivewire ? null : ($oldKey ? old($oldKey, $value) : $value); @endphp
@unless ($isLivewire) @endunless @if ($title) @endif
لا توجد خيارات
@if ($hint)
{{ $hint }}
@endif @error($name)
{{ $message }}
@enderror