Дата публикации: 26.08.2024 в 10:36

Релиз MoonShine v2.21.0 “Gin Glow”

Danil ShutskyDanil Shutsky
0 комментария

Всех приветствую!

Вышел релиз 2.21.0 “Gin Glow”. 🌙 Расскажу какие нововведения произошли.

Новый компонент Div

Это просто тег div с компонентами внутри или без них, который подойдет для ситуаций, когда нужно добавить свой набор атрибутов и реализовать вывод без дополнительных классов и блоков.

Div::make([])

Подробности в PR

Нативный селект

Под капотом для визуализации селекта и дополнительных фишек мы используем библиотеку Choices.js. Однако при реактивности она создает ряд проблем (например, при изменении multiple select мы получаем только новое значение, а не все), которых нет в нативном режиме. Нативный селект подойдет для ситуаций, когда вам нужен простой селект, или если вы хотите его стилизовать под себя.

Нативный селект не поддерживает методы с поиском и другие функции.

Select::make()->native()

Подробности в PR

Сахар для Alpine.js

Ничего нового, просто удобный синтаксический сахар для взаимодействия с Alpine.js на бэке.

Block::make([
    Select::make('Type')
        ->native()
        ->options([
            1 => 'Платно',
            2 => 'Бесплатно',
        ])
        ->xModel(),

    Number::make('Стоимость', 'price')
        ->xModel()
        ->xIf('type', '1'),

    Number::make('Ставка', 'rate')
        ->xModel()
        ->xIf('type', '1')
        ->setValue(90),

    LineBreak::make(),

    Div::make()
        ->xShow('type', '1')
        ->xDisplay('"Result:" + (price * rate)')
    ,

])->xData([
    'price' => 0,
    'rate' => 90,
    'type' => '2',
]),

Мы получаем удобный способ указать x-data, передав массив, а также xShow для скрытия элемента или xIf для удаления его из DOM. В сочетании с новым компонентом Div будет удобно использовать метод xDisplay для вывода значений компонента Alpine.js.

Пример демонстрирует связывание элементов формы с объектом компонента Alpine.js и последующие манипуляции.

Подробности в PR

Рубрика BugBusters 🐛

  • Отступы для селекта в режиме тегов от @DissNik in PR
  • ПроблемаcolumnSelection при событии обновления строки таблицы от @lee-to in PR
  • Проблема реактивности в модалках быстрого создания записи для BelongsTo/BelongsToMany от@lee-to in PR
  • IПроблема генерации name у элементов формы внутри динамических таблиц от @lee-to in PR

https://github.com/moonshine-software/moonshine/compare/2.20.9...2.21.0

ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай