Skip to content
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

Conversation

mendrew
Copy link
Contributor

@mendrew mendrew commented Jan 30, 2024


  • Unit-тесты

Описание

Изменения

  • переделаны условия вычисления sizeY.
    • использованы идентичные с useAdaptivityWithJSMediaQueries функции из lib/adoptivity/functions.
      Если viewWidth и hasPointer переданы, то мы вычисляем sizeY. Раньше мы вычисляли sizeY только если заданы оба пропа: viewWidth и viewHeight.
      -hasPointer, передаваемый в контекст из AdoptiveProvider теперь используется в вычислении sizeY. Раньше мы этот проп не использовали, а брали hasPointer из библиотеки vkjs.
    • переработаны тесты, чтобы сравнить результат AdoptiveProvider и useAdaptivityWithJSMediaQueries. Может и не очень честно так сравнивать, ведь useAdaptivityWithJSMediaQueries использует контекст AdoptiveProvider, но мы должны быть уверены, что результаты идентичны.

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()
Copy link
Contributor

github-actions bot commented Jan 30, 2024

size-limit report 📦

Path Size
JS 349.2 KB (+0.01% 🔺)
JS (gzip) 106.74 KB (+0.01% 🔺)
JS (brotli) 88.3 KB (+0.1% 🔺)
JS import Div (tree shaking) 1.43 KB (0%)
CSS 257.98 KB (0%)
CSS (gzip) 33.81 KB (0%)
CSS (brotli) 27.47 KB (0%)

Copy link

codesandbox-ci bot commented Jan 30, 2024

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:

Sandbox Source
VKUI TypeScript Configuration

Copy link
Contributor

github-actions bot commented Jan 30, 2024

e2e tests

Playwright Report

Copy link
Contributor

github-actions bot commented Jan 30, 2024

👀 Docs deployed

Commit c138234

Copy link

codecov bot commented Jan 30, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (7f31060) 82.06% compared to head (c138234) 82.12%.
Report is 7 commits behind head on master.

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     
Flag Coverage Δ
unittests 82.12% <100.00%> (+0.06%) ⬆️

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.

@mendrew mendrew changed the title Mendrew/6476/fix/adoptivity provider/calculate size y when view width is provided fix[AdoptivityProvider]: calculate size y when viewWidth is provided Feb 1, 2024
But keep the context out of _hasPointer variable from vkjs
@github-actions github-actions bot added the patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча label Feb 1, 2024
@inomdzhon inomdzhon changed the title fix[AdoptivityProvider]: calculate size y when viewWidth is provided fix(AdaptivityProvider): calculate size y when viewWidth is provided Feb 1, 2024
@mendrew mendrew marked this pull request as ready for review February 1, 2024 20:32
@mendrew mendrew requested a review from a team as a code owner February 1, 2024 20:32
@mendrew mendrew modified the milestone: v6.0.1 Feb 1, 2024
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.

🤌🤌🤌🤌🤌🤌🤌
✨ PERFECTO ✨
🤌🤌🤌🤌🤌🤌🤌

@mendrew mendrew merged commit bf26ee0 into master Feb 8, 2024
47 checks passed
@mendrew mendrew deleted the mendrew/6476/fix/AdoptivityProvider/calculate-sizeY-when-viewWidth-is-provided branch February 8, 2024 10:51
vkcom-publisher pushed a commit that referenced this pull request Feb 8, 2024
…6489)

close #6476

- переделаны условия вычисления sizeY.
   Раньше мы вычисляли sizeY только если у AdaptivityProvider заданы оба пропа: `viewWidth` и `viewHeight`.
   Сейчас же мы вычисляем значение sizeY если задано хотя бы один из пропов.

- использованы идентичные с `useAdaptivityWithJSMediaQueries` функции из `lib/adoptivity/functions`.

-`hasPointer`, передаваемый в контекст из `AdoptiveProvider` теперь используется в вычислении sizeY. Раньше мы этот проп не использовали, а брали hasPointer из библиотеки vkjs. (возможно, что осталось от старого кода)

- переработаны тесты, чтобы сравнить результат `AdoptiveProvider` и `useAdaptivityWithJSMediaQueries`. Может и не очень честно так сравнивать, ведь `useAdaptivityWithJSMediaQueries` использует контекст `AdoptiveProvider`, но мы должны быть уверены, что результаты идентичны.
@mendrew mendrew mentioned this pull request Feb 8, 2024
1 task
mendrew added a commit that referenced this pull request Feb 12, 2024
Это черри пик 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
mendrew added a commit that referenced this pull request Feb 16, 2024
Это черри пик 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
mendrew added a commit that referenced this pull request Feb 16, 2024
Это черри пик 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug][AdaptivityProvider]: не вычисляется sizeY при передаче только viewWidth
3 participants