r.js 1.3 KB

1234567891011121314151617181920212223242526272829
  1. import { preactHooks, preact, serverRender } from './3rd-party/preact.js';
  2. import { virtualDocument } from './3rd-party/virtual-document.js';
  3. import { act } from './3rd-party/preact-test-utils.js';
  4. var createContext = preact.createContext, h = preact.h, render = preact.render, options = preact.options;
  5. var useCallback = preactHooks.useCallback, useEffect = preactHooks.useEffect, useMemo = preactHooks.useMemo, useState = preactHooks.useState, useContext = preactHooks.useContext, useLayoutEffect = preactHooks.useLayoutEffect, useRef = preactHooks.useRef, useReducer = preactHooks.useReducer;
  6. var createElement = h;
  7. options.requestAnimationFrame = function (cb) {
  8. return setTimeout(cb);
  9. };
  10. options.debounceRendering = function (cb) {
  11. return setTimeout(cb);
  12. };
  13. export { act, useRef, createElement, createContext, serverRender, useCallback, useEffect, useMemo, useState, useContext, useLayoutEffect, useReducer, };
  14. export var mountElement = function (element) {
  15. var entryDom = virtualDocument.createElement('div');
  16. render(element, entryDom);
  17. return {
  18. unmount: function () {
  19. render(h('div', {}, 'unmounted'), entryDom);
  20. },
  21. update: function (newElement) {
  22. render(newElement, entryDom);
  23. },
  24. toString: function () {
  25. return entryDom.innerHTML;
  26. },
  27. dom: entryDom,
  28. };
  29. };