Skip to content

Commit

Permalink
fix(layout): better theme gen style
Browse files Browse the repository at this point in the history
  • Loading branch information
chenshuai2144 committed Nov 28, 2022
1 parent 9247c4a commit fcbc182
Show file tree
Hide file tree
Showing 16 changed files with 1,242 additions and 1,235 deletions.
55 changes: 23 additions & 32 deletions docs/demos/customization-value-type.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import type { ProFormColumnsType } from '@ant-design/pro-components';
import {
BetaSchemaForm,
ProCard,
ProDescriptions,
ProProvider,
ProTable,
} from '@ant-design/pro-components';
import { ProConfigProvider } from '@ant-design/pro-components';
import { BetaSchemaForm, ProCard, ProDescriptions, ProTable } from '@ant-design/pro-components';
import type { InputRef } from 'antd';
import { Input, Space, Tag } from 'antd';
import React, { useContext, useRef, useState } from 'react';
import React, { useRef, useState } from 'react';

const valueEnum = {
0: 'close',
Expand Down Expand Up @@ -149,33 +144,29 @@ const initialValue = {
};

export default () => {
const values = useContext(ProProvider);
return (
<ProProvider.Provider
value={{
hashed: false,
...values,
valueTypeMap: {
link: {
render: (text) => <a>{text}</a>,
renderFormItem: (text, props) => (
<Input placeholder="请输入链接" {...props?.fieldProps} />
),
},
tags: {
render: (text) => {
return (
<>
{[text].flat(1).map((item) => (
<Tag key={item.value}>{item.label}</Tag>
))}
</>
);
},
renderFormItem: (text, props) => <TagList {...props} {...props?.fieldProps} />,
<ProConfigProvider
valueTypeMap={{
link: {
render: (text) => <a>{text}</a>,
renderFormItem: (text, props) => (
<Input placeholder="请输入链接" {...props?.fieldProps} />
),
},
tags: {
render: (text) => {
return (
<>
{[text].flat(1).map((item) => (
<Tag key={item.value}>{item.label}</Tag>
))}
</>
);
},
renderFormItem: (text, props) => <TagList {...props} {...props?.fieldProps} />,
},
}}
hashed={false}
>
<ProCard
title="SchemaForm"
Expand Down Expand Up @@ -213,6 +204,6 @@ export default () => {
>
<ProDescriptions columns={tableColumns} dataSource={initialValue} />
</ProCard>
</ProProvider.Provider>
</ProConfigProvider>
);
};
4 changes: 2 additions & 2 deletions packages/field/src/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import ConfigContext from '@ant-design/pro-provider';
import ProConfigContext from '@ant-design/pro-provider';
import type {
BaseProFieldFC,
ProFieldFCRenderProps,
Expand Down Expand Up @@ -466,7 +466,7 @@ const ProFieldComponent: React.ForwardRefRenderFunction<any, ProFieldPropsType>
{ text, valueType = 'text', mode = 'read', onChange, renderFormItem, value, readonly, ...rest },
ref: any,
) => {
const context = useContext(ConfigContext);
const context = useContext(ProConfigContext);

const fieldProps = (value !== undefined || onChange || rest?.fieldProps) && {
value,
Expand Down
23 changes: 3 additions & 20 deletions packages/layout/src/ProLayout.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { darkAlgorithm, defaultAlgorithm, ProTokenType } from '@ant-design/pro-provider';
import type { ProTokenType } from '@ant-design/pro-provider';
import { ProProvider } from '@ant-design/pro-provider';
import { ProConfigProvider } from '@ant-design/pro-provider';
import { isBrowser, merge, useDocumentTitle, useMountMergeState } from '@ant-design/pro-utils';
import { isBrowser, useDocumentTitle, useMountMergeState } from '@ant-design/pro-utils';
import { getMatchMenu } from '@umijs/route-utils';
import type { BreadcrumbProps as AntdBreadcrumbProps } from 'antd';
import { ConfigProvider, Layout } from 'antd';
Expand Down Expand Up @@ -717,33 +717,16 @@ BaseProLayout.defaultProps = {

const ProLayout: React.FC<ProLayoutProps> = (props) => {
const { colorPrimary } = props;
const tokenContext = useContext(ProProvider);
return (
<ConfigProvider
// @ts-ignore
theme={{
hashed: process.env.NODE_ENV?.toLowerCase() !== 'test',
components: {
Button: {
colorBgContainer: props.navTheme?.includes('Dark') ? 'transparent' : '#FFF',
},
},
token: {
colorPrimary: colorPrimary || '#1677FF',
},
algorithm: props.navTheme?.includes('Dark') ? darkAlgorithm : defaultAlgorithm,
}}
>
<ProConfigProvider
autoClearCache
token={
props.token
? merge(tokenContext.token, {
layout: merge(tokenContext.token?.layout, props.token || {}),
})
: undefined
}
>
<ProConfigProvider autoClearCache dark={props.navTheme === 'realDark'} token={props.token}>
<BaseProLayout {...props} />
</ProConfigProvider>
</ConfigProvider>
Expand Down
10 changes: 3 additions & 7 deletions packages/layout/src/demos/base.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
import ProCard from '@ant-design/pro-card';
import type { ProSettings } from '@ant-design/pro-layout';
import { PageContainer, ProLayout, SettingDrawer } from '@ant-design/pro-layout';
import { ProProvider } from '@ant-design/pro-provider';
import { ProConfigProvider } from '@ant-design/pro-provider';
import { css } from '@emotion/css';
import { Button, Divider, Popover, Input, theme } from 'antd';
import React, { useState } from 'react';
Expand Down Expand Up @@ -261,11 +261,7 @@ export default () => {
height: '100vh',
}}
>
<ProProvider.Provider
value={{
hashed: false,
}}
>
<ProConfigProvider hashed={false}>
<ProLayout
bgLayoutImgList={[
{
Expand Down Expand Up @@ -401,7 +397,7 @@ export default () => {
disableUrlParams={false}
/>
</ProLayout>
</ProProvider.Provider>
</ProConfigProvider>
</div>
);
};
3 changes: 2 additions & 1 deletion packages/layout/src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ import type { SettingDrawerProps, SettingDrawerState } from './components/Settin
import { SettingDrawer } from './components/SettingDrawer';
import type { TopNavHeaderProps } from './components/TopNavHeader';
import { TopNavHeader } from './components/TopNavHeader';
import { WaterMark, WaterMarkProps } from './components/WaterMark';
import type { WaterMarkProps } from './components/WaterMark';
import { WaterMark } from './components/WaterMark';
import type { RouteContextType } from './context/RouteContext';
import { RouteContext } from './context/RouteContext';
import { getPageTitle } from './getPageTitle';
Expand Down
Loading

0 comments on commit fcbc182

Please sign in to comment.