@props(['shape' => 'btn-main btn-primary']) @php $text = "登録・印刷"; $icon = "fa-solid fa-floppy-disk __fa-print"; $params = [ 'icon' => $icon, 'text' => $text, 'shape' => $shape ]; /* | 二重送信防止: EntryAction.disableAction() は [data-type-action] だけを無効化するため、 | この属性が無いと「登録ボタンが無効化されない=2回押せる」状態になる。 | 画面ごとの付与は漏れやすいので、保存ボタンのコンポーネント側で既定として付ける。 | | 呼び出し側が既に指定している場合は触らない。merge() は既定値を先頭に差し込むため、 | 無条件に呼ぶと「既に属性を持つ画面」で属性の並び順だけが変わり、 | 意味は同じなのに描画差分として出てしまう。 */ if (! $attributes->has('data-type-action')) { $attributes = $attributes->merge(['data-type-action' => true]); } @endphp @include('components.button', $params)