-
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(AdaptivityProvider): calculate size y when viewWidth is provided #6489
fix(AdaptivityProvider): calculate size y when viewWidth is provided #6489
Conversation
To match it with the useUseAdaptivityWithJSMediaQueries() hook Use same functions. Make sure we set sizeY in case the viewWidth is defined.
Make sure results of AdaptivityProvider match hook useAdaptivityWithJSMediaQueries()
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 c138234:
|
e2e tests |
👀 Docs deployed
Commit c138234 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #6489 +/- ##
==========================================
+ Coverage 82.06% 82.12% +0.06%
==========================================
Files 329 329
Lines 10169 10167 -2
Branches 3423 3421 -2
==========================================
+ Hits 8345 8350 +5
+ Misses 1824 1817 -7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.tsx
Outdated
Show resolved
Hide resolved
packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.test.tsx
Show resolved
Hide resolved
But keep the context out of _hasPointer variable from vkjs
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.
🤌🤌🤌🤌🤌🤌🤌
✨ PERFECTO ✨
🤌🤌🤌🤌🤌🤌🤌
…6489) close #6476 - переделаны условия вычисления sizeY. Раньше мы вычисляли sizeY только если у AdaptivityProvider заданы оба пропа: `viewWidth` и `viewHeight`. Сейчас же мы вычисляем значение sizeY если задано хотя бы один из пропов. - использованы идентичные с `useAdaptivityWithJSMediaQueries` функции из `lib/adoptivity/functions`. -`hasPointer`, передаваемый в контекст из `AdoptiveProvider` теперь используется в вычислении sizeY. Раньше мы этот проп не использовали, а брали hasPointer из библиотеки vkjs. (возможно, что осталось от старого кода) - переработаны тесты, чтобы сравнить результат `AdoptiveProvider` и `useAdaptivityWithJSMediaQueries`. Может и не очень честно так сравнивать, ведь `useAdaptivityWithJSMediaQueries` использует контекст `AdoptiveProvider`, но мы должны быть уверены, что результаты идентичны.
Это черри пик merge коммита bf26ee0 из #6489 Попытка перенести исправления в подсчёте `sizeY` у `AdoptivityProvider` из v6 в v5. #6476) был именно для v5. - в целом мы полностью переносим логику затрагивающую работу `AdoptivityProvider` без `bridge`. В то же время логику c `bridge` мы не трогаем. В том числе оставляем *неявное* использование `_hasPointer` из `vkjs` и игнорирование `hasPointer` свойства `AdoptivityProvider`. Сделано специально, чтобы никак не затронуть пользователей bridge, ведь на них баг не распространяется. https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.tsx#L105-L112 https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.tsx#L2 ```js export const hasMouse = /*#__PURE__*/ (() => detect.hasMouse)(); ``` [hasMouse source](https://github.com/VKCOM/vkjs/blob/3ab9216c6c9f7f48998176e9403eaba7450b9a31/src/InputUtils.ts#L48) Также я заметил, что есть специльный тест, котороый реагирует именно на `_hasPointer` проверку, так что оставил, в v6 мы всё равно это убираем. https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.test.tsx#L300-L308
Это черри пик merge коммита bf26ee0 из #6489 Попытка перенести исправления в подсчёте `sizeY` у `AdoptivityProvider` из v6 в v5. #6476) был именно для v5. - в целом мы полностью переносим логику затрагивающую работу `AdoptivityProvider` без `bridge`. В то же время логику c `bridge` мы не трогаем. В том числе оставляем *неявное* использование `_hasPointer` из `vkjs` и игнорирование `hasPointer` свойства `AdoptivityProvider`. Сделано специально, чтобы никак не затронуть пользователей bridge, ведь на них баг не распространяется. https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.tsx#L105-L112 https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.tsx#L2 ```js export const hasMouse = /*#__PURE__*/ (() => detect.hasMouse)(); ``` [hasMouse source](https://github.com/VKCOM/vkjs/blob/3ab9216c6c9f7f48998176e9403eaba7450b9a31/src/InputUtils.ts#L48) Также я заметил, что есть специльный тест, котороый реагирует именно на `_hasPointer` проверку, так что оставил, в v6 мы всё равно это убираем. https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.test.tsx#L300-L308
Это черри пик merge коммита bf26ee0 из #6489 Попытка перенести исправления в подсчёте `sizeY` у `AdoptivityProvider` из v6 в v5. #6476) был именно для v5. - в целом мы полностью переносим логику затрагивающую работу `AdoptivityProvider` без `bridge`. В то же время логику c `bridge` мы не трогаем. В том числе оставляем *неявное* использование `_hasPointer` из `vkjs` и игнорирование `hasPointer` свойства `AdoptivityProvider`. Сделано специально, чтобы никак не затронуть пользователей bridge, ведь на них баг не распространяется. https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.tsx#L105-L112 https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.tsx#L2 ```js export const hasMouse = /*#__PURE__*/ (() => detect.hasMouse)(); ``` [hasMouse source](https://github.com/VKCOM/vkjs/blob/3ab9216c6c9f7f48998176e9403eaba7450b9a31/src/InputUtils.ts#L48) Также я заметил, что есть специльный тест, котороый реагирует именно на `_hasPointer` проверку, так что оставил, в v6 мы всё равно это убираем. https://github.com/VKCOM/VKUI/blob/f361335092b365360b3b8ee65c145fb6b621a414/packages/vkui/src/components/AdaptivityProvider/AdaptivityProvider.test.tsx#L300-L308
Описание
Изменения
useAdaptivityWithJSMediaQueries
функции изlib/adoptivity/functions
.Если
viewWidth
иhasPointer
переданы, то мы вычисляемsizeY
. Раньше мы вычисляли sizeY только если заданы оба пропа:viewWidth
иviewHeight
.-
hasPointer
, передаваемый в контекст изAdoptiveProvider
теперь используется в вычислении sizeY. Раньше мы этот проп не использовали, а брали hasPointer из библиотеки vkjs.AdoptiveProvider
иuseAdaptivityWithJSMediaQueries
. Может и не очень честно так сравнивать, ведьuseAdaptivityWithJSMediaQueries
использует контекстAdoptiveProvider
, но мы должны быть уверены, что результаты идентичны.