-
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
refactor(AppRoot): fix appearance cleanup for mode="embedded" #6263
refactor(AppRoot): fix appearance cleanup for mode="embedded" #6263
Conversation
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`.
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 ccedaa3:
|
e2e tests |
👀 Docs deployed
Commit ccedaa3 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
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.
Прекрасно! 💯
Стало сильно понятнее)
Co-authored-by: Andrey Medvedev <[email protected]>
Co-authored-by: Andrey Medvedev <[email protected]>
embedded
класс с названием платформы (темы) добавляется наbody
#4810Описание
Выполнил 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
.