Adam Shaw 6 ani în urmă
părinte
comite
e081cffe7b
2 a modificat fișierele cu 21 adăugiri și 2 ștergeri
  1. 2 1
      packages/core/src/Calendar.tsx
  2. 19 1
      packages/core/src/vdom.ts

+ 2 - 1
packages/core/src/Calendar.tsx

@@ -32,7 +32,7 @@ import EventClicking from './interactions/EventClicking'
 import EventHovering from './interactions/EventHovering'
 import StandardTheme from './theme/StandardTheme'
 import ComponentContext, { ComponentContextType, buildContext } from './component/ComponentContext'
-import { render, h, createRef } from './vdom'
+import { render, h, createRef, flushToDom } from './vdom'
 import { TaskRunner, DelayedRunner } from './util/runner'
 import ViewApi from './ViewApi'
 
@@ -169,6 +169,7 @@ export default class Calendar {
       this.isRendering = true
       this.renderableEventStore = createEmptyEventStore()
       this.renderRunner.request()
+      flushToDom()
     }
   }
 

+ 19 - 1
packages/core/src/vdom.ts

@@ -1,2 +1,20 @@
 
-export { Component, render, h, createRef, VNode, Fragment, ComponentChildren, createContext, Ref } from 'preact'
+export { Component, render, h, createRef, VNode, Fragment, ComponentChildren, createContext, Ref, options as preactOptions } from 'preact'
+import { Component, h, options, render } from 'preact'
+
+
+export function flushToDom() {
+  let oldDebounceRendering = options.debounceRendering
+  options.debounceRendering = execCallbackSync
+  render(h(FakeComponent, {}), document.createElement('div'))
+  options.debounceRendering = oldDebounceRendering
+}
+
+class FakeComponent extends Component {
+  render() { return h('div', {}) }
+  componentDidMount() { this.setState({}) }
+}
+
+function execCallbackSync(callback) {
+  callback()
+}