Skip to content

Commit 0b3a79d

Browse files
authored
refactor: solve circule dependency (#36)
* refactor: solve circule dependency * fix: add extra export path * fix: add context file
1 parent 99531a8 commit 0b3a79d

File tree

4 files changed

+31
-25
lines changed

4 files changed

+31
-25
lines changed

src/Item.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22
import classNames from 'classnames';
33
import ResizeObserver from 'rc-resize-observer';
4-
import type { ComponentType } from './Overflow';
4+
import type { ComponentType } from './RawItem';
55

66
// Use shared variable to save bundle size
77
const UNDEFINED = undefined;

src/Overflow.tsx

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,16 @@ import ResizeObserver from 'rc-resize-observer';
55
import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';
66
import Item from './Item';
77
import useEffectState, { useBatcher } from './hooks/useEffectState';
8+
import type { ComponentType } from './RawItem';
89
import RawItem from './RawItem';
9-
10-
export const OverflowContext = React.createContext<{
11-
prefixCls: string;
12-
responsive: boolean;
13-
order: number;
14-
registerSize: (key: React.Key, width: number | null) => void;
15-
display: boolean;
16-
17-
invalidate: boolean;
18-
19-
// Item Usage
20-
item?: any;
21-
itemKey?: React.Key;
22-
23-
// Rest Usage
24-
className?: string;
25-
}>(null);
10+
import { OverflowContext } from './context';
2611

2712
const RESPONSIVE = 'responsive' as const;
2813
const INVALIDATE = 'invalidate' as const;
2914

30-
export type ComponentType =
31-
| React.ComponentType<any>
32-
| React.ForwardRefExoticComponent<any>
33-
| React.FC<any>
34-
| keyof React.ReactHTML;
15+
export { OverflowContext } from './context';
16+
17+
export type { ComponentType } from './RawItem';
3518

3619
export interface OverflowProps<ItemType> extends React.HTMLAttributes<any> {
3720
prefixCls?: string;

src/RawItem.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import * as React from 'react';
22
import classNames from 'classnames';
33
import Item from './Item';
4-
import { OverflowContext } from './Overflow';
5-
import type { ComponentType } from './Overflow';
4+
import { OverflowContext } from './context';
5+
6+
export type ComponentType =
7+
| React.ComponentType<any>
8+
| React.ForwardRefExoticComponent<any>
9+
| React.FC<any>
10+
| keyof React.ReactHTML;
611

712
export interface RawItemProps extends React.HTMLAttributes<any> {
813
component?: ComponentType;

src/context.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import React from 'react';
2+
3+
export const OverflowContext = React.createContext<{
4+
prefixCls: string;
5+
responsive: boolean;
6+
order: number;
7+
registerSize: (key: React.Key, width: number | null) => void;
8+
display: boolean;
9+
10+
invalidate: boolean;
11+
12+
// Item Usage
13+
item?: any;
14+
itemKey?: React.Key;
15+
16+
// Rest Usage
17+
className?: string;
18+
}>(null);

0 commit comments

Comments
 (0)