-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(View): Fix shadow on iOS swipe back #5804
fix(View): Fix shadow on iOS swipe back #5804
Conversation
size-limit report 📦
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit d396506:
|
e2e tests |
👀 Docs deployed
Commit d396506 |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #5804 +/- ##
==========================================
+ Coverage 80.87% 81.75% +0.87%
==========================================
Files 300 300
Lines 9166 9502 +336
Branches 3122 3328 +206
==========================================
+ Hits 7413 7768 +355
+ Misses 1753 1734 -19
Flags with carried forward coverage won't be shown. Click here to find out more.
☔ View full report in Codecov by Sentry. |
2e8f82c
to
cdbe87d
Compare
Use both for transition between panels and for swipe back
In case we swipe back from Panel with Tabbar to Panel with Tabbar. In other cases Tabbar will be affected by overlay
Firstly if we do it too early the overlay that still has transition will cover the tabbar. Secondly, yes, we can set state to false when transition finished, but we don't really need it. We use this state value only during the swiping back logic. And every time user starts the transition we set it's value again.
As we use it only on that platform
229db1f
to
ff54d10
Compare
We don't need it as Tabbar is probably will be used inside Epic and tabbar will always be on top of panel overlay
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏽
Кажется, что-то пошло не так в примере в доке 🤔 2023-09-28.22.09.33.mov |
А в каком браузере ты смотришь? По какой ссылке? |
Фикс тут: |
@BlackySoul действительно, не связано с этим PR воспроизводится на мастере и фиксится в fix(Panel): background color layout=card #5888 А я не видел, потому что у нас очень выборочно проставлено управление
Либо выставить в true
|
Добавляем затемнение при swipeBack на iOS на появляющейся панели, при этом убираем тень сбоку у текущей панели. * Изменения - во `View` добавлен `div`, отвечающий за затемнение панели, рендерящейся внутри `View`. - такой же div, используемый для затемнения панели при переходах между панелями был удалён из Panel, потому что теперь мы используем его во `View`. Удалил, так как мы всё равно стили для него задавали во `View`, а теперь мы должны иметь доступ к нему напрямую для того, чтобы высчитать и присвоить значение `opacity` при `swipeBack`. - затемнение сделано через div рендерящийся только для при `swipeBack` только для следующей панели. - Изначально он имеет частично прозрачный фон, после чего во время swipeBack мы высчитываем opacity для всего div относительно того, на сколько сдвинута основная панель. - Если пользователь внезапно отпускает панель, но по результатам swipeBack мы либо устанавливаем opacity в 0 (если swipeBack удачный) либо в 1 (если swipeBack отменён или не дотянут до половины экрана). - При этом начинают работать стили и transition opacity чтобы затемнение при появление/исчезновени панели было плавным а не резким. - переписаны селекторы стилей затемнения панели при `Transition` переходах, чтобы использовался локальный div внутри `View`, а не тот что был определён в `Panel`.
closes: #5194
Описание
Добавляем затемнение при swipeBack на iOS на появляющейся панели, при этом убираем тень сбоку у текущей панели.
Изменения
View
добавленdiv
, отвечающий за затемнение панели, рендерящейся внутриView
.View
.Удалил, так как мы всё равно стили для него задавали во
View
, а теперь мы должны иметь доступ к нему напрямую для того, чтобы высчитать и присвоить значениеopacity
приswipeBack
.swipeBack
только для следующей панели.Transition
переходах, чтобы использовался локальный div внутриView
, а не тот что был определён вPanel
.Видео
SwipeBack.inside.Epic.mov