@vkontakte/vkui 4.36.0 → 4.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +2 -2
- package/dist/cjs/components/View/View.js +2 -7
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/components/View/View.js +2 -7
- package/dist/components/View/View.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Link/Link.css +1 -1
- package/dist/cssm/components/View/View.js +2 -7
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/styles/components.css +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +1 -1
- package/src/components/FormStatus/Readme.md +4 -0
- package/src/components/Link/Link.css +2 -1
- package/src/components/View/Readme.md +5 -5
- package/src/components/View/View.tsx +2 -9
package/package.json
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
> **Deprecated:** этот компонент устарел и будет удален в 5.0.0.
|
|
2
|
+
>
|
|
3
|
+
> Используйте [`Banner`](https://vkcom.github.io/VKUI/#/Banner).
|
|
4
|
+
|
|
1
5
|
Компонент используется для отображения статуса формы. Например, когда в форме допущена ошибка, и нет возможности
|
|
2
6
|
указать на конкретное поле. Заголовок и текст опциональны.
|
|
3
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.Link {
|
|
2
|
-
color: var(--
|
|
2
|
+
color: var(--text_link, var(--vkui--color_text_link));
|
|
3
3
|
text-decoration: none;
|
|
4
4
|
border: 0;
|
|
5
5
|
background: none;
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
color: var(--vkui--color_text_link_visited);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/* stylelint-disable-next-line vkui/atomic */
|
|
34
35
|
.Link .Icon {
|
|
35
36
|
margin-left: 4px;
|
|
36
37
|
display: inline-block;
|
|
@@ -44,12 +44,12 @@ const [activePanel, setActivePanel] = useState("panel1");
|
|
|
44
44
|
### <a id="/View?id=iosswipeback"></a>[iOS Swipe Back](https://vkcom.github.io/VKUI/#/View?id=iosswipeback)
|
|
45
45
|
|
|
46
46
|
В iOS есть возможность свайпнуть от левого края назад, чтобы перейти на предыдущую панель. Для того, чтобы
|
|
47
|
-
повторить такое поведение в VKUI нужно:
|
|
47
|
+
повторить такое поведение в VKUI, нужно:
|
|
48
48
|
|
|
49
49
|
- Передать во `View` коллбек `onSwipeBack` — он сработает при завершении анимации свайпа. Поменяйте в нем `activePanel` и обновите `history`.
|
|
50
50
|
- Передать во `View` проп `history` — массив из id панелей в порядке открытия. Например, если пользователь из `main` перешел в `profile`, а оттуда попал в `education`, то `history=['main', 'profile', 'education']`.
|
|
51
51
|
- Обернуть ваше приложение в `ConfigProvider` — он определит, открыто приложение в webview клиента VK или в браузере (там есть свой swipe back, который будет конфликтовать с нашим). Для проверки в браузере форсируйте определение webview: `<ConfigProvider isWebView>`.
|
|
52
|
-
- На первой панели должен включаться свайпбек нативного клиента, чтобы пользователь смог выйти из приложения — для этого используют `vk-bridge`. **Если вы
|
|
52
|
+
- На первой панели должен включаться свайпбек нативного клиента, чтобы пользователь смог выйти из приложения — для этого используют `vk-bridge`. **Если вы делаете стандартное мини-приложение ВКонтакте,** при переходах отправляйте [событие `VKWebAppSetSwipeSettings`](https://dev.vk.com/bridge/VKWebAppSetSwipeSettings) с `history: true` на первой панели или `history: false` на других. **Если тип вашего мини-приложения — `WebviewType.INTERNAL`,** отправляйте событие `VKWebAppEnableSwipeBack` при переходе на первую панель и событие `VKWebAppDisableSwipeBack` при переходе на любую другух.
|
|
53
53
|
- Компоненты, которые сами обрабатывают жесты (например, карта), могут конфликтовать со свайпбеком — повесьте на них свойство `data-vkui-swipe-back={false}`
|
|
54
54
|
|
|
55
55
|
```jsx
|
|
@@ -60,12 +60,12 @@ const activePanel = history[history.length - 1];
|
|
|
60
60
|
const isFirst = history.length === 1;
|
|
61
61
|
|
|
62
62
|
React.useEffect(() => {
|
|
63
|
-
//
|
|
63
|
+
// В стандартных мини-приложениях делайте так:
|
|
64
|
+
vkBridge.send("VKWebAppSetSwipeSettings", { history: isFirst });
|
|
65
|
+
// В мини-приложениях `WebviewType.INTERNAL` делайте так:
|
|
64
66
|
vkBridge.send(
|
|
65
67
|
isFirst ? "VKWebAppEnableSwipeBack" : "VKWebAppDisableSwipeBack"
|
|
66
68
|
);
|
|
67
|
-
// Если вы не из ВК, то так:
|
|
68
|
-
vkBridge.send("VKWebAppSetSwipeSettings", { history: isFirst });
|
|
69
69
|
}, [isFirst]);
|
|
70
70
|
|
|
71
71
|
const goBack = () => setHistory(history.slice(0, -1));
|
|
@@ -167,9 +167,6 @@ export const View = ({
|
|
|
167
167
|
const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);
|
|
168
168
|
const prevOnTransition = usePrevious(onTransition);
|
|
169
169
|
|
|
170
|
-
const hasPopout = !!popout;
|
|
171
|
-
const hasModal = !!modal;
|
|
172
|
-
|
|
173
170
|
const panels = (
|
|
174
171
|
React.Children.toArray(children) as React.ReactElement[]
|
|
175
172
|
).filter((panel: React.ReactElement) => {
|
|
@@ -402,10 +399,6 @@ export const View = ({
|
|
|
402
399
|
popout && blurActiveElement(document);
|
|
403
400
|
}, [document, popout]);
|
|
404
401
|
|
|
405
|
-
React.useEffect(() => {
|
|
406
|
-
modal && blurActiveElement(document);
|
|
407
|
-
}, [document, modal]);
|
|
408
|
-
|
|
409
402
|
React.useEffect(() => {
|
|
410
403
|
// Нужен переход
|
|
411
404
|
if (
|
|
@@ -606,8 +599,8 @@ export const View = ({
|
|
|
606
599
|
})}
|
|
607
600
|
</div>
|
|
608
601
|
<AppRootPortal>
|
|
609
|
-
{
|
|
610
|
-
{
|
|
602
|
+
{!!popout && <div vkuiClass="View__popout">{popout}</div>}
|
|
603
|
+
{!!modal && <div vkuiClass="View__modal">{modal}</div>}
|
|
611
604
|
</AppRootPortal>
|
|
612
605
|
</Touch>
|
|
613
606
|
);
|