پرش به مطلب اصلی

Dropdown Button

کامپوننت x-dropdown-button برای نمایش یک دکمه با منوی کشویی (dropdown) در صفحات Blade استفاده می‌شود. این کامپوننت امکان نمایش آیکن، عنوان، تعیین استایل و موقعیت منو و همچنین آیتم‌های قابل شخصی‌سازی با اکشن‌های مختلف را فراهم می‌کند. مناسب برای نمایش منوهای اکشن، تنظیمات، یا لیست گزینه‌ها به صورت جمع‌وجور و واکنش‌گرا است.


ویژگی‌ها

  • پشتیبانی از انواع واریانت و ظاهر دکمه (variant, appearance)
  • نمایش آیکن و عنوان روی دکمه با قابلیت تعیین موقعیت آیکن
  • تعیین اندازه و گردی گوشه‌های دکمه
  • امکان افزودن کلاس سفارشی به دکمه
  • تعیین موقعیت منوی کشویی نسبت به دکمه (پایین، بالا، راست، چپ)
  • تعیین حداکثر عرض منو و موقعیت افقی منو
  • بستن خودکار منو پس از کلیک روی آیتم (قابل تنظیم)
  • پشتیبانی از آیتم‌های منو با قابلیت لینک، آیکن، غیرفعال‌سازی، تاییدیه و ...
  • کاملاً قابل شخصی‌سازی و واکنش‌گرا

ورودی‌های کامپوننت

x-dropdown-button

نام پراپنوع دادهمقدار پیش‌فرضتوضیحات
variantstring'primary'رنگ دکمه
appearancestring'solid'ظاهر دکمه
titlestringnullمتن نمایشی روی دکمه
iconstringnullکلاس آیکن FontAwesome (مثلاً "fa-solid fa-ellipsis-vertical")
sizestring'md'اندازه دکمه
iconPositionstring'left'موقعیت آیکن (left, right)
iconRotationboolfalseچرخش آیکون با باز و بسته شدن منوی کشویی
roundedPositionstring'rounded'نوع گردی گوشه‌های دکمه
roundedSizestringnullاندازه گردی گوشه‌ها
elementClassstringnullکلاس CSS اضافی برای دکمه
closeOnClickbooltrueبستن منو پس از کلیک روی آیتم
idstringnullآیدی سفارشی برای دکمه
positionstring'bottom'موقعیت منو نسبت به دکمه (bottom, top, right, left)
menuPositionstring'left'موقعیت افقی منو (left, right)
maxWidthstring'300px'حداکثر عرض منوی کشویی

x-dropdown-item

نام پراپنوع دادهمقدار پیش‌فرضتوضیحات
idstringnullآیدی سفارشی برای آیتم
titlestringnullمتن نمایشی آیتم
hrefstringnullلینک مقصد آیتم
iconstringnullکلاس آیکن FontAwesome برای آیتم
iconPositionstring'right'موقعیت آیکن (left, right)
disabledboolfalseغیرفعال کردن آیتم
elementClassstringnullکلاس CSS اضافی برای آیتم
variantstring'light'واریانت آیتم (light, primary, secondary, danger, ...)
tooltipstringnullمتن راهنما هنگام هاور
disabledTooltipstringnullمتن راهنما هنگام غیرفعال بودن آیتم
targetLinkstring'_self'target برای لینک (مثلاً _blank)
confirmationboolfalseنمایش دیالوگ تایید قبل از اجرا
confirmationMessagestring'آیا از انجام این عملیات اطمینان دارید؟؟'پیام تاییدیه قبل از اجرا
confirmationTypestring'info'نوع تاییدیه (primary, danger, warning, success, info, info-2)
confirmationIconstring'fa-solid fa-question'آیکن تاییدیه
confirmButtonTextstringnullمتن دکمه تایید در دیالوگ تاییدیه
cancelButtonTextstringnullمتن دکمه انصراف در دیالوگ تاییدیه
confirmationConfirmCallbackstringnullتابع جاوااسکریپت برای اجرا پس از تایید
isActiveboolfalseفعال بودن آیتم (برای نمایش حالت انتخاب شده)
visibilitybooltrueنمایش/عدم نمایش آیتم در dropdown
methodstring'get'متد HTTP برای ارسال فرم (get, post, put, patch, delete)
نکات تکمیلی
  • مقدار confirmationType فقط یکی از مقادیر: primary, danger, warning, success, info, info-2 باشد.
  • مقدار iconPosition فقط left یا right باشد.
  • مقدار method فقط یکی از get, post, put, patch, delete باشد و پیش‌فرض get است.
  • اگر همزمان href و confirmationConfirmCallback مقداردهی شوند، خطا رخ می‌دهد و فقط یکی باید مقدار داشته باشد.
  • برای قرار دادن محتوای دلخواه بجای دکمه های پیشفرض در confirmation-modal از اسلات actions استفاده کنید
  • برای قرار دادن محتوای دلخواه در قسمت content در confirmation-modal از اسلات content استفاده کنید
  • در صورت استفاده از اسلات actions بجای نمایش دکمه های پیشفرض، برای ایجاد دکمه برای بستن confirmation-modal لازم است close-btn به عوان attribute آن المان قرار گیرد

نکات مهم
  • پراپ position فقط یکی از 'bottom', 'top', 'right', 'left' باشد.
  • پراپ menuPosition فقط 'left' یا 'right' باشد.
  • اگر closeOnClick برابر false باشد، منو پس از کلیک روی آیتم بسته نمی‌شود.
  • برای آیتم‌هایی که نیاز به تاییدیه دارند، پراپ‌های تاییدیه را مقداردهی کنید.
  • برای شخصی‌سازی بیشتر می‌توانید از اسلات‌ها و کلاس‌های سفارشی استفاده کنید.

مثال‌ها

نمونه پایه

<x-dropdown-button icon="fa-solid fa-ellipsis-vertical" closeOnClick="0" position="bottom" menuPosition="right">
<x-dropdown-item
title="حذف"
icon="fas fa-trash"
elementClass="bg-white"
variant="danger"
tooltip="حذف امکان‌پذیر است"
/>
<x-dropdown-item title="حذف" href="#" :confirmation="true" :disabled="true" disabledTooltip="حذف امکان‌پذیر نیست" />

<x-dropdown-item>
<x-switch-input name="toggle" onLabel="فعال" offLabel="غیرفعال" label="وضعیت" :labelVisibility="true" />
</x-dropdown-item>
</x-dropdown-button>