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

refactor(AppRoot): fix appearance cleanup for mode="embedded" #6263

Merged

Conversation

inomdzhon
Copy link
Contributor

@inomdzhon inomdzhon commented Dec 12, 2023


  • e2e-тесты
  • Документация фичи

Описание

Выполнил TODO: нужно было перенести установку appearance из ConfigProvider в AppRoot.

Изменения

  • AppRoot
    • Удалил неиспользуемое свойство window.
    • Перенёс все проверки и модификации контейнеров в один эффект.
    • В файл helpers.ts перенёс функции (вместе с их константами), а также вынес некоторую логику в функции.
    • В types.ts хранятся типы, которые шарятся между helpers.ts и AppRoot.tsx.
    • Удалил установку color-scheme на documentElement, т.к. она уже есть в styles/common.css.
    • Переделал portalRoot с useState() на useRef(), тем самым не будет двойного рендера.
    • AppRootContext – сделал всё, кроме layout, обязательными параметрами, чтобы не приходилост проверять на undefined. Завёл константу DEFAULT_APP_ROOT_CONTEXT_VALUE, чтобы в тестах можно было делать Object.assign, если хочется обернуть в свой контекст.
    • Дописал документацию для свойств. Для свойства scroll, перенёс из Readme.md часть про режим скролла.
    • Заменил const { document } = useDOM() на получение document из document.body, через ownerDocument.
  • AppRoot.test.tsx – добавил больше тестов, по ходу дела отрефакторил весь файл.
  • packages/playwright/vkui/index.css – заменил CSS селекторе "регулярку" с $ на *, т.к. $ предполагал, что класс с токеном всегда будет в конце.
  • styles/common.css – удалил селектор .vkui из правила, которые задают font-family, color и т.п., т.к. они и так устанавливаются для body.
  • hooks/useObjectMemo.ts – заменил кастомное сравнение объектов на isEqual() из @vkontakte/vkjs.

h2. Описание

Выполнил TODO: нужно было перенести установку `appearance` из `ConfigProvider` в `AppRoot`.

h2. Изменения

- `AppRoot`
  - Перенёс все проверки и модификации контейнеров в один эффект.
  - В файл `helpers.ts` перенёс функции (вместе с их константами), а также вынес некоторую логику в функции.
  -  В `types.ts` хранятся типы, которые шарятся между `helpers.ts` и `AppRoot.tsx`.
  - Удалил установку `color-scheme` на `documentElement`, т.к. она уже есть в `styles/common.css`.
  - Переделал `portalRoot` с `useState()` на `useRef()`, тем самым не будет двойного рендера.
  - `AppRootContext` – сделал всё, кроме `layout`, обязательными параметрами, чтобы не приходилост проверять на `undefined`. Завёл константу `DEFAULT_APP_ROOT_CONTEXT_VALUE`, чтобы в тестах можно было делать `Object.assign`, если хочется обернуть в свой контекст.
  - Дописал документацию для свойств. Для свойства `scroll`, перенёс из `Readme.md` часть про режим скролла.
- `AppRoot.test.tsx` – добавил больше тестов, по ходу дела отрефакторил весь файл.
- `packages/playwright/vkui/index.css` – заменил CSS селекторе "регулярку" с `$` на `*`, т.к. `$` предполагал, что класс с токеном всегда будет в конце.
- `hooks/useObjectMemo.ts` – заменил кастомное сравнение объектов на `isEqual()` из `@vkontakte/vkjs`.
@inomdzhon inomdzhon requested a review from a team as a code owner December 12, 2023 12:48
Copy link
Contributor

github-actions bot commented Dec 12, 2023

size-limit report 📦

Path Size
JS 347.78 KB (-0.11% 🔽)
JS (gzip) 106.22 KB (-0.12% 🔽)
JS (brotli) 87.66 KB (-0.17% 🔽)
JS import Div (tree shaking) 1.43 KB (0%)
CSS 258.84 KB (+0.02% 🔺)
CSS (gzip) 33.79 KB (+0.03% 🔺)
CSS (brotli) 27.43 KB (+0.01% 🔺)

Copy link

codesandbox-ci bot commented Dec 12, 2023

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 ccedaa3:

Sandbox Source
VKUI TypeScript Configuration

Copy link
Contributor

github-actions bot commented Dec 12, 2023

e2e tests

Playwright Report

Copy link
Contributor

github-actions bot commented Dec 12, 2023

👀 Docs deployed

Commit ccedaa3

Copy link

codecov bot commented Dec 12, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (bf6169d) 81.14% compared to head (ccedaa3) 81.56%.
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6263      +/-   ##
==========================================
+ Coverage   81.14%   81.56%   +0.41%     
==========================================
  Files         324      325       +1     
  Lines       10090    10088       -2     
  Branches     3386     3378       -8     
==========================================
+ Hits         8188     8228      +40     
+ Misses       1902     1860      -42     
Flag Coverage Δ
unittests 81.56% <100.00%> (+0.41%) ⬆️

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 previously approved these changes Dec 12, 2023
Copy link
Contributor

@mendrew mendrew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Прекрасно! 💯

Стало сильно понятнее)

packages/vkui/src/components/AppRoot/AppRoot.test.tsx Outdated Show resolved Hide resolved
packages/vkui/src/components/AppRoot/AppRoot.test.tsx Outdated Show resolved Hide resolved
Co-authored-by: Andrey Medvedev <[email protected]>
Co-authored-by: Andrey Medvedev <[email protected]>
@inomdzhon inomdzhon merged commit 5aa0f12 into master Dec 13, 2023
25 checks passed
@inomdzhon inomdzhon deleted the imirdzhamolov/issue4810/fix/ConfigProvider-embeded-node branch December 13, 2023 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants