|
1558 | 1558 | throw new Error("An unsupported type was passed to use(): " + String(usable)); |
1559 | 1559 | } |
1560 | 1560 | function useContext(context) { |
1561 | | - nextHook(); |
| 1561 | + var hook = nextHook(); |
| 1562 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useContext) { |
| 1563 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1564 | + } |
1562 | 1565 | var value = readContext(context); |
1563 | 1566 | hookLog.push({ |
1564 | 1567 | displayName: context.displayName || null, |
|
1571 | 1574 | } |
1572 | 1575 | function useState(initialState) { |
1573 | 1576 | var hook = nextHook(); |
| 1577 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useState) { |
| 1578 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1579 | + } |
1574 | 1580 | var typedInitialState = initialState; |
1575 | 1581 | var state = hook ? hook.result : typeof initialState === "function" ? typedInitialState() : initialState; |
1576 | 1582 | hookLog.push({ |
|
1584 | 1590 | } |
1585 | 1591 | function useReducer(reducer, initialArg, init) { |
1586 | 1592 | var hook = nextHook(); |
| 1593 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useReducer) { |
| 1594 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1595 | + } |
1587 | 1596 | var state = hook ? hook.result : init !== undefined ? init(initialArg) : initialArg; |
1588 | 1597 | hookLog.push({ |
1589 | 1598 | displayName: null, |
|
1596 | 1605 | } |
1597 | 1606 | function useRef(initialValue) { |
1598 | 1607 | var hook = nextHook(); |
| 1608 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useRef) { |
| 1609 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1610 | + } |
1599 | 1611 | var ref = hook ? hook.result : { current: initialValue }; |
1600 | 1612 | hookLog.push({ |
1601 | 1613 | displayName: null, |
|
1607 | 1619 | return ref; |
1608 | 1620 | } |
1609 | 1621 | function useLayoutEffect(create, inputs) { |
1610 | | - nextHook(); |
| 1622 | + var hook = nextHook(); |
| 1623 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useLayoutEffect) { |
| 1624 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1625 | + } |
1611 | 1626 | hookLog.push({ |
1612 | 1627 | displayName: null, |
1613 | 1628 | primitive: "LayoutEffect", |
|
1617 | 1632 | }); |
1618 | 1633 | } |
1619 | 1634 | function useInsertionEffect(create, inputs) { |
1620 | | - nextHook(); |
| 1635 | + var hook = nextHook(); |
| 1636 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useInsertionEffect) { |
| 1637 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1638 | + } |
1621 | 1639 | hookLog.push({ |
1622 | 1640 | displayName: null, |
1623 | 1641 | primitive: "InsertionEffect", |
|
1627 | 1645 | }); |
1628 | 1646 | } |
1629 | 1647 | function useEffect(create, deps) { |
1630 | | - nextHook(); |
| 1648 | + var hook = nextHook(); |
| 1649 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useEffect) { |
| 1650 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1651 | + } |
1631 | 1652 | hookLog.push({ |
1632 | 1653 | displayName: null, |
1633 | 1654 | primitive: "Effect", |
|
1637 | 1658 | }); |
1638 | 1659 | } |
1639 | 1660 | function useImperativeHandle(ref, create, inputs) { |
1640 | | - nextHook(); |
| 1661 | + var hook = nextHook(); |
| 1662 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useImperativeHandle) { |
| 1663 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1664 | + } |
1641 | 1665 | // We don't actually store the instance anywhere if there is no ref callback |
1642 | 1666 | // and if there is a ref callback it might not store it but if it does we |
1643 | 1667 | // have no way of knowing where. So let's only enable introspection of the |
|
1655 | 1679 | }); |
1656 | 1680 | } |
1657 | 1681 | function useDebugValue(value, formatterFn) { |
| 1682 | + var hook = nextHook(); |
| 1683 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useDebugValue) { |
| 1684 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1685 | + } |
1658 | 1686 | hookLog.push({ |
1659 | 1687 | displayName: null, |
1660 | 1688 | primitive: "DebugValue", |
|
1665 | 1693 | } |
1666 | 1694 | function useCallback(callback, inputs) { |
1667 | 1695 | var hook = nextHook(); |
| 1696 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useCallback) { |
| 1697 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1698 | + } |
1668 | 1699 | var value = hook ? hook.result : callback; |
1669 | 1700 | hookLog.push({ |
1670 | 1701 | displayName: null, |
|
1677 | 1708 | } |
1678 | 1709 | function useMemo(nextCreate, inputs) { |
1679 | 1710 | var hook = nextHook(); |
| 1711 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useMemo) { |
| 1712 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1713 | + } |
1680 | 1714 | var value = hook ? hook.result : nextCreate(); |
1681 | 1715 | hookLog.push({ |
1682 | 1716 | displayName: null, |
|
1688 | 1722 | return value; |
1689 | 1723 | } |
1690 | 1724 | function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) { |
1691 | | - nextHook(); |
| 1725 | + var hook = nextHook(); |
| 1726 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useSyncExternalStore) { |
| 1727 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1728 | + } |
1692 | 1729 | var value = getSnapshot(); |
1693 | 1730 | hookLog.push({ |
1694 | 1731 | displayName: null, |
|
1701 | 1738 | } |
1702 | 1739 | function useTransition() { |
1703 | 1740 | var hook = nextHook(); |
| 1741 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useTransition) { |
| 1742 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1743 | + } |
1704 | 1744 | var isPending = hook ? hook.result[0] : false; |
1705 | 1745 | hookLog.push({ |
1706 | 1746 | displayName: null, |
|
1713 | 1753 | } |
1714 | 1754 | function useDeferredValue(value, initialValue) { |
1715 | 1755 | var hook = nextHook(); |
| 1756 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useDeferredValue) { |
| 1757 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1758 | + } |
1716 | 1759 | var prevValue = hook ? hook.result : value; |
1717 | 1760 | hookLog.push({ |
1718 | 1761 | displayName: null, |
|
1725 | 1768 | } |
1726 | 1769 | function useId() { |
1727 | 1770 | var hook = nextHook(); |
| 1771 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useId) { |
| 1772 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1773 | + } |
1728 | 1774 | var id = hook ? hook.result : ""; |
1729 | 1775 | hookLog.push({ |
1730 | 1776 | displayName: null, |
|
1737 | 1783 | } |
1738 | 1784 | function useSignal(initial) { |
1739 | 1785 | var hook = nextHook(); |
| 1786 | + if (hook && hook.type !== reactShared.HOOK_TYPE.useSignal) { |
| 1787 | + throw new Error("Invalid hook type, look like a bug for @my-react/devtools"); |
| 1788 | + } |
1740 | 1789 | var value = hook ? hook.result.getValue : typeof initial === "function" ? initial : function () { return initial; }; |
1741 | 1790 | hookLog.push({ |
1742 | 1791 | displayName: null, |
|
2047 | 2096 | // the Hooks but we can at least show what ever we got so far. |
2048 | 2097 | return; |
2049 | 2098 | } |
| 2099 | + if (reactShared.isPromise(error)) { |
| 2100 | + return; |
| 2101 | + } |
2050 | 2102 | if (error instanceof Error && error.name === "ReactDebugToolsUnsupportedHookError") { |
2051 | 2103 | throw error; |
2052 | 2104 | } |
|
0 commit comments