Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(AppRoot): fix appearance cleanup for mode="embedded" (#6263)
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