Skip to content

Commit b3f5ed8

Browse files
committed
perf: �migration is method
1 parent 0bfe0a6 commit b3f5ed8

File tree

4 files changed

+39
-12
lines changed

4 files changed

+39
-12
lines changed

packages/desktop-ui/src/_utils/is.ts

+4-12
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
1-
import React from 'react'
2-
3-
export function isElement<P>(element: any): element is React.ReactElement<P> {
4-
return React.isValidElement(element)
5-
}
6-
7-
export function isDOMTypeElement<
8-
P extends React.HTMLAttributes<T> | React.SVGAttributes<T>,
9-
T extends Element,
10-
>(element: any): element is React.DOMElement<P, T> {
11-
return isElement(element) && typeof element.type === 'string'
12-
}
1+
export {
2+
isElement,
3+
isDOMTypeElement,
4+
} from '@template-pro/utils'

packages/utils/src/index.ts

+3
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@ export { default as mergeProps } from './with-default-props'
33

44
// RegExp
55
export * as anyRule from './any-rule'
6+
7+
// Is
8+
export * from './is'
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import React from 'react'
2+
import { isDOMTypeElement, isElement } from '..'
3+
4+
describe('is', () => {
5+
it('isElement working', () => {
6+
expect(isElement(<div />)).toBeTruthy()
7+
8+
expect(isElement('div')).toBeFalsy()
9+
expect(isElement(1)).toBeFalsy()
10+
expect(isElement(true)).toBeFalsy()
11+
})
12+
13+
it('isDOMTypeElement working', () => {
14+
expect(isDOMTypeElement(<div />)).toBeTruthy()
15+
expect(isDOMTypeElement('div')).toBeFalsy()
16+
expect(isDOMTypeElement(1)).toBeFalsy()
17+
expect(isDOMTypeElement(true)).toBeFalsy()
18+
})
19+
})

packages/utils/src/is/index.ts

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { isValidElement } from 'react'
2+
import type { DOMElement, HTMLAttributes, ReactElement, SVGAttributes } from 'react'
3+
4+
export function isElement<P>(element: any): element is ReactElement<P> {
5+
return isValidElement(element)
6+
}
7+
8+
export function isDOMTypeElement<
9+
P extends HTMLAttributes<T> | SVGAttributes<T>,
10+
T extends Element,
11+
>(element: any): element is DOMElement<P, T> {
12+
return isElement(element) && typeof element.type === 'string'
13+
}

0 commit comments

Comments
 (0)