Переглянути джерело

switch between preact/react

Adam Shaw 5 роки тому
батько
коміт
87c62aea9d

+ 7 - 1
packages/core/package.json

@@ -6,7 +6,13 @@
   "description": "Provides core functionality, including the Calendar class",
   "docs": "https://fullcalendar.io/docs/initialize-es6",
   "dependencies": {
-    "preact": "^10.0.5",
     "tslib": "^1.9.3"
+  },
+  "devDependencies": {
+    "@types/react": "^16.9.34",
+    "@types/react-dom": "^16.9.6",
+    "preact": "^10.0.5",
+    "react": "^16.13.1",
+    "react-dom": "^16.13.1"
   }
 }

+ 28 - 0
packages/core/src/vdom-preact.ts

@@ -0,0 +1,28 @@
+
+export { Component, render, createRef, VNode, Fragment, ComponentChildren, createContext, Ref, h, RefObject, ComponentType } from 'preact'
+import { Component, h, options, render } from 'preact'
+
+
+export function flushToDom() {
+  let oldDebounceRendering = options.debounceRendering
+  let callbackQ = []
+
+  function execCallbackSync(callback) {
+    callbackQ.push(callback)
+  }
+
+  options.debounceRendering = execCallbackSync
+  render(h(FakeComponent, {}), document.createElement('div'))
+
+  while (callbackQ.length) {
+    callbackQ.shift()()
+  }
+
+  options.debounceRendering = oldDebounceRendering
+}
+
+
+class FakeComponent extends Component {
+  render() { return h('div', {}) }
+  componentDidMount() { this.setState({}) }
+}

+ 17 - 0
packages/core/src/vdom-react.ts

@@ -0,0 +1,17 @@
+
+export { Component, Fragment, createRef, ReactNode, createContext, Ref, RefObject, ComponentType, createElement as h } from 'react'
+export { render } from 'react-dom'
+
+import { ReactNode } from 'react'
+export type VNode = ReactNode
+export type ComponentChild =
+  | VNode
+  | object
+  | string
+  | number
+  | boolean
+  | null
+  | undefined
+export type ComponentChildren = ComponentChild | ComponentChild[]
+
+export function flushToDom() {}

+ 2 - 26
packages/core/src/vdom.ts

@@ -1,28 +1,4 @@
 
-export { Component, render, createRef, VNode, Fragment, ComponentChildren, createContext, Ref, h, options as preactOptions, RefObject, ComponentType } from 'preact'
-import { Component, h, options, render } from 'preact'
+export * from './vdom-preact'
 
-
-export function flushToDom() {
-  let oldDebounceRendering = options.debounceRendering
-  let callbackQ = []
-
-  function execCallbackSync(callback) {
-    callbackQ.push(callback)
-  }
-
-  options.debounceRendering = execCallbackSync
-  render(h(FakeComponent, {}), document.createElement('div'))
-
-  while (callbackQ.length) {
-    callbackQ.shift()()
-  }
-
-  options.debounceRendering = oldDebounceRendering
-}
-
-
-class FakeComponent extends Component {
-  render() { return h('div', {}) }
-  componentDidMount() { this.setState({}) }
-}
+// export * from './vdom-react'