Spaces:
Sleeping
Sleeping
File size: 1,586 Bytes
56fda74 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import * as React from 'react'
import Emotion, { createEmotionProps } from './emotion-element'
import { EmotionJSX } from './jsx-namespace'
import { hasOwn } from './utils'
export const jsx: typeof React.createElement = function (
type: any,
props: any
): any {
// eslint-disable-next-line prefer-rest-params
let args: any = arguments
if (props == null || !hasOwn.call(props, 'css')) {
return React.createElement.apply(undefined, args)
}
let argsLength = args.length
let createElementArgArray: any = new Array(argsLength)
createElementArgArray[0] = Emotion
createElementArgArray[1] = createEmotionProps(type, props)
for (let i = 2; i < argsLength; i++) {
createElementArgArray[i] = args[i]
}
return React.createElement.apply(null, createElementArgArray)
}
export namespace jsx {
export namespace JSX {
export type ElementType = EmotionJSX.ElementType
export interface Element extends EmotionJSX.Element {}
export interface ElementClass extends EmotionJSX.ElementClass {}
export interface ElementAttributesProperty
extends EmotionJSX.ElementAttributesProperty {}
export interface ElementChildrenAttribute
extends EmotionJSX.ElementChildrenAttribute {}
export type LibraryManagedAttributes<C, P> =
EmotionJSX.LibraryManagedAttributes<C, P>
export interface IntrinsicAttributes
extends EmotionJSX.IntrinsicAttributes {}
export interface IntrinsicClassAttributes<T>
extends EmotionJSX.IntrinsicClassAttributes<T> {}
export type IntrinsicElements = EmotionJSX.IntrinsicElements
}
}
|