Skip to content

Commit 5639467

Browse files
authored
Merge pull request #16 from 1Byte-Software/develop
Update feature
2 parents 53e470f + 74a6f2c commit 5639467

File tree

16 files changed

+199
-7
lines changed

16 files changed

+199
-7
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "1byte-react-design",
3-
"version": "1.4.12",
3+
"version": "1.5.0",
44
"main": "dist/index.js",
55
"module": "dist/index.js",
66
"types": "dist/index.d.ts",

src/molecules/Select/Select.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import clsx from 'clsx';
33
import React, { useMemo } from 'react';
44
import { SelectStyledFunc } from './styles';
55
import { RdSelectComponent, RdSelectProps } from './types';
6-
import { mergeToken } from 'antd/es/theme/internal';
76

87
export const Select: RdSelectComponent = <
98
ValueType = any,
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { BasicDataNode, DataNode } from 'antd/es/tree';
2+
import type RcTree from 'rc-tree';
3+
import { useMemo } from 'react';
4+
import { DirectoryTreeStylesFunc } from './styles';
5+
import { RdDirectoryTreeComponent, RdDirectoryTreeProps } from './types';
6+
7+
export const DirectoryTree: RdDirectoryTreeComponent = <
8+
T extends BasicDataNode | DataNode = DataNode
9+
>(
10+
props: React.PropsWithChildren<RdDirectoryTreeProps<T>> & React.RefAttributes<RcTree>
11+
) => {
12+
const DirectoryTreeStyles = useMemo(
13+
() =>
14+
DirectoryTreeStylesFunc<T>() as (<T extends BasicDataNode | DataNode = DataNode>(
15+
props: React.PropsWithChildren<RdDirectoryTreeProps<T>> &
16+
React.RefAttributes<RcTree>
17+
) => React.ReactElement) &
18+
Pick<React.FC, 'displayName'>,
19+
[]
20+
);
21+
22+
return <DirectoryTreeStyles {...props} />;
23+
};

src/molecules/Tree/Tree.tsx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { BasicDataNode, DataNode } from 'antd/es/tree';
2+
import type RcTree from 'rc-tree';
3+
import { useMemo } from 'react';
4+
import { DirectoryTree } from './DirectoryTree';
5+
import { TreeStylesFunc } from './styles';
6+
import { TreeNode } from './TreeNode';
7+
import { RdTreeCompoundedComponent, RdTreeProps } from './types';
8+
9+
export const TreeInternal = <T extends BasicDataNode | DataNode = DataNode>({
10+
...antdProps
11+
}: RdTreeProps<T>) => {
12+
const TreeStyles = useMemo(
13+
() =>
14+
TreeStylesFunc<T>() as <T extends BasicDataNode | DataNode = DataNode>(
15+
props: React.PropsWithChildren<RdTreeProps<T>> & React.RefAttributes<RcTree>
16+
) => React.ReactElement,
17+
[]
18+
);
19+
20+
return <TreeStyles<T> {...antdProps} />;
21+
};
22+
23+
export const Tree = TreeInternal as RdTreeCompoundedComponent;
24+
25+
Tree.TreeNode = TreeNode;
26+
Tree.DirectoryTree = DirectoryTree;

src/molecules/Tree/TreeNode.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { TreeNodeStyles } from './styles';
2+
import { RdTreeNodeComponent } from './types';
3+
4+
export const TreeNode: RdTreeNodeComponent = props => {
5+
return <TreeNodeStyles {...props} />;
6+
};

src/molecules/Tree/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './Tree';
2+
export * from './types';

src/molecules/Tree/styles.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import styled from '@emotion/styled';
2+
import { Tree } from 'antd';
3+
import { getExcludeForwardProps } from '../../utils/styles';
4+
import { RdDirectoryTreeProps, RdTreeNodeProps, RdTreeProps } from './types';
5+
import { BasicDataNode, DataNode } from 'antd/es/tree';
6+
7+
export const TreeStylesFunc = <T extends BasicDataNode | DataNode = DataNode>() =>
8+
styled(Tree<T>, {
9+
shouldForwardProp: prop =>
10+
getExcludeForwardProps<RdTreeProps>([] as (keyof RdTreeProps)[], prop),
11+
})<RdTreeProps>``;
12+
13+
export const TreeNodeStyles = styled(Tree.TreeNode)<RdTreeNodeProps>``;
14+
15+
export const DirectoryTreeStylesFunc = <T extends BasicDataNode | DataNode = DataNode>() =>
16+
styled(Tree.DirectoryTree<T>)<RdDirectoryTreeProps>``;

src/molecules/Tree/types.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { GetProps, Tree } from 'antd';
2+
import { ComponentToken as TreeComponentTokenAntd } from 'antd/es/card/style';
3+
import { BasicDataNode, DataNode } from 'antd/es/tree';
4+
import type RcTree from 'rc-tree';
5+
import { TreeNode } from 'rc-tree';
6+
import { DirectoryTree } from './DirectoryTree';
7+
import { TreeInternal } from './Tree';
8+
9+
//#region Define Ant Design types
10+
type TreePropsAntd<T extends BasicDataNode | DataNode = DataNode> = GetProps<typeof Tree<T>>;
11+
type TreeNodePropsAntd = GetProps<typeof Tree.TreeNode>;
12+
type DirectoryTreePropsAntd<T extends BasicDataNode | DataNode = DataNode> = GetProps<
13+
typeof Tree.DirectoryTree<T>
14+
>;
15+
//#endregion
16+
17+
//#region Define extended component tokens
18+
type TreeComponentTokenExtend = {};
19+
//#endregion
20+
21+
//#region Define extended types
22+
type TreePropsExtend = {};
23+
24+
type TreeNodePropsExtend = {};
25+
type DirectoryTreePropsExtend = {};
26+
//#endregion
27+
28+
//#region Export types
29+
export type RdTreeProps<T extends BasicDataNode | DataNode = DataNode> = TreePropsAntd<T> &
30+
TreePropsExtend;
31+
export type RdTreeNodeProps = TreeNodePropsAntd & TreeNodePropsExtend;
32+
export type RdDirectoryTreeProps<T extends BasicDataNode | DataNode = DataNode> =
33+
DirectoryTreePropsAntd<T> & DirectoryTreePropsExtend;
34+
35+
export type RdTreeComponentToken = TreeComponentTokenAntd & TreeComponentTokenExtend;
36+
//#endregion
37+
38+
//#region Define component types
39+
export type RdTreeInternalComponent = <T extends BasicDataNode | DataNode = DataNode>(
40+
props: React.PropsWithChildren<RdTreeProps<T>> & React.RefAttributes<RcTree>
41+
) => React.ReactElement;
42+
export type RdTreeNodeComponent = React.FC<Readonly<RdTreeNodeProps>>;
43+
export type RdDirectoryTreeComponent = (<T extends BasicDataNode | DataNode = DataNode>(
44+
props: React.PropsWithChildren<RdDirectoryTreeProps<T>> & React.RefAttributes<RcTree>
45+
) => React.ReactElement) &
46+
Pick<React.FC, 'displayName'>;
47+
48+
export type RdTreeCompoundedComponent = typeof TreeInternal & {
49+
TreeNode: typeof TreeNode;
50+
DirectoryTree: typeof DirectoryTree;
51+
};
52+
//#endregion

src/molecules/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,5 @@ export * from './Table';
4242
export * from './Tabs';
4343
export * from './Tag';
4444
export * from './Tooltip';
45+
export * from './Tree';
4546
export * from './Upload';
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { forwardRef } from 'react';
2+
import { Layout } from '../../molecules';
3+
import DashboardTemplateFooter from './Footer';
24
import DashboardTemplateHeader from './Header';
35
import DashboardTemplateSider from './Sider';
46
import { DashboardTemplateContent, DashboardTemplateStyles } from './styles';
57
import { RdDashboardTemplateComponent, RdDashboardTemplateCompoundedComponent } from './types';
6-
import { Layout } from '../../molecules';
78

89
const DashboardTemplateInternal: RdDashboardTemplateComponent = forwardRef((props, ref) => {
9-
const { headerProps: headerProps, siderProps: siderProps, ...restProps } = props;
10+
const { headerProps, siderProps, footerProps, ...restProps } = props;
1011

1112
return (
1213
<DashboardTemplateStyles ref={ref} {...restProps}>
@@ -15,7 +16,12 @@ const DashboardTemplateInternal: RdDashboardTemplateComponent = forwardRef((prop
1516
<Layout hasSider>
1617
<DashboardTemplateSider {...siderProps} />
1718

18-
<DashboardTemplateContent>{props.children}</DashboardTemplateContent>
19+
<Layout>
20+
<DashboardTemplateContent>{props.children}</DashboardTemplateContent>
21+
{footerProps !== false && (
22+
<DashboardTemplateFooter {...footerProps}></DashboardTemplateFooter>
23+
)}
24+
</Layout>
1925
</Layout>
2026
</DashboardTemplateStyles>
2127
);
@@ -25,3 +31,4 @@ export const DashboardTemplate =
2531
DashboardTemplateInternal as RdDashboardTemplateCompoundedComponent;
2632
DashboardTemplate.Header = DashboardTemplateHeader;
2733
DashboardTemplate.Sider = DashboardTemplateSider;
34+
DashboardTemplate.Footer = DashboardTemplateFooter;

0 commit comments

Comments
 (0)