|
1 |
| -import isObject from 'lodash/isObject'; |
2 |
| -import once from 'lodash/once'; |
3 | 1 | import * as typeIs from './typeIs';
|
4 | 2 | import createUniqueClassName from './createUniqueClassName';
|
5 | 3 | import getNodeTextContent from './getNodeTextContent';
|
6 | 4 | import DarkModeProps, { Theme } from './DarkModeProps';
|
7 | 5 | import getTheme from './getTheme';
|
8 | 6 | import { allEqual } from './allEqual';
|
9 |
| -export { validateChildren } from './validateChildren'; |
| 7 | +export { validateChildren, isComponentType } from './validateChildren'; |
10 | 8 | export { createSyntheticEvent } from './createSyntheticEvent';
|
| 9 | +export { consoleOnce } from './consoleOnce'; |
11 | 10 |
|
12 | 11 | export {
|
13 | 12 | type ExtendedComponentProps,
|
@@ -87,23 +86,6 @@ export type OneOf<T1, T2> =
|
87 | 86 | | (T1 & Partial<Record<Exclude<keyof T2, keyof T1>, never>>)
|
88 | 87 | | (T2 & Partial<Record<Exclude<keyof T1, keyof T2>, never>>);
|
89 | 88 |
|
90 |
| -/** Helper type to check if element is a specific React Component */ |
91 |
| -export function isComponentType< |
92 |
| - T extends React.ReactElement = React.ReactElement, |
93 |
| ->(element: React.ReactNode, displayName: string): element is T { |
94 |
| - return ( |
95 |
| - element != null && |
96 |
| - typeof element === 'object' && |
97 |
| - 'type' in element && |
98 |
| - ((element.type as any).displayName === displayName || |
99 |
| - // TODO: temp solution; Components using InferredPolymorphic have a displayName inside render. |
100 |
| - // https://jira.mongodb.org/browse/LG-3232 |
101 |
| - (isObject(element.type as any) && |
102 |
| - 'render' in (element.type as any) && |
103 |
| - (element.type as any).render?.displayName === displayName)) |
104 |
| - ); |
105 |
| -} |
106 |
| - |
107 | 89 | /**
|
108 | 90 | * Utility for making it easier to couple a React Component to a css selector.
|
109 | 91 | * Useful when writing css selectors that rely on interactivity, i.e. :hover.
|
@@ -220,9 +202,3 @@ export type RecursivePartial<T> = {
|
220 | 202 | export function enforceExhaustive(value: never): never {
|
221 | 203 | throw Error(`Received unhandled value: ${value}`);
|
222 | 204 | }
|
223 |
| - |
224 |
| -export const consoleOnce = { |
225 |
| - error: once(console.error), |
226 |
| - warn: once(console.warn), |
227 |
| - log: once(console.log), |
228 |
| -}; |
0 commit comments