You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Так как мы движемся к тому, что обособлить библиотеку VKUI от мини-приложений ВКонтакте, стоит отказаться от использования @vkontakte/vk-bridge (далее vkBridge) внутри VKUI.
@vkontakte/vk-bridge будет применяться самим пользователем по необходимости.
Как побочный эффект, мы облегчим библиотеку для тех, кому не нужен @vkontakte/vk-bridge. Сейчас же, все пользователи вынуждны ставить эту зависимость.
План работ
Создать страницу по миграции на v6 (далее migration_v6.md)
Обоснование для документации
Изначально, VKUI создавался как инструмент для создания клиентской части мини-приложений ВКонтакте. Сейчас VKUI уже больше чем просто мини-приложения. Разработчики используют библиотеку, чтобы создавать полноценные независимые приложения, которые никак не связаны с VK Mini Apps.
В связи с этим мы отказались от завязки на мини-приложения ВКонтакте. Для этого мы удалили интеграцию с библиотекой VK Bridge, а также убрали упоминания о VK Mini Apps в документации. Это привнесло в библиотеку ряд изменений касающихся API.
webviewType={WebviewType.VKAPPS} -> hasCustomPanelHeaderAfter={true}. При необходимости можно передавать customPanelHeaderAfterMinWidth={<value>} (по умолчанию будет равен 90, как сейчас).
заменить классы *--vkapps
PanelHeader--vkapps удаляем, в нём уже не будет необходимости
Можно ли хелпер transformVKBridgeAdaptivity добавить например в @vkontakte/vk-bridge-react?
А то не понятно, зачем пользователю копировать вот эту сугубо внутреннюю функцию с логикой понятной только разработчикам vk-bridge и vkui
import{typeAdaptivityProps,getViewWidthByViewportWidth,getViewHeightByViewportHeight,ViewWidth,SizeType,}from'@vkontakte/vkui';importtype{UseAdaptivity}from'@vkontakte/vk-bridge-react';/** * Требуется конвертировать данные из VK Bridge в те, что принимает AdaptivityProvider из VKUI. */exportconsttransformVKBridgeAdaptivity=({
type,
viewportWidth,
viewportHeight,}: UseAdaptivity): AdaptivityProps=>{switch(type){case'adaptive':
return{viewWidth: getViewWidthByViewportWidth(viewportWidth),viewHeight: getViewHeightByViewportHeight(viewportHeight),};case'force_mobile':
case'force_mobile_compact':
return{viewWidth: ViewWidth.MOBILE,sizeX: SizeType.COMPACT,sizeY: type==='force_mobile_compact' ? SizeType.COMPACT : SizeType.REGULAR,};default:
return{};}};
Можно ли хелпер transformVKBridgeAdaptivity добавить например в @vkontakte/vk-bridge-react?
Верно говоришь, transformVKBridgeAdaptivity стоит вынести в пакет. В @vkontakte/vk-bridge-react не можем, т.к. он не знает и не должен ничего знать про VKUI.
Обоснование
Так как мы движемся к тому, что обособлить библиотеку VKUI от мини-приложений ВКонтакте, стоит отказаться от использования
@vkontakte/vk-bridge
(далееvkBridge
) внутри VKUI.@vkontakte/vk-bridge
будет применяться самим пользователем по необходимости.Как побочный эффект, мы облегчим библиотеку для тех, кому не нужен
@vkontakte/vk-bridge
. Сейчас же, все пользователи вынуждны ставить эту зависимость.План работ
v6
(далееmigration_v6.md
)Остальной чеклист
Компоненты
isWebView
warn
, что надо будет самому передаватьvkBridge.isWebView()
TODO [>=6]:
в месте вызова vkBridgemigration_v6.md
platform
warn
, что надо будет самому парсить query-параметр для полученияvk_platform
из негоmigration_v6.md
appearance
warn
, что надо будет самому завязаться наvkBridge
, чтобы получать тему из негоmigration_v6.md
onDetectAppearanceByBridge
@deprecated
в связи с предыдущим пунктомwebviewType
@deprecated
warn
, что св-во@deprecated
, и что надо использовать новое св-во:webviewType={WebviewType.INTERNAL}
->hasCustomPanelHeaderAfter={false}
.webviewType={WebviewType.VKAPPS}
->hasCustomPanelHeaderAfter={true}
. При необходимости можно передаватьcustomPanelHeaderAfterMinWidth={<value>}
(по умолчанию будет равен 90, как сейчас).*--vkapps
PanelHeader--vkapps
удаляем, в нём уже не будет необходимостиModalRoot--vkapps
->ModalRoot--hasCustomPanelHeaderAfterSlot
migration_v6.md
safeAreaInsets
warn
, что надо будет самому передаватьsafeAreaInsets
полученный изvkBridge
migration_v6.md
про получениеsafeAreaInsets
изvkBridge
warn
, что надо будет самому передавать параметры адаптивности полученные изvkBridge
TODO [>=6]:
на удаление использованияuseBridgeAdaptivity()
migration_v6.md
TODO [>=6]:
на удалениеrunTapticImpactOccurred()
внутри компонентаmigration_v6.md
про вызовrunTapticImpactOccurred()
и приonRefresh()
Функции
useAutoDetectAppearance()
TODO [>=6]:
на удаление использованияvkBridge
useBridgeAdaptivity()
AdaptivityProvider
передали параметры адаптивности)TODO [>=6]:
на удалениеuseInsets()
AppRoot
передалиinsets
через новый параметр)TODO [>=6]:
на удалениеsrc/lib/taptic.ts
TODO [>=6]:
на удалениеsrc/helpers/appearance.ts
TODO [>=6]:
на удалениеsrc/lib/platform.ts
->getPlatformByQueryString()
TODO [>=6]:
на удалениеsrc/hoc/withInsets.ts
TODO [>=6]:
на удалениеwarn
, что надо использоватьuseInsets
из@vkontakte/vk-bridge-react
migration_v6.md
проuseInsets
из@vkontakte/vk-bridge-react
Типы
AppearanceType
изvkBridge
в VKUIInsets
изvkBridge
в VKUIThe text was updated successfully, but these errors were encountered: