Skip to content

Commit

Permalink
refactor(AppRoot): fix appearance cleanup for mode="embedded" (#6263)
Browse files Browse the repository at this point in the history
h2. Описание

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

h2. Изменения

- `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`.

---------

Co-authored-by: Andrey Medvedev <[email protected]>
  • Loading branch information
inomdzhon and mendrew authored Dec 13, 2023
1 parent 1b949bb commit 5aa0f12
Show file tree
Hide file tree
Showing 15 changed files with 576 additions and 336 deletions.
10 changes: 10 additions & 0 deletions packages/vkui/jest.setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,13 @@ Object.defineProperty(global, 'matchMedia', {
dispatchEvent: jest.fn(),
})),
});

Object.defineProperty(global, 'scrollTo', {
writable: true,
value: jest.fn(),
});

/**
* @see https://github.com/vuejs/vue-test-utils/issues/319#issuecomment-354667621
*/
Element.prototype.scrollTo = jest.fn();
4 changes: 2 additions & 2 deletions packages/vkui/playwright/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@
-webkit-font-smoothing: antialiased !important;
}

[class$='--light'] {
[class*='--light'] {
--playwright-background: white;
--playwright-border: gray;
--playwright-text: black;
}

[class$='--dark'] {
[class*='--dark'] {
--playwright-background: black;
--playwright-border: gray;
--playwright-text: white;
Expand Down
Loading

0 comments on commit 5aa0f12

Please sign in to comment.