diff --git a/.github/workflows/release-helper.yml b/.github/workflows/release-helper.yml index 6c5d376bf672..401f67d71ebe 100644 --- a/.github/workflows/release-helper.yml +++ b/.github/workflows/release-helper.yml @@ -28,7 +28,6 @@ jobs: branch: 'master' dingding-token: ${{ secrets.DINGDING_BOT_TOKEN }} dingding-msg: 'CHANGELOG.zh-CN.md' - dingding-delay-minute: 10 msg-title: '# Ant Design {{v}} 发布日志' msg-poster: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*zx7LTI_ECSAAAAAAAAAAAABkARQnAQ' msg-footer: '💬 前往 [**Ant Design Releases**]({{url}}) 查看更新日志' @@ -44,6 +43,7 @@ jobs: dingding-token: ${{ secrets.DINGDING_BOT_BIGFISH_TOKEN }} dingding-msg: 'CHANGELOG.zh-CN.md' dingding-delay-minute: 10 + release: false antd-conch-msg: '🐟 当前 Bigfish 内嵌 antd 版本:' msg-title: '# Ant Design {{v}} 发布日志' msg-poster: 'https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*zx7LTI_ECSAAAAAAAAAAAABkARQnAQ' diff --git a/.gitignore b/.gitignore index 5be4d3cb0b5e..16ffbbdab3c4 100644 --- a/.gitignore +++ b/.gitignore @@ -60,6 +60,7 @@ site/theme/template/Resources/**/*.jsx site/theme/template/NotFound.jsx scripts/previewEditor/index.html components/version/version.tsx +components/version/token.tsx # Image snapshot diff __diff_output__/ diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 8b665065aae0..95421371bf56 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -9,6 +9,7 @@ timeline: true | infrad version | antd version | update content | time | | --- | --- | --- | --- | +| 4.21.7 | 4.21.7 | Synchronize the update of antd 4.21.7 version | 2022-07-25 | | 4.21.6 | 4.21.6 | Synchronize the update of antd 4.21.6 version | 2022-07-15 | | 4.21.4 | 4.21.4 | 1.Synchronize the update of antd 4.21.4 version
2.Modified some styles of the table component
3.The tooltip component has been rolled back to keep it consistent with antd
4.Fix the style problem in the small state of the progress component
5.Fixed the enter event penetration problem of the sorting cell of the table component | 2022-07-04 | | 4.21.1 | 4.21.2 | 1.Synchronize the update of antd 4.20.2 version
2.Temporarily removed QuickPicker | 2022-06-16 | @@ -37,6 +38,20 @@ if you have some problem, welcome to connect `taofeng.yang@shopee.com` or `lay.z --- +## 4.21.7 + +`2022-07-18` + +- 🆕 Add Skeleton.Node sub-component, allow user customize content of Skeleton. [#36441](https://github.com/ant-design/ant-design/pull/36441) [@DawnLck](https://github.com/DawnLck) +- Form + - 🐞 Fix Form with percentage width Select may leaves unexpected height. [#36484](https://github.com/ant-design/ant-design/pull/36484) + - 🐞 Fix Form disabled but Upload component still uploadable in it. [#36573](https://github.com/ant-design/ant-design/pull/36573) [@cwjTerrace](https://github.com/cwjTerrace) +- 🐞 Fix Tree non-draggable element still render the draggable icon. [#36511](https://github.com/ant-design/ant-design/pull/36511) [@Wxh16144](https://github.com/Wxh16144) +- 🐞 Fix Upload preview error on SVG with `` and cross-origin links. [#36402](https://github.com/ant-design/ant-design/pull/36402) [@jonioni](https://github.com/jonioni) +- 🐞 Fix that Tooltip cannot close automaticly on disabled Radio. [#36483](https://github.com/ant-design/ant-design/pull/36483) +- 💄 Add Modal Less variable `@modal-border-radius`. [#36527](https://github.com/ant-design/ant-design/pull/36527) [@kkkisme](https://github.com/kkkisme) +- 💄 Fix Table expand icon wrap style when column is fixed and ellipsis. [#36496](https://github.com/ant-design/ant-design/pull/36496) + ## 4.21.6 `2022-07-11` diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 15f72be25097..161cee006f29 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -9,6 +9,7 @@ timeline: true | infrad 版本号 | 对应 antd 版本号 | 更新内容 | 时间 | | --- | --- | --- | --- | +| 4.21.7 | 4.21.7 | 同步 antd 4.21.7 版本的更新 | 2022-07-25 | | 4.21.6 | 4.21.6 | 同步 antd 4.21.6 版本的更新 | 2022-07-15 | | 4.21.4 | 4.21.4 | 1.同步 antd 4.21.4 版本的更新
2.修改了 table 组件的部分样式
3.回退 tooltip 组件保持与 Antd 一致
4.修复 progress 组件在 small 状态下的样式问题
5.修复了 table 组件排序单元格 enter 事件穿透问题 | 2022-07-04 | | 4.21.1 | 4.21.2 | 1.同步 antd 4.21.2 版本的更新
2.暂时移除了 QuickPicker 组件 | 2022-06-16 | @@ -38,6 +39,20 @@ timeline: true --- +## 4.21.7 + +`2022-07-18` + +- 🆕 新增 Skeleton.Node 子组件,允许用户自定义 Skeleton 的内容。[#36441](https://github.com/ant-design/ant-design/pull/36441) [@DawnLck](https://github.com/DawnLck) +- Form + - 🐞 修复 Form 下设置 Select 百分比宽度时会有未预期空行问题。[#36484](https://github.com/ant-design/ant-design/pull/36484) + - 🐞 修复 Form 设为禁用时、内部的 Upload 组件仍能上传文件的问题。[#36573](https://github.com/ant-design/ant-design/pull/36573) [@cwjTerrace](https://github.com/cwjTerrace) +- 🐞 修复 Tree 非 `draggable` 依然展示可拖拽图标的问题。[#36511](https://github.com/ant-design/ant-design/pull/36511) [@Wxh16144](https://github.com/Wxh16144) +- 🐞 修复 Upload 在预览包含 `` 及跨域链接的 SVG 文件时发生错误的问题。[#36402](https://github.com/ant-design/ant-design/pull/36402) [@jonioni](https://github.com/jonioni) +- 🐞 修复 Tooltip 在被禁用的 Radio 上时无法自动关闭的问题。[#36483](https://github.com/ant-design/ant-design/pull/36483) +- 💄 添加 Modal Less 变量 `@modal-border-radius`。[#36527](https://github.com/ant-design/ant-design/pull/36527) [@kkkisme](https://github.com/kkkisme) +- 💄 修复 Table 开启固定和省略功能的列内的展开按钮换行样式。[#36496](https://github.com/ant-design/ant-design/pull/36496) + ## 4.21.6 `2022-07-11` diff --git a/components/_util/ActionButton.tsx b/components/_util/ActionButton.tsx index b8ce013a2a47..adc57edf9cfc 100644 --- a/components/_util/ActionButton.tsx +++ b/components/_util/ActionButton.tsx @@ -7,7 +7,7 @@ import { convertLegacyProps } from '../button/button'; export interface ActionButtonProps { type?: LegacyButtonType; actionFn?: (...args: any[]) => any | PromiseLike; - close: Function; + close?: Function; autoFocus?: boolean; prefixCls: string; buttonProps?: ButtonProps; @@ -24,6 +24,10 @@ const ActionButton: React.FC = props => { const clickedRef = React.useRef(false); const ref = React.useRef(); const [loading, setLoading] = useState(false); + const { close } = props; + const onInternalClose = (...args: any[]) => { + close?.(...args); + }; React.useEffect(() => { let timeoutId: any; @@ -39,7 +43,6 @@ const ActionButton: React.FC = props => { }, []); const handlePromiseOnOk = (returnValueOfOnOk?: PromiseLike) => { - const { close } = props; if (!isThenable(returnValueOfOnOk)) { return; } @@ -47,7 +50,7 @@ const ActionButton: React.FC = props => { returnValueOfOnOk!.then( (...args: any[]) => { setLoading(false, true); - close(...args); + onInternalClose(...args); clickedRef.current = false; }, (e: Error) => { @@ -62,13 +65,13 @@ const ActionButton: React.FC = props => { }; const onClick = (e: React.MouseEvent) => { - const { actionFn, close } = props; + const { actionFn } = props; if (clickedRef.current) { return; } clickedRef.current = true; if (!actionFn) { - close(); + onInternalClose(); return; } let returnValueOfOnOk; @@ -76,7 +79,7 @@ const ActionButton: React.FC = props => { returnValueOfOnOk = actionFn(e); if (props.quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) { clickedRef.current = false; - close(e); + onInternalClose(e); return; } } else if (actionFn.length) { @@ -86,7 +89,7 @@ const ActionButton: React.FC = props => { } else { returnValueOfOnOk = actionFn(); if (!returnValueOfOnOk) { - close(); + onInternalClose(); return; } } diff --git a/components/collapse/__tests__/__snapshots__/demo.test.js.snap b/components/collapse/__tests__/__snapshots__/demo.test.ts.snap similarity index 100% rename from components/collapse/__tests__/__snapshots__/demo.test.js.snap rename to components/collapse/__tests__/__snapshots__/demo.test.ts.snap diff --git a/components/collapse/__tests__/__snapshots__/index.test.js.snap b/components/collapse/__tests__/__snapshots__/index.test.tsx.snap similarity index 100% rename from components/collapse/__tests__/__snapshots__/index.test.js.snap rename to components/collapse/__tests__/__snapshots__/index.test.tsx.snap diff --git a/components/collapse/__tests__/demo.test.js b/components/collapse/__tests__/demo.test.ts similarity index 100% rename from components/collapse/__tests__/demo.test.js rename to components/collapse/__tests__/demo.test.ts diff --git a/components/collapse/__tests__/index.test.js b/components/collapse/__tests__/index.test.tsx similarity index 66% rename from components/collapse/__tests__/index.test.js rename to components/collapse/__tests__/index.test.tsx index f6eda414df6b..a054eca1ba20 100644 --- a/components/collapse/__tests__/index.test.js +++ b/components/collapse/__tests__/index.test.tsx @@ -1,7 +1,6 @@ -import { mount } from 'enzyme'; import React from 'react'; import { act } from 'react-dom/test-utils'; -import { render, sleep } from '../../../tests/utils'; +import { sleep, render, fireEvent } from '../../../tests/utils'; import { resetWarned } from '../../_util/warning'; describe('Collapse', () => { @@ -10,6 +9,15 @@ describe('Collapse', () => { const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {}); + // fix React concurrent + function triggerAllTimer() { + for (let i = 0; i < 10; i += 1) { + act(() => { + jest.runAllTimers(); + }); + } + } + beforeEach(() => { resetWarned(); }); @@ -23,16 +31,16 @@ describe('Collapse', () => { }); it('should support remove expandIcon', () => { - const wrapper = mount( + const { asFragment } = render( null}> , ); - expect(wrapper.render()).toMatchSnapshot(); + expect(asFragment().firstChild).toMatchSnapshot(); }); it('should keep the className of the expandIcon', () => { - const wrapper = mount( + const { container } = render( ( } /> action} /> , ); - expect(wrapper.render()).toMatchSnapshot(); + expect(asFragment().firstChild).toMatchSnapshot(); }); it('could be expand and collapse', async () => { - const wrapper = mount( + const { container } = render( content , ); - expect(wrapper.find('.ant-collapse-item').hasClass('ant-collapse-item-active')).toBe(false); - wrapper.find('.ant-collapse-header').at(0).simulate('click'); - wrapper.update(); + expect( + container.querySelector('.ant-collapse-item')?.classList.contains('ant-collapse-item-active'), + ).toBe(false); + fireEvent.click(container.querySelector('.ant-collapse-header')!); await sleep(400); - wrapper.update(); - expect(wrapper.find('.ant-collapse-item').hasClass('ant-collapse-item-active')).toBe(true); + expect( + container.querySelector('.ant-collapse-item')?.classList.contains('ant-collapse-item-active'), + ).toBe(true); }); it('could override default openMotion', () => { - const wrapper = mount( + const { container, asFragment } = render( content , ); - wrapper.find('.ant-collapse-header').at(0).simulate('click'); - expect(wrapper.render()).toMatchSnapshot(); + fireEvent.click(container.querySelector('.ant-collapse-header')!); + expect(asFragment().firstChild).toMatchSnapshot(); }); it('should trigger warning and keep compatibility when using disabled in Panel', () => { - const wrapper = mount( + const { container } = render( content @@ -98,19 +108,19 @@ describe('Collapse', () => { 'Warning: [antd: Collapse.Panel] `disabled` is deprecated. Please use `collapsible="disabled"` instead.', ); - expect(wrapper.find('.ant-collapse-item-disabled').length).toBe(1); + expect(container.querySelectorAll('.ant-collapse-item-disabled').length).toBe(1); - wrapper.find('.ant-collapse-header').simulate('click'); - expect(wrapper.find('.ant-collapse-item-active').length).toBe(0); + fireEvent.click(container.querySelector('.ant-collapse-header')!); + expect(container.querySelectorAll('.ant-collapse-item-active').length).toBe(0); }); it('should end motion when set activeKey while hiding', async () => { jest.useFakeTimers(); - jest.spyOn(window, 'requestAnimationFrame').mockImplementation(cb => { - setTimeout(cb, 16.66); - }); + const spiedRAF = jest + .spyOn(window, 'requestAnimationFrame') + .mockImplementation(cb => setTimeout(cb, 16.66)); - let setActiveKeyOuter; + let setActiveKeyOuter: React.Dispatch>; const Test = () => { const [activeKey, setActiveKey] = React.useState(); setActiveKeyOuter = setActiveKey; @@ -125,17 +135,18 @@ describe('Collapse', () => { ); }; - const wrapper = mount(); + const { container } = render(); await act(async () => { setActiveKeyOuter('1'); await Promise.resolve(); - jest.runAllTimers(); }); - expect(wrapper.render().find('.ant-motion-collapse').length).toBe(0); + triggerAllTimer(); + + expect(container.querySelectorAll('.ant-motion-collapse').length).toBe(0); - window.requestAnimationFrame.mockRestore(); + spiedRAF.mockRestore(); jest.useRealTimers(); }); diff --git a/components/config-provider/__tests__/__snapshots__/components.test.js.snap b/components/config-provider/__tests__/__snapshots__/components.test.js.snap index 0ea665bde57a..e79cc7468e6e 100644 --- a/components/config-provider/__tests__/__snapshots__/components.test.js.snap +++ b/components/config-provider/__tests__/__snapshots__/components.test.js.snap @@ -42627,12 +42627,11 @@ exports[`ConfigProvider components Upload configProvider componentDisabled 1`] = class="" >
- - + />
diff --git a/components/form/__tests__/__snapshots__/demo-extend.test.ts.snap b/components/form/__tests__/__snapshots__/demo-extend.test.ts.snap index d71d3ddcce61..79da07c6b948 100644 --- a/components/form/__tests__/__snapshots__/demo-extend.test.ts.snap +++ b/components/form/__tests__/__snapshots__/demo-extend.test.ts.snap @@ -4885,6 +4885,84 @@ exports[`renders ./components/form/demo/disabled.md extend context correctly 1`] +
+
+ +
+
+
+
+ +
+
+ + +
+ + + +
+ Upload +
+
+
+
+
+
+
+
+
+
diff --git a/components/form/__tests__/__snapshots__/demo.test.js.snap b/components/form/__tests__/__snapshots__/demo.test.js.snap index 493dd2c20f9a..9cfdefaabeb9 100644 --- a/components/form/__tests__/__snapshots__/demo.test.js.snap +++ b/components/form/__tests__/__snapshots__/demo.test.js.snap @@ -2368,6 +2368,84 @@ exports[`renders ./components/form/demo/disabled.md correctly 1`] = `
+
+
+ +
+
+
+
+ +
+
+ + +
+ + + +
+ Upload +
+
+
+
+
+
+
+
+
+
diff --git a/components/form/__tests__/__snapshots__/index.test.js.snap b/components/form/__tests__/__snapshots__/index.test.js.snap index 80ea07db9da3..2702ec432b47 100644 --- a/components/form/__tests__/__snapshots__/index.test.js.snap +++ b/components/form/__tests__/__snapshots__/index.test.js.snap @@ -838,6 +838,54 @@ exports[`Form form should support disabled 1`] = `
+
+
+ +
+
+
+
+ + +
+ +
+
+
+
diff --git a/components/form/__tests__/index.test.js b/components/form/__tests__/index.test.js index 95772f66cb42..34f63c1dcfb9 100644 --- a/components/form/__tests__/index.test.js +++ b/components/form/__tests__/index.test.js @@ -8,7 +8,7 @@ import * as Util from '../util'; import Button from '../../button'; import Input from '../../input'; import Select from '../../select'; - +import Upload from '../../upload'; import Cascader from '../../cascader'; import Checkbox from '../../checkbox'; import DatePicker from '../../date-picker'; @@ -945,6 +945,9 @@ describe('Form', () => { + + + diff --git a/components/form/demo/disabled.md b/components/form/demo/disabled.md index 454f999968c6..5d0f4de33f8b 100644 --- a/components/form/demo/disabled.md +++ b/components/form/demo/disabled.md @@ -14,6 +14,8 @@ title: Set component disabled, only works for antd components. ```tsx +import React, { useState } from 'react'; +import { PlusOutlined } from 'infra-design-icons'; import { Button, Cascader, @@ -26,8 +28,8 @@ import { Select, Switch, TreeSelect, + Upload, } from 'infrad'; -import React, { useState } from 'react'; const { RangePicker } = DatePicker; const { TextArea } = Input; @@ -102,6 +104,14 @@ const FormDisabledDemo = () => { + + +
+ +
Upload
+
+
+
diff --git a/components/input-number/__tests__/index.test.js b/components/input-number/__tests__/index.test.js index 1cb4be61a2ae..77129eb17bff 100644 --- a/components/input-number/__tests__/index.test.js +++ b/components/input-number/__tests__/index.test.js @@ -1,10 +1,10 @@ -import { ArrowDownOutlined, ArrowUpOutlined } from '@ant-design/icons'; -import { mount } from 'enzyme'; import React from 'react'; +import { ArrowDownOutlined, ArrowUpOutlined } from '@ant-design/icons'; import InputNumber from '..'; import focusTest from '../../../tests/shared/focusTest'; import mountTest from '../../../tests/shared/mountTest'; import rtlTest from '../../../tests/shared/rtlTest'; +import { fireEvent, render } from '../../../tests/utils'; describe('InputNumber', () => { focusTest(InputNumber, { refFocus: true }); @@ -14,32 +14,35 @@ describe('InputNumber', () => { // https://github.com/ant-design/ant-design/issues/13896 it('should return null when blur a empty input number', () => { const onChange = jest.fn(); - const wrapper = mount(); - wrapper.find('input').simulate('change', { target: { value: '' } }); + const { container } = render(); + fireEvent.change(container.querySelector('input'), { target: { value: '' } }); expect(onChange).toHaveBeenLastCalledWith(null); }); it('should call onStep when press up or down button', () => { const onStep = jest.fn(); - const wrapper = mount(); - wrapper.find('.ant-input-number-handler-up').simulate('mousedown'); + const { container } = render(); + fireEvent.mouseDown(container.querySelector('.ant-input-number-handler-up')); expect(onStep).toBeCalledTimes(1); expect(onStep).toHaveBeenLastCalledWith(2, { offset: 1, type: 'up' }); - wrapper.find('.ant-input-number-handler-down').simulate('mousedown'); + + fireEvent.mouseDown(container.querySelector('.ant-input-number-handler-down')); expect(onStep).toBeCalledTimes(2); expect(onStep).toHaveBeenLastCalledWith(1, { offset: 1, type: 'down' }); }); it('renders correctly when controls is boolean', () => { - expect(mount().render()).toMatchSnapshot(); + const { asFragment } = render(); + expect(asFragment().firstChild).toMatchSnapshot(); }); it('renders correctly when controls is {}', () => { - expect(mount().render()).toMatchSnapshot(); + const { asFragment } = render(); + expect(asFragment().firstChild).toMatchSnapshot(); }); it('renders correctly when controls has custom upIcon and downIcon', () => { - const wrapper = mount( + const { asFragment } = render( , @@ -47,11 +50,11 @@ describe('InputNumber', () => { }} />, ); - expect(wrapper.render()).toMatchSnapshot(); + expect(asFragment().firstChild).toMatchSnapshot(); }); it('should support className', () => { - const wrapper = mount( + const { container } = render( , @@ -59,11 +62,11 @@ describe('InputNumber', () => { }} />, ); - expect(wrapper.find('.anticon-arrow-up').getDOMNode().className.includes('my-class-name')).toBe( + expect(container.querySelector('.anticon-arrow-up')?.className.includes('my-class-name')).toBe( true, ); expect( - wrapper.find('.anticon-arrow-down').getDOMNode().className.includes('my-class-name'), + container.querySelector('.anticon-arrow-down')?.className.includes('my-class-name'), ).toBe(true); }); }); diff --git a/components/input-number/__tests__/prefix.test.js b/components/input-number/__tests__/prefix.test.js index 96f1b797aa14..1f9bee8eeff5 100644 --- a/components/input-number/__tests__/prefix.test.js +++ b/components/input-number/__tests__/prefix.test.js @@ -1,25 +1,24 @@ -import { render } from '@testing-library/react'; -import { mount } from 'enzyme'; -import React from 'react'; +import React, { forwardRef } from 'react'; import InputNumber from '..'; import focusTest from '../../../tests/shared/focusTest'; +import { fireEvent, render } from '../../../tests/utils'; describe('prefix', () => { focusTest( - React.forwardRef((props, ref) => ), + forwardRef((props, ref) => ), { refFocus: true }, ); it('should support className when has prefix', () => { const { container } = render(); - expect(container.firstChild.className.includes('my-class-name')).toBe(true); + expect(container.firstChild?.className.includes('my-class-name')).toBe(true); expect(container.querySelector('input')?.className.includes('my-class-name')).toBe(false); }); it('should trigger focus when prefix is clicked', () => { - const wrapper = mount(123} />); + const { container } = render(123} />); - const mockFocus = jest.spyOn(wrapper.find('input').getDOMNode(), 'focus'); - wrapper.find('i').simulate('mouseUp'); + const mockFocus = jest.spyOn(container.querySelector('input'), 'focus'); + fireEvent.mouseUp(container.querySelector('i')); expect(mockFocus).toBeCalled(); }); }); diff --git a/components/input/Input.tsx b/components/input/Input.tsx index c57bfc4ddccf..4bd285858c62 100644 --- a/components/input/Input.tsx +++ b/components/input/Input.tsx @@ -39,7 +39,7 @@ export function resolveOnChange; if (e.type === 'click') { // Clone a new target for event. @@ -63,7 +63,7 @@ export function resolveOnChange); + onChange(event); return; } @@ -75,10 +75,10 @@ export function resolveOnChange); + onChange(event); return; } - onChange(event as React.ChangeEvent); + onChange(event); } export function triggerFocus( diff --git a/components/layout/__tests__/__snapshots__/demo-extend.test.ts.snap b/components/layout/__tests__/__snapshots__/demo-extend.test.ts.snap index 34671947cad8..54ee4e3640ee 100644 --- a/components/layout/__tests__/__snapshots__/demo-extend.test.ts.snap +++ b/components/layout/__tests__/__snapshots__/demo-extend.test.ts.snap @@ -1361,9 +1361,12 @@ exports[`renders ./components/layout/demo/fixed-sider.md extend context correctl class="site-layout-background" style="padding:24px;text-align:center" > +

+ long content +

...
- Really + ...
...
@@ -1371,7 +1374,7 @@ exports[`renders ./components/layout/demo/fixed-sider.md extend context correctl
...
- long + ...
...
@@ -1401,6 +1404,8 @@ exports[`renders ./components/layout/demo/fixed-sider.md extend context correctl
...
+ more +
...
... @@ -1439,6 +1444,110 @@ exports[`renders ./components/layout/demo/fixed-sider.md extend context correctl
...
+ more +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ more +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ more +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
...
... @@ -1455,7 +1564,6 @@ exports[`renders ./components/layout/demo/fixed-sider.md extend context correctl
...
- content
+

+ long content +

...
- Really + ...
...
@@ -741,7 +744,7 @@ exports[`renders ./components/layout/demo/fixed-sider.md correctly 1`] = `
...
- long + ...
...
@@ -771,6 +774,8 @@ exports[`renders ./components/layout/demo/fixed-sider.md correctly 1`] = `
...
+ more +
...
... @@ -809,6 +814,110 @@ exports[`renders ./components/layout/demo/fixed-sider.md correctly 1`] = `
...
+ more +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ more +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ more +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
+ ... +
...
... @@ -825,7 +934,6 @@ exports[`renders ./components/layout/demo/fixed-sider.md correctly 1`] = `
...
- content