feat(core): use contain strict optimizing performance (#8553)

This commit is contained in:
EYHN
2024-10-21 06:42:07 +00:00
parent a25bb0d80f
commit 42b3e069f9
9 changed files with 17 additions and 17 deletions

View File

@@ -34,7 +34,7 @@ export const root = style({
},
'&[data-open="true"][data-handle-position="left"][data-is-floating="true"]':
{
transform: `translateX(-${panelWidthVar})`,
transform: `translateX(calc(${panelWidthVar} * -1))`,
},
'&[data-enable-animation="true"]': {
transition: `margin-left ${animationTimeout}, margin-right ${animationTimeout}, transform ${animationTimeout}, background ${animationTimeout}`,
@@ -46,6 +46,12 @@ export const root = style({
},
});
export const content = style({
contain: 'strict',
width: '100%',
height: '100%',
});
export const panelContent = style({
position: 'relative',
height: '100%',

View File

@@ -169,7 +169,9 @@ export const ResizePanel = forwardRef<HTMLDivElement, ResizePanelProps>(
data-handle-position={resizeHandlePos}
data-enable-animation={enableAnimation && !resizing}
>
<div className={styles.content}>
{!(status === 'exited' && unmountOnExit !== false) && children}
</div>
<ResizeHandle
resizeHandlePos={resizeHandlePos}
resizeHandleOffset={resizeHandleOffset}

View File

@@ -6,6 +6,7 @@ export const root = style({
height: '54px',
// 42 + 12
flexShrink: 0,
contain: 'strict',
width: '100%',
alignItems: 'stretch',
transition: 'background-color 0.2s, opacity 0.2s',

View File

@@ -8,6 +8,7 @@ export const root = style({
flexShrink: 0,
width: '100%',
alignItems: 'stretch',
contain: 'strict',
transition: 'background-color 0.2s, opacity 0.2s',
':hover': {
backgroundColor: cssVar('hoverColor'),

View File

@@ -46,6 +46,7 @@ export const header = style({
alignItems: 'center',
padding: '0px 16px 0px 6px',
height: '28px',
contain: 'strict',
background: cssVar('backgroundPrimaryColor'),
':hover': {
background: cssVar('hoverColorFilled'),

View File

@@ -7,6 +7,7 @@ export const root = style({
// 42 + 12
flexShrink: 0,
width: '100%',
contain: 'strict',
alignItems: 'stretch',
transition: 'background-color 0.2s, opacity 0.2s',
':hover': {

View File

@@ -20,6 +20,7 @@ export const header = style({
flexShrink: 0,
background: cssVar('backgroundPrimaryColor'),
padding: '0 16px',
contain: 'strict',
'@media': {
print: {
display: 'none',
@@ -31,6 +32,7 @@ export const viewBodyContainer = style({
display: 'flex',
flex: 1,
overflow: 'hidden',
contain: 'strict',
});
export const leftSidebarButton = style({

View File

@@ -57,7 +57,7 @@ test('Drag resizer can resize sidebar', async ({ page }) => {
});
await page.mouse.up();
const boundingBox = await page.getByTestId('app-sidebar').boundingBox();
expect(boundingBox?.width).toBe(399);
expect(Math.floor(boundingBox?.width ?? 0)).toBe(399);
});
test('Sidebar in between sm & md breakpoint', async ({ page }) => {

View File

@@ -1,14 +0,0 @@
import { test } from '@affine-test/kit/playwright';
import { openHomePage } from '@affine-test/kit/utils/load-page';
import { waitForEditorLoad } from '@affine-test/kit/utils/page-logic';
import { expect } from '@playwright/test';
test('Create subpage', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await page
.locator('[data-testid=app-sidebar-arrow-button-collapse][data-show=true]')
.click();
const sliderBarArea = page.getByTestId('sliderBar-inner');
await expect(sliderBarArea).not.toBeInViewport();
});