mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
feat(core): use contain strict optimizing performance (#8553)
This commit is contained in:
@@ -34,7 +34,7 @@ export const root = style({
|
|||||||
},
|
},
|
||||||
'&[data-open="true"][data-handle-position="left"][data-is-floating="true"]':
|
'&[data-open="true"][data-handle-position="left"][data-is-floating="true"]':
|
||||||
{
|
{
|
||||||
transform: `translateX(-${panelWidthVar})`,
|
transform: `translateX(calc(${panelWidthVar} * -1))`,
|
||||||
},
|
},
|
||||||
'&[data-enable-animation="true"]': {
|
'&[data-enable-animation="true"]': {
|
||||||
transition: `margin-left ${animationTimeout}, margin-right ${animationTimeout}, transform ${animationTimeout}, background ${animationTimeout}`,
|
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({
|
export const panelContent = style({
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
height: '100%',
|
height: '100%',
|
||||||
|
|||||||
@@ -169,7 +169,9 @@ export const ResizePanel = forwardRef<HTMLDivElement, ResizePanelProps>(
|
|||||||
data-handle-position={resizeHandlePos}
|
data-handle-position={resizeHandlePos}
|
||||||
data-enable-animation={enableAnimation && !resizing}
|
data-enable-animation={enableAnimation && !resizing}
|
||||||
>
|
>
|
||||||
|
<div className={styles.content}>
|
||||||
{!(status === 'exited' && unmountOnExit !== false) && children}
|
{!(status === 'exited' && unmountOnExit !== false) && children}
|
||||||
|
</div>
|
||||||
<ResizeHandle
|
<ResizeHandle
|
||||||
resizeHandlePos={resizeHandlePos}
|
resizeHandlePos={resizeHandlePos}
|
||||||
resizeHandleOffset={resizeHandleOffset}
|
resizeHandleOffset={resizeHandleOffset}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ export const root = style({
|
|||||||
height: '54px',
|
height: '54px',
|
||||||
// 42 + 12
|
// 42 + 12
|
||||||
flexShrink: 0,
|
flexShrink: 0,
|
||||||
|
contain: 'strict',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
alignItems: 'stretch',
|
alignItems: 'stretch',
|
||||||
transition: 'background-color 0.2s, opacity 0.2s',
|
transition: 'background-color 0.2s, opacity 0.2s',
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ export const root = style({
|
|||||||
flexShrink: 0,
|
flexShrink: 0,
|
||||||
width: '100%',
|
width: '100%',
|
||||||
alignItems: 'stretch',
|
alignItems: 'stretch',
|
||||||
|
contain: 'strict',
|
||||||
transition: 'background-color 0.2s, opacity 0.2s',
|
transition: 'background-color 0.2s, opacity 0.2s',
|
||||||
':hover': {
|
':hover': {
|
||||||
backgroundColor: cssVar('hoverColor'),
|
backgroundColor: cssVar('hoverColor'),
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export const header = style({
|
|||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
padding: '0px 16px 0px 6px',
|
padding: '0px 16px 0px 6px',
|
||||||
height: '28px',
|
height: '28px',
|
||||||
|
contain: 'strict',
|
||||||
background: cssVar('backgroundPrimaryColor'),
|
background: cssVar('backgroundPrimaryColor'),
|
||||||
':hover': {
|
':hover': {
|
||||||
background: cssVar('hoverColorFilled'),
|
background: cssVar('hoverColorFilled'),
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ export const root = style({
|
|||||||
// 42 + 12
|
// 42 + 12
|
||||||
flexShrink: 0,
|
flexShrink: 0,
|
||||||
width: '100%',
|
width: '100%',
|
||||||
|
contain: 'strict',
|
||||||
alignItems: 'stretch',
|
alignItems: 'stretch',
|
||||||
transition: 'background-color 0.2s, opacity 0.2s',
|
transition: 'background-color 0.2s, opacity 0.2s',
|
||||||
':hover': {
|
':hover': {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ export const header = style({
|
|||||||
flexShrink: 0,
|
flexShrink: 0,
|
||||||
background: cssVar('backgroundPrimaryColor'),
|
background: cssVar('backgroundPrimaryColor'),
|
||||||
padding: '0 16px',
|
padding: '0 16px',
|
||||||
|
contain: 'strict',
|
||||||
'@media': {
|
'@media': {
|
||||||
print: {
|
print: {
|
||||||
display: 'none',
|
display: 'none',
|
||||||
@@ -31,6 +32,7 @@ export const viewBodyContainer = style({
|
|||||||
display: 'flex',
|
display: 'flex',
|
||||||
flex: 1,
|
flex: 1,
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
|
contain: 'strict',
|
||||||
});
|
});
|
||||||
|
|
||||||
export const leftSidebarButton = style({
|
export const leftSidebarButton = style({
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ test('Drag resizer can resize sidebar', async ({ page }) => {
|
|||||||
});
|
});
|
||||||
await page.mouse.up();
|
await page.mouse.up();
|
||||||
const boundingBox = await page.getByTestId('app-sidebar').boundingBox();
|
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 }) => {
|
test('Sidebar in between sm & md breakpoint', async ({ page }) => {
|
||||||
|
|||||||
@@ -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();
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user