Skip to content

feat(ActionSheet): add slotProps for iosCloseItem and deprecate mode="cancel" and isCancelItem#9307

Merged
EldarMuhamethanov merged 4 commits intomasterfrom
e.muhamethanov/8512/action-sheet-add-slot-props
Dec 18, 2025
Merged

feat(ActionSheet): add slotProps for iosCloseItem and deprecate mode="cancel" and isCancelItem#9307
EldarMuhamethanov merged 4 commits intomasterfrom
e.muhamethanov/8512/action-sheet-add-slot-props

Conversation

@EldarMuhamethanov
Copy link
Contributor


  • Unit-тесты
  • Документация фичи
  • Release notes

Описание

Рефакторинг компонентов ActionSheet и ActionSheetItem для упрощения работы с кнопкой "Отмена" на iOS.

Вместо использования устаревших пропсов mode="cancel" и isCancelItem в ActionSheetItem, теперь рекомендуется использовать компонент ActionSheetDefaultIosCloseItem или передавать пропсы через slotProps.iosCloseItem в ActionSheet.

Изменения сохраняют обратную совместимость: старый API продолжает работать, но показывает предупреждения об устаревании.

Изменения

ActionSheetItem

  • Добавлены deprecation warnings для mode="cancel" и isCancelItem (Since 8.0.0, будет удалено в VKUI v10)
  • Добавлена поддержка определения cancel item через data-атрибут data-action-sheet-cancel-item
  • Обновлена логика применения стилей: modeCancel применяется как для mode="cancel", так и для элементов с data-action-sheet-cancel-item
  • Обновлена логика применения weight="2" для cancel items на iOS

ActionSheetDefaultIosCloseItem

  • Создан отдельный CSS модуль со стилями для кнопки отмены (перенесены из .modeCancel)
  • Компонент больше не использует mode="cancel" и isCancelItem, вместо этого использует data-атрибут data-action-sheet-cancel-item
  • Экспортирован тип ActionSheetDefaultIosCloseItemProps для типизации

ActionSheet

  • Добавлена поддержка slotProps.iosCloseItem для передачи пропсов в ActionSheetDefaultIosCloseItem

Документация

  • Обновлена документация в action-sheet.mdx:
    • Добавлены предупреждения об устаревании для mode="cancel" и isCancelItem
    • Добавлен раздел ActionSheetDefaultIosCloseItem с описанием и примерами
    • Добавлен пример использования slotProps.iosCloseItem

Тесты

  • Добавлены тесты для deprecation warnings
  • Добавлены тесты для определения cancel item через data-атрибут
  • Добавлены тесты для ActionSheetDefaultIosCloseItem и slotProps.iosCloseItem

Release notes

Улучшения

  • ActionSheet: добавлена поддержка slotProps.iosCloseItem для упрощения локализации кнопки "Отмена"
    Теперь можно передавать пропсы напрямую в ActionSheetDefaultIosCloseItem без необходимости создавать обёртку:

    <ActionSheet
      slotProps={{
        iosCloseItem: {
          children: i18n("cancel"),
        },
      }}
    />
  • ActionSheetItem: Свойства mode="cancel" и isCancelItem отмечены как устаревшие. Вместо этого используйте компонент ActionSheetDefaultIosCloseItem.

@EldarMuhamethanov EldarMuhamethanov requested a review from a team as a code owner December 16, 2025 13:43
@github-actions
Copy link
Contributor

github-actions bot commented Dec 16, 2025

size-limit report 📦

Path Size
JS 393.91 KB (+0.06% 🔺)
JS (gzip) 120.86 KB (+0.06% 🔺)
JS (brotli) 100.05 KB (+0.05% 🔺)
JS import Div (tree shaking) 811 B (0%)
CSS 370.36 KB (+0.03% 🔺)
CSS (gzip) 45.9 KB (+0.03% 🔺)
CSS (brotli) 36.37 KB (+0.13% 🔺)

@github-actions
Copy link
Contributor

github-actions bot commented Dec 16, 2025

e2e tests

⚠️ Some screenshots were failed. See Playwright Report.

Playwright Report

@github-actions
Copy link
Contributor

github-actions bot commented Dec 16, 2025

📊 Найдены изменения в собранных файлах: Отчет

Commit 47d6bf7

@github-actions
Copy link
Contributor

github-actions bot commented Dec 16, 2025

👀 Docs deployed

📦 Package ✅

yarn add @vkontakte/vkui@https://development.s3.prodcloud.vk.team/pull/9307/47d6bf7e0ee857362423d7e30466cbc19277be92/pkg/@vkontakte/vkui/_pkg.tgz

Commit 47d6bf7

@codecov
Copy link

codecov bot commented Dec 16, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.01%. Comparing base (78acf8c) to head (47d6bf7).
⚠️ Report is 6 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #9307   +/-   ##
=======================================
  Coverage   95.01%   95.01%           
=======================================
  Files         416      417    +1     
  Lines       11225    11236   +11     
  Branches     4224     4229    +5     
=======================================
+ Hits        10665    10676   +11     
  Misses        560      560           
Flag Coverage Δ
unittests 95.01% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@inomdzhon inomdzhon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

inomdzhon
inomdzhon previously approved these changes Dec 17, 2025
@EldarMuhamethanov EldarMuhamethanov merged commit 5f5f677 into master Dec 18, 2025
51 of 53 checks passed
@EldarMuhamethanov EldarMuhamethanov deleted the e.muhamethanov/8512/action-sheet-add-slot-props branch December 18, 2025 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: в ActionSheetItem убрать isCancelItem

2 participants