mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-07 17:44:35 +08:00

* feat[Divider]: Unified use of orientation attribute * feat: Restore the size type missed in the merge * feat: Delete unnecessary demo adjustments * docs: change text * feat: deprecated warning * Update components/divider/index.zh-CN.md Signed-off-by: thinkasany <480968828@qq.com> * Update components/divider/index.en-US.md Signed-off-by: thinkasany <480968828@qq.com> * feat: use useOrientation and change test,doc * feat: change demos orientation attribut * docs: change token and demo (orientationMargin->titlePlacementMargin) * feat: change demos titlePlacement="left/right" -> "start/end" * docs: titlePlacement align * feat: Resolve merge conflicts * fix: lint error * fix: demo lint error * feat: use mergedStyles.content * test: update snapshot * rerun ci * test: update snapshot * fix: delete titlePlacementMargin and udpate snapshots * feat: change demos orientationMargin-> styles.content.margin * Update components/divider/demo/vertical.md Co-authored-by: thinkasany <480968828@qq.com> Signed-off-by: EmilyyyLiu <100924403+EmilyyyLiu@users.noreply.github.com> * feat: Call warning using list * docs: `vertical` to make the divider vertical. * docs: Modify punctuation usage * docs: Add deprecated description * docs: Clarify the possible values for titlePlacement in the example * feat: replase { margin: '0' } ->{ margin: 0 } --------- Signed-off-by: thinkasany <480968828@qq.com> Signed-off-by: EmilyyyLiu <100924403+EmilyyyLiu@users.noreply.github.com> Co-authored-by: 刘欢 <lh01217311@antgroup.com> Co-authored-by: thinkasany <480968828@qq.com>
90 lines
1.9 KiB
TypeScript
90 lines
1.9 KiB
TypeScript
import React, { useState } from 'react';
|
|
import { Divider, Flex, Segmented, Skeleton } from 'antd';
|
|
|
|
import SemanticPreview from '../../../.dumi/theme/common/SemanticPreview';
|
|
import useLocale from '../../../.dumi/hooks/useLocale';
|
|
|
|
interface PreviewContentProps {
|
|
element: string;
|
|
setElement: (element: string) => void;
|
|
}
|
|
|
|
const COMPONENT_MAP: Record<string, React.ElementType> = {
|
|
Avatar: Skeleton.Avatar,
|
|
Button: Skeleton.Button,
|
|
Input: Skeleton.Input,
|
|
Node: Skeleton.Node,
|
|
Image: Skeleton.Image,
|
|
};
|
|
|
|
const OPTIONS = [
|
|
{
|
|
value: 'Avatar',
|
|
label: 'Avatar',
|
|
},
|
|
{
|
|
value: 'Button',
|
|
label: 'Button',
|
|
},
|
|
{
|
|
value: 'Input',
|
|
label: 'Input',
|
|
},
|
|
{
|
|
value: 'Image',
|
|
label: 'Image',
|
|
},
|
|
{
|
|
value: 'Node',
|
|
label: 'Node',
|
|
},
|
|
];
|
|
|
|
const PreviewContent: React.FC<PreviewContentProps> = ({ element, setElement, ...rest }) => {
|
|
const Element = COMPONENT_MAP[element];
|
|
|
|
return (
|
|
<Flex vertical style={{ width: 'fit-content', marginRight: 'auto' }}>
|
|
<Segmented
|
|
options={OPTIONS}
|
|
value={element}
|
|
onChange={(value: string) => setElement(value)}
|
|
/>
|
|
<Divider titlePlacement="start" plain>
|
|
Preview
|
|
</Divider>
|
|
<Element {...rest} />
|
|
</Flex>
|
|
);
|
|
};
|
|
|
|
const locales = {
|
|
cn: {
|
|
root: '根元素',
|
|
content: '内容元素',
|
|
},
|
|
en: {
|
|
root: 'Root element',
|
|
content: 'Content element',
|
|
},
|
|
};
|
|
|
|
const App: React.FC = () => {
|
|
const [element, setElement] = useState('Avatar');
|
|
const [locale] = useLocale(locales);
|
|
|
|
return (
|
|
<SemanticPreview
|
|
componentName={`Skeleton.${element}`}
|
|
semantics={[
|
|
{ name: 'root', desc: locale.root, version: '6.0.0' },
|
|
{ name: 'content', desc: locale.content, version: '6.0.0' },
|
|
]}
|
|
>
|
|
<PreviewContent element={element} setElement={setElement} />
|
|
</SemanticPreview>
|
|
);
|
|
};
|
|
|
|
export default App;
|