@reckona/mreact-compat 0.0.151 → 0.0.153
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/class-component.d.ts +2 -2
- package/dist/class-component.d.ts.map +1 -1
- package/dist/class-component.js +29 -3
- package/dist/class-component.js.map +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -1
- package/dist/fiber-reconciler.js +45 -3
- package/dist/fiber-reconciler.js.map +1 -1
- package/dist/hooks.d.ts +5 -2
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +38 -15
- package/dist/hooks.js.map +1 -1
- package/dist/server-render.d.ts.map +1 -1
- package/dist/server-render.js +11 -1
- package/dist/server-render.js.map +1 -1
- package/package.json +3 -3
- package/src/class-component.ts +35 -2
- package/src/events.ts +2 -0
- package/src/fiber-reconciler.ts +54 -2
- package/src/hooks.ts +43 -15
- package/src/server-render.ts +16 -1
package/README.md
CHANGED
|
@@ -58,6 +58,7 @@ Known limits:
|
|
|
58
58
|
reconciler. The tests assert observable behavior for the supported surface.
|
|
59
59
|
- The app-router compiler path is separate from the React-compatible runtime.
|
|
60
60
|
Compiler and router behavior is covered by their own tests.
|
|
61
|
+
- `useId()` returns opaque underscore-delimited ids such as `_R_0_` and `_r_0_` instead of React's colon-delimited internal shape. The runtime keeps SSR and hydration ids stable through its hydrated-id map, but code should not parse the id string.
|
|
61
62
|
- React private internals such as `__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`
|
|
62
63
|
are intentionally classified as private, not implemented as public API.
|
|
63
64
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RootRuntime } from "./hooks.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type ReactCompatElement, type ReactCompatNode } from "./element.js";
|
|
3
3
|
import { type RenderOptions } from "./hydration.js";
|
|
4
4
|
import type { ReconcileNode, ReconcileResult } from "./reconcile-types.js";
|
|
5
5
|
export interface ClassComponentInstance {
|
|
@@ -59,7 +59,7 @@ export declare function renderClassComponentWithRuntime(type: ClassComponentType
|
|
|
59
59
|
}): ClassComponentRenderResult;
|
|
60
60
|
export declare function applyDerivedStateFromProps(type: ClassComponentType, instance: ClassComponentInstance, nextProps: Record<string, unknown>, previousState: Record<string, unknown>): void;
|
|
61
61
|
export declare function resolveDerivedStateFromProps(type: ClassComponentType, nextProps: Record<string, unknown>, previousState: Record<string, unknown>): Record<string, unknown>;
|
|
62
|
-
export declare function recoverClassComponentError(type: ClassComponentType, instance: ClassComponentInstance, error: unknown): ReactCompatNode | undefined;
|
|
62
|
+
export declare function recoverClassComponentError(type: ClassComponentType, instance: ClassComponentInstance, error: unknown, componentStack?: string): ReactCompatNode | undefined;
|
|
63
63
|
export declare function isClassComponentType(value: unknown): value is ClassComponentType;
|
|
64
64
|
export declare function reconcileErrorBoundary(parent: ParentNode, previousNodes: readonly Node[], element: ReactCompatElement, runtime: RootRuntime, path: string, options: RenderOptions, reconcileNode: ReconcileNode): ReconcileResult;
|
|
65
65
|
export declare function hasDirtyClassUpdate(runtime: RootRuntime | undefined, keys: readonly string[], prefix?: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-component.d.ts","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"class-component.d.ts","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"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"}
|
package/dist/class-component.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { renderWithRootRuntime, useLayoutEffect, useRef } from "./hooks.js";
|
|
2
|
+
import { isReactCompatElement } from "./element.js";
|
|
2
3
|
import { withHydrationComponentStack } from "./hydration.js";
|
|
3
4
|
import { isThenable } from "./thenable.js";
|
|
4
5
|
import { shallowEqual } from "./prop-comparison.js";
|
|
@@ -45,7 +46,7 @@ export function reconcileClassComponent(parent, previousNodes, type, props, runt
|
|
|
45
46
|
return reconcileNode(parent, previousNodes, rendered.node, runtime, `${path}.class`, childOptions);
|
|
46
47
|
}
|
|
47
48
|
catch (error) {
|
|
48
|
-
const fallbackNode = recoverClassComponentError(rendered.type, rendered.instance, error);
|
|
49
|
+
const fallbackNode = recoverClassComponentError(rendered.type, rendered.instance, error, componentStackFromNode(rendered.node, getClassComponentName(rendered.type)));
|
|
49
50
|
if (fallbackNode === undefined) {
|
|
50
51
|
throw error;
|
|
51
52
|
}
|
|
@@ -125,7 +126,7 @@ export function resolveDerivedStateFromProps(type, nextProps, previousState) {
|
|
|
125
126
|
...derivedState,
|
|
126
127
|
};
|
|
127
128
|
}
|
|
128
|
-
export function recoverClassComponentError(type, instance, error) {
|
|
129
|
+
export function recoverClassComponentError(type, instance, error, componentStack = componentStackFromClassType(type)) {
|
|
129
130
|
if (isThenable(error) || !isErrorBoundaryClass(type, instance)) {
|
|
130
131
|
return undefined;
|
|
131
132
|
}
|
|
@@ -137,7 +138,9 @@ export function recoverClassComponentError(type, instance, error) {
|
|
|
137
138
|
...derivedState,
|
|
138
139
|
};
|
|
139
140
|
}
|
|
140
|
-
instance.componentDidCatch?.(normalizedError, {
|
|
141
|
+
instance.componentDidCatch?.(normalizedError, {
|
|
142
|
+
componentStack,
|
|
143
|
+
});
|
|
141
144
|
return instance.render();
|
|
142
145
|
}
|
|
143
146
|
export function isClassComponentType(value) {
|
|
@@ -148,6 +151,29 @@ export function isClassComponentType(value) {
|
|
|
148
151
|
function getClassComponentName(type) {
|
|
149
152
|
return type.name === "" ? "Anonymous" : type.name;
|
|
150
153
|
}
|
|
154
|
+
function componentStackFromClassType(type) {
|
|
155
|
+
return `\n at ${getClassComponentName(type)}`;
|
|
156
|
+
}
|
|
157
|
+
function componentStackFromNode(node, boundaryName) {
|
|
158
|
+
const childName = componentNameFromNode(node);
|
|
159
|
+
return childName === undefined || childName === boundaryName
|
|
160
|
+
? `\n at ${boundaryName}`
|
|
161
|
+
: `\n at ${childName}\n at ${boundaryName}`;
|
|
162
|
+
}
|
|
163
|
+
function componentNameFromNode(node) {
|
|
164
|
+
if (!isReactCompatElement(node)) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
if (typeof node.type === "string") {
|
|
168
|
+
return node.type;
|
|
169
|
+
}
|
|
170
|
+
const displayName = node.type.displayName;
|
|
171
|
+
if (typeof displayName === "string" && displayName !== "") {
|
|
172
|
+
return displayName;
|
|
173
|
+
}
|
|
174
|
+
const name = node.type.name;
|
|
175
|
+
return typeof name === "string" && name !== "" ? name : "Anonymous";
|
|
176
|
+
}
|
|
151
177
|
export function reconcileErrorBoundary(parent, previousNodes, element, runtime, path, options, reconcileNode) {
|
|
152
178
|
try {
|
|
153
179
|
return reconcileNode(parent, previousNodes, element.props.children, runtime, `${path}.eb`, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-component.js","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { renderWithRootRuntime, useLayoutEffect, useRef, type RootRuntime } from \"./hooks.js\";\nimport type { ReactCompatElement, ReactCompatNode } from \"./element.js\";\nimport { withHydrationComponentStack, type RenderOptions } from \"./hydration.js\";\nimport type { ReconcileNode, ReconcileResult } from \"./reconcile-types.js\";\nimport { isThenable } from \"./thenable.js\";\nimport { shallowEqual } from \"./prop-comparison.js\";\n\nconst CLASS_COMPONENT_RUNTIME_OWNER = Symbol.for(\"modular.react.class_component_runtime\");\n\nexport interface ClassComponentInstance {\n props: Record<string, unknown>;\n state?: Record<string, unknown>;\n setState?: (\n partial:\n | Record<string, unknown>\n | ((\n previousState: Record<string, unknown>,\n props: Record<string, unknown>,\n ) => Record<string, unknown> | null),\n callback?: () => void,\n ) => void;\n forceUpdate?: (callback?: () => void) => void;\n render(): ReactCompatNode;\n componentDidMount?: () => void;\n componentDidUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n snapshot?: unknown,\n ) => void;\n componentWillUnmount?: () => void;\n shouldComponentUpdate?: (\n nextProps: Record<string, unknown>,\n nextState: Record<string, unknown>,\n ) => boolean;\n getSnapshotBeforeUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n ) => unknown;\n componentDidCatch?: (error: Error, info: { componentStack: string }) => void;\n}\n\nexport interface ClassComponentType {\n new (props: Record<string, unknown>): ClassComponentInstance;\n getDerivedStateFromProps?: (\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n ) => Record<string, unknown> | null;\n getDerivedStateFromError?: (error: Error) => Record<string, unknown> | null;\n}\n\nexport interface Component<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> {\n props: P;\n state?: S;\n setState(\n partial:\n | Partial<S>\n | ((\n previousState: Readonly<S>,\n props: Readonly<P>,\n ) => Partial<S> | S | null),\n callback?: () => void,\n ): void;\n forceUpdate(callback?: () => void): void;\n render(): ReactCompatNode;\n}\n\nexport interface ComponentConstructor {\n new <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(props: P): Component<P, S>;\n <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(this: Component<P, S>, props: P): void;\n prototype: Component<any, any>;\n}\n\nexport const Component: ComponentConstructor = function Component<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n>(this: Component<P, S>, props: P): void {\n this.props = props;\n} as ComponentConstructor;\n\nComponent.prototype.setState = function setState<\n P extends Record<string, unknown>,\n S extends Record<string, unknown>,\n>(\n this: Component<P, S>,\n partial:\n | Partial<S>\n | ((\n previousState: Readonly<S>,\n props: Readonly<P>,\n ) => Partial<S> | S | null),\n callback?: () => void,\n): void {\n enqueueClassSetState(\n this as unknown as ClassComponentInstance,\n partial as Parameters<NonNullable<ClassComponentInstance[\"setState\"]>>[0],\n callback,\n );\n};\n\nComponent.prototype.forceUpdate = function forceUpdate(\n this: Component,\n callback?: () => void,\n): void {\n enqueueClassForceUpdate(this as unknown as ClassComponentInstance, callback);\n};\n\nComponent.prototype.render = function render(): ReactCompatNode {\n return null;\n};\n\nexport interface PureComponent<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> extends Component<P, S> {\n shouldComponentUpdate(nextProps: P, nextState: S): boolean;\n}\n\nexport interface PureComponentConstructor {\n new <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(props: P): PureComponent<P, S>;\n <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(this: PureComponent<P, S>, props: P): void;\n prototype: PureComponent<any, any>;\n}\n\nexport const PureComponent: PureComponentConstructor = function PureComponent<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n>(this: PureComponent<P, S>, props: P): void {\n (Component as unknown as (this: unknown, props: unknown) => void).call(\n this,\n props,\n );\n} as PureComponentConstructor;\n\nPureComponent.prototype = Object.create(Component.prototype) as PureComponent<any, any>;\nPureComponent.prototype.constructor = PureComponent;\nPureComponent.prototype.shouldComponentUpdate = function shouldComponentUpdate<\n P extends Record<string, unknown>,\n S extends Record<string, unknown>,\n>(\n this: PureComponent<P, S>,\n nextProps: P,\n nextState: S,\n): boolean {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state ?? {}, nextState ?? {});\n};\n\ninterface ClassLifecycleSnapshot {\n previousState?: Record<string, unknown>;\n nextState?: Record<string, unknown>;\n force?: boolean;\n snapshot?: unknown;\n}\n\ninterface ClassUpdateContext {\n runtime: RootRuntime;\n path: string;\n}\n\ninterface ClassComponentGlobalState {\n lifecycleSnapshots: WeakMap<ClassComponentInstance, ClassLifecycleSnapshot>;\n updateContexts: WeakMap<ClassComponentInstance, ClassUpdateContext>;\n pendingInstancesByRuntime: WeakMap<RootRuntime, Map<string, ClassComponentInstance>>;\n dirtyPathsByRuntime: WeakMap<RootRuntime, Set<string>>;\n}\n\nconst CLASS_COMPONENT_STATE_KEY = Symbol.for(\"modular.react.class_component_state\");\nconst classComponentGlobalState =\n ((globalThis as typeof globalThis & Record<symbol, ClassComponentGlobalState | undefined>)[\n CLASS_COMPONENT_STATE_KEY\n ] ??= {\n lifecycleSnapshots: new WeakMap(),\n updateContexts: new WeakMap(),\n pendingInstancesByRuntime: new WeakMap(),\n dirtyPathsByRuntime: new WeakMap(),\n });\nconst classLifecycleSnapshots = classComponentGlobalState.lifecycleSnapshots;\nconst classUpdateContexts = classComponentGlobalState.updateContexts;\nconst classPendingInstancesByRuntime = classComponentGlobalState.pendingInstancesByRuntime;\nconst classDirtyPathsByRuntime = classComponentGlobalState.dirtyPathsByRuntime;\n\nexport type ClassComponentRenderResult =\n | {\n kind: \"render\";\n node: ReactCompatNode;\n instance: ClassComponentInstance;\n type: ClassComponentType;\n }\n | { kind: \"skip\" };\n\nexport function reconcileClassComponent(\n parent: ParentNode,\n previousNodes: readonly Node[],\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n onInstance?: (instance: ClassComponentInstance) => void,\n): ReconcileResult {\n const rendered = renderClassComponentWithRuntime(type, props, runtime, path);\n\n if (rendered.kind === \"skip\") {\n return { nodes: previousNodes.slice(0, 1), consumed: previousNodes.length };\n }\n\n onInstance?.(rendered.instance);\n const childOptions = withHydrationComponentStack(\n options,\n getClassComponentName(type),\n );\n\n try {\n return reconcileNode(\n parent,\n previousNodes,\n rendered.node,\n runtime,\n `${path}.class`,\n childOptions,\n );\n } catch (error) {\n const fallbackNode = recoverClassComponentError(\n rendered.type,\n rendered.instance,\n error,\n );\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.class.fallback`,\n childOptions,\n );\n }\n}\n\nexport function renderClassComponentWithRuntime(\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n options: {\n currentInstance?: ClassComponentInstance;\n hasDirtyDescendant?: boolean;\n } = {},\n): ClassComponentRenderResult {\n return renderWithRootRuntime(runtime, path, () => {\n const instanceRef = useRef<ClassComponentInstance | undefined>(undefined);\n const didCommitRef = useRef(false);\n const currentInstance =\n options.currentInstance instanceof type\n ? options.currentInstance\n : getPendingClassInstance(runtime, path, type);\n\n if (\n currentInstance !== undefined &&\n instanceRef.current !== currentInstance\n ) {\n instanceRef.current = currentInstance;\n didCommitRef.current = true;\n }\n\n const previousInstance = instanceRef.current;\n const hasDifferentType =\n previousInstance !== undefined && !(previousInstance instanceof type);\n const replacedInstance = hasDifferentType ? previousInstance : undefined;\n\n if (hasDifferentType) {\n classLifecycleSnapshots.delete(previousInstance);\n classUpdateContexts.delete(previousInstance);\n didCommitRef.current = false;\n instanceRef.current = undefined;\n }\n\n const instance =\n instanceRef.current !== undefined && instanceRef.current instanceof type\n ? instanceRef.current\n : new type(props);\n const previousProps = instance.props;\n const snapshot = classLifecycleSnapshots.get(instance);\n const previousState = snapshot?.previousState ?? instance.state ?? {};\n\n instanceRef.current = instance;\n installClassUpdateMethods(instance, runtime, path);\n clearPendingClassUpdate(runtime, path);\n const nextState = resolveDerivedStateFromProps(\n type,\n props,\n snapshot?.nextState ?? instance.state ?? {},\n );\n const shouldSkipUpdate =\n didCommitRef.current &&\n snapshot?.force !== true &&\n options.hasDirtyDescendant !== true &&\n instance.shouldComponentUpdate?.(props, nextState) === false;\n\n instance.props = props;\n instance.state = nextState;\n installClassLifecycleEffects(\n instance,\n didCommitRef,\n previousProps,\n previousState,\n shouldSkipUpdate,\n replacedInstance,\n );\n\n if (shouldSkipUpdate) {\n return { kind: \"skip\" };\n }\n\n try {\n const node = instance.render();\n\n if (didCommitRef.current) {\n classLifecycleSnapshots.set(instance, {\n ...classLifecycleSnapshots.get(instance),\n snapshot: instance.getSnapshotBeforeUpdate?.(\n previousProps ?? {},\n previousState,\n ),\n });\n }\n\n return { kind: \"render\", node, instance, type };\n } catch (error) {\n const fallbackNode = recoverClassComponentError(type, instance, error);\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return { kind: \"render\", node: fallbackNode, instance, type };\n }\n }, CLASS_COMPONENT_RUNTIME_OWNER);\n}\n\nexport function applyDerivedStateFromProps(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n): void {\n instance.state = resolveDerivedStateFromProps(type, nextProps, previousState);\n}\n\nexport function resolveDerivedStateFromProps(\n type: ClassComponentType,\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n): Record<string, unknown> {\n const derivedState = type.getDerivedStateFromProps?.(nextProps, previousState);\n\n if (derivedState === undefined || derivedState === null) {\n return previousState;\n }\n\n return {\n ...previousState,\n ...derivedState,\n };\n}\n\nexport function recoverClassComponentError(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n error: unknown,\n): ReactCompatNode | undefined {\n if (isThenable(error) || !isErrorBoundaryClass(type, instance)) {\n return undefined;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const derivedState = type.getDerivedStateFromError?.(normalizedError);\n\n if (derivedState !== undefined && derivedState !== null) {\n instance.state = {\n ...instance.state,\n ...derivedState,\n };\n }\n\n instance.componentDidCatch?.(normalizedError, { componentStack: \"\" });\n return instance.render();\n}\n\nexport function isClassComponentType(value: unknown): value is ClassComponentType {\n return (\n typeof value === \"function\" &&\n typeof (value as { prototype?: { render?: unknown } }).prototype?.render ===\n \"function\"\n );\n}\n\nfunction getClassComponentName(type: ClassComponentType): string {\n return type.name === \"\" ? \"Anonymous\" : type.name;\n}\n\nexport function reconcileErrorBoundary(\n parent: ParentNode,\n previousNodes: readonly Node[],\n element: ReactCompatElement,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n): ReconcileResult {\n try {\n return reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.eb`,\n options,\n );\n } catch (error) {\n if (isThenable(error)) {\n throw error;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const onError = element.props.onError;\n\n if (typeof onError === \"function\") {\n (onError as (error: Error) => void)(normalizedError);\n }\n\n const fallback = element.props.fallback;\n const fallbackNode =\n typeof fallback === \"function\"\n ? (fallback as (error: Error) => ReactCompatNode)(normalizedError)\n : null;\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.eb.fallback`,\n options,\n );\n }\n}\n\nfunction installClassUpdateMethods(\n instance: ClassComponentInstance,\n runtime: RootRuntime,\n path: string,\n): void {\n classUpdateContexts.set(instance, { runtime, path });\n instance.setState = Component.prototype.setState;\n instance.forceUpdate = Component.prototype.forceUpdate;\n}\n\nfunction enqueueClassSetState(\n instance: ClassComponentInstance,\n partial: Parameters<NonNullable<ClassComponentInstance[\"setState\"]>>[0],\n callback?: () => void,\n): void {\n const updateContext = classUpdateContexts.get(instance);\n\n if (updateContext === undefined) {\n callback?.call(instance);\n return;\n }\n\n const snapshot = classLifecycleSnapshots.get(instance);\n const previousState = snapshot?.previousState ?? instance.state ?? {};\n const baseState = snapshot?.nextState ?? instance.state ?? {};\n const nextPartial =\n typeof partial === \"function\"\n ? partial(baseState, instance.props)\n : partial;\n\n const nextState =\n nextPartial === null\n ? baseState\n : {\n ...baseState,\n ...nextPartial,\n };\n\n classLifecycleSnapshots.set(instance, {\n ...snapshot,\n previousState,\n nextState,\n });\n\n markClassInstanceDirty(instance, updateContext);\n callback?.call(instance);\n}\n\nfunction enqueueClassForceUpdate(\n instance: ClassComponentInstance,\n callback?: () => void,\n): void {\n const updateContext = classUpdateContexts.get(instance);\n\n if (updateContext === undefined) {\n callback?.call(instance);\n return;\n }\n\n classLifecycleSnapshots.set(instance, {\n previousState: instance.state ?? {},\n force: true,\n });\n markClassInstanceDirty(instance, updateContext);\n callback?.call(instance);\n}\n\nfunction markClassInstanceDirty(\n instance: ClassComponentInstance,\n updateContext: ClassUpdateContext,\n): void {\n markPendingClassUpdate(instance, updateContext);\n const runtimeInstance = updateContext.runtime.instances.get(updateContext.path) as\n | { dirty?: boolean }\n | undefined;\n if (runtimeInstance !== undefined) {\n runtimeInstance.dirty = true;\n }\n updateContext.runtime.rerender();\n}\n\nexport function hasDirtyClassUpdate(\n runtime: RootRuntime | undefined,\n keys: readonly string[],\n prefix?: string,\n): boolean {\n if (runtime === undefined) {\n return false;\n }\n\n const dirtyPaths = classDirtyPathsByRuntime.get(runtime);\n if (dirtyPaths === undefined) {\n return false;\n }\n\n for (const key of keys) {\n if (dirtyPaths.has(key)) {\n return true;\n }\n }\n\n if (prefix === undefined) {\n return false;\n }\n\n for (const dirtyPath of dirtyPaths) {\n if (dirtyPath === prefix || dirtyPath.startsWith(`${prefix}.`)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction markPendingClassUpdate(\n instance: ClassComponentInstance,\n updateContext: ClassUpdateContext,\n): void {\n let pendingInstances = classPendingInstancesByRuntime.get(updateContext.runtime);\n if (pendingInstances === undefined) {\n pendingInstances = new Map();\n classPendingInstancesByRuntime.set(updateContext.runtime, pendingInstances);\n }\n let dirtyPaths = classDirtyPathsByRuntime.get(updateContext.runtime);\n if (dirtyPaths === undefined) {\n dirtyPaths = new Set();\n classDirtyPathsByRuntime.set(updateContext.runtime, dirtyPaths);\n }\n pendingInstances.set(updateContext.path, instance);\n dirtyPaths.add(updateContext.path);\n}\n\nfunction getPendingClassInstance(\n runtime: RootRuntime,\n path: string,\n type: ClassComponentType,\n): ClassComponentInstance | undefined {\n const dirtyPaths = classDirtyPathsByRuntime.get(runtime);\n if (dirtyPaths?.has(path) !== true) {\n return undefined;\n }\n\n const instance = classPendingInstancesByRuntime.get(runtime)?.get(path);\n return instance instanceof type ? instance : undefined;\n}\n\nfunction clearPendingClassUpdate(runtime: RootRuntime, path: string): void {\n classDirtyPathsByRuntime.get(runtime)?.delete(path);\n classPendingInstancesByRuntime.get(runtime)?.delete(path);\n}\n\nfunction installClassLifecycleEffects(\n instance: ClassComponentInstance,\n didCommitRef: { current: boolean },\n previousProps: Record<string, unknown> | undefined,\n previousState: Record<string, unknown>,\n skipUpdate: boolean,\n replacedInstance?: ClassComponentInstance,\n): void {\n useLayoutEffect(() => {\n if (replacedInstance !== undefined) {\n replacedInstance.componentWillUnmount?.();\n classUpdateContexts.delete(replacedInstance);\n }\n\n if (skipUpdate) {\n classLifecycleSnapshots.delete(instance);\n return;\n }\n\n if (didCommitRef.current) {\n instance.componentDidUpdate?.(\n previousProps ?? {},\n previousState,\n classLifecycleSnapshots.get(instance)?.snapshot,\n );\n } else {\n didCommitRef.current = true;\n instance.componentDidMount?.();\n }\n\n classLifecycleSnapshots.delete(instance);\n });\n\n useLayoutEffect(() => {\n return () => {\n instance.componentWillUnmount?.();\n classLifecycleSnapshots.delete(instance);\n classUpdateContexts.delete(instance);\n };\n }, []);\n}\n\nfunction isErrorBoundaryClass(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n): boolean {\n return (\n typeof type.getDerivedStateFromError === \"function\" ||\n typeof instance.componentDidCatch === \"function\"\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"class-component.js","sourceRoot":"","sources":["../src/class-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { renderWithRootRuntime, useLayoutEffect, useRef, type RootRuntime } from \"./hooks.js\";\nimport { isReactCompatElement, type ReactCompatElement, type ReactCompatNode } from \"./element.js\";\nimport { withHydrationComponentStack, type RenderOptions } from \"./hydration.js\";\nimport type { ReconcileNode, ReconcileResult } from \"./reconcile-types.js\";\nimport { isThenable } from \"./thenable.js\";\nimport { shallowEqual } from \"./prop-comparison.js\";\n\nconst CLASS_COMPONENT_RUNTIME_OWNER = Symbol.for(\"modular.react.class_component_runtime\");\n\nexport interface ClassComponentInstance {\n props: Record<string, unknown>;\n state?: Record<string, unknown>;\n setState?: (\n partial:\n | Record<string, unknown>\n | ((\n previousState: Record<string, unknown>,\n props: Record<string, unknown>,\n ) => Record<string, unknown> | null),\n callback?: () => void,\n ) => void;\n forceUpdate?: (callback?: () => void) => void;\n render(): ReactCompatNode;\n componentDidMount?: () => void;\n componentDidUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n snapshot?: unknown,\n ) => void;\n componentWillUnmount?: () => void;\n shouldComponentUpdate?: (\n nextProps: Record<string, unknown>,\n nextState: Record<string, unknown>,\n ) => boolean;\n getSnapshotBeforeUpdate?: (\n previousProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n ) => unknown;\n componentDidCatch?: (error: Error, info: { componentStack: string }) => void;\n}\n\nexport interface ClassComponentType {\n new (props: Record<string, unknown>): ClassComponentInstance;\n getDerivedStateFromProps?: (\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n ) => Record<string, unknown> | null;\n getDerivedStateFromError?: (error: Error) => Record<string, unknown> | null;\n}\n\nexport interface Component<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> {\n props: P;\n state?: S;\n setState(\n partial:\n | Partial<S>\n | ((\n previousState: Readonly<S>,\n props: Readonly<P>,\n ) => Partial<S> | S | null),\n callback?: () => void,\n ): void;\n forceUpdate(callback?: () => void): void;\n render(): ReactCompatNode;\n}\n\nexport interface ComponentConstructor {\n new <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(props: P): Component<P, S>;\n <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(this: Component<P, S>, props: P): void;\n prototype: Component<any, any>;\n}\n\nexport const Component: ComponentConstructor = function Component<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n>(this: Component<P, S>, props: P): void {\n this.props = props;\n} as ComponentConstructor;\n\nComponent.prototype.setState = function setState<\n P extends Record<string, unknown>,\n S extends Record<string, unknown>,\n>(\n this: Component<P, S>,\n partial:\n | Partial<S>\n | ((\n previousState: Readonly<S>,\n props: Readonly<P>,\n ) => Partial<S> | S | null),\n callback?: () => void,\n): void {\n enqueueClassSetState(\n this as unknown as ClassComponentInstance,\n partial as Parameters<NonNullable<ClassComponentInstance[\"setState\"]>>[0],\n callback,\n );\n};\n\nComponent.prototype.forceUpdate = function forceUpdate(\n this: Component,\n callback?: () => void,\n): void {\n enqueueClassForceUpdate(this as unknown as ClassComponentInstance, callback);\n};\n\nComponent.prototype.render = function render(): ReactCompatNode {\n return null;\n};\n\nexport interface PureComponent<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n> extends Component<P, S> {\n shouldComponentUpdate(nextProps: P, nextState: S): boolean;\n}\n\nexport interface PureComponentConstructor {\n new <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(props: P): PureComponent<P, S>;\n <\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n >(this: PureComponent<P, S>, props: P): void;\n prototype: PureComponent<any, any>;\n}\n\nexport const PureComponent: PureComponentConstructor = function PureComponent<\n P extends Record<string, unknown> = Record<string, unknown>,\n S extends Record<string, unknown> = Record<string, unknown>,\n>(this: PureComponent<P, S>, props: P): void {\n (Component as unknown as (this: unknown, props: unknown) => void).call(\n this,\n props,\n );\n} as PureComponentConstructor;\n\nPureComponent.prototype = Object.create(Component.prototype) as PureComponent<any, any>;\nPureComponent.prototype.constructor = PureComponent;\nPureComponent.prototype.shouldComponentUpdate = function shouldComponentUpdate<\n P extends Record<string, unknown>,\n S extends Record<string, unknown>,\n>(\n this: PureComponent<P, S>,\n nextProps: P,\n nextState: S,\n): boolean {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state ?? {}, nextState ?? {});\n};\n\ninterface ClassLifecycleSnapshot {\n previousState?: Record<string, unknown>;\n nextState?: Record<string, unknown>;\n force?: boolean;\n snapshot?: unknown;\n}\n\ninterface ClassUpdateContext {\n runtime: RootRuntime;\n path: string;\n}\n\ninterface ClassComponentGlobalState {\n lifecycleSnapshots: WeakMap<ClassComponentInstance, ClassLifecycleSnapshot>;\n updateContexts: WeakMap<ClassComponentInstance, ClassUpdateContext>;\n pendingInstancesByRuntime: WeakMap<RootRuntime, Map<string, ClassComponentInstance>>;\n dirtyPathsByRuntime: WeakMap<RootRuntime, Set<string>>;\n}\n\nconst CLASS_COMPONENT_STATE_KEY = Symbol.for(\"modular.react.class_component_state\");\nconst classComponentGlobalState =\n ((globalThis as typeof globalThis & Record<symbol, ClassComponentGlobalState | undefined>)[\n CLASS_COMPONENT_STATE_KEY\n ] ??= {\n lifecycleSnapshots: new WeakMap(),\n updateContexts: new WeakMap(),\n pendingInstancesByRuntime: new WeakMap(),\n dirtyPathsByRuntime: new WeakMap(),\n });\nconst classLifecycleSnapshots = classComponentGlobalState.lifecycleSnapshots;\nconst classUpdateContexts = classComponentGlobalState.updateContexts;\nconst classPendingInstancesByRuntime = classComponentGlobalState.pendingInstancesByRuntime;\nconst classDirtyPathsByRuntime = classComponentGlobalState.dirtyPathsByRuntime;\n\nexport type ClassComponentRenderResult =\n | {\n kind: \"render\";\n node: ReactCompatNode;\n instance: ClassComponentInstance;\n type: ClassComponentType;\n }\n | { kind: \"skip\" };\n\nexport function reconcileClassComponent(\n parent: ParentNode,\n previousNodes: readonly Node[],\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n onInstance?: (instance: ClassComponentInstance) => void,\n): ReconcileResult {\n const rendered = renderClassComponentWithRuntime(type, props, runtime, path);\n\n if (rendered.kind === \"skip\") {\n return { nodes: previousNodes.slice(0, 1), consumed: previousNodes.length };\n }\n\n onInstance?.(rendered.instance);\n const childOptions = withHydrationComponentStack(\n options,\n getClassComponentName(type),\n );\n\n try {\n return reconcileNode(\n parent,\n previousNodes,\n rendered.node,\n runtime,\n `${path}.class`,\n childOptions,\n );\n } catch (error) {\n const fallbackNode = recoverClassComponentError(\n rendered.type,\n rendered.instance,\n error,\n componentStackFromNode(rendered.node, getClassComponentName(rendered.type)),\n );\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.class.fallback`,\n childOptions,\n );\n }\n}\n\nexport function renderClassComponentWithRuntime(\n type: ClassComponentType,\n props: Record<string, unknown>,\n runtime: RootRuntime,\n path: string,\n options: {\n currentInstance?: ClassComponentInstance;\n hasDirtyDescendant?: boolean;\n } = {},\n): ClassComponentRenderResult {\n return renderWithRootRuntime(runtime, path, () => {\n const instanceRef = useRef<ClassComponentInstance | undefined>(undefined);\n const didCommitRef = useRef(false);\n const currentInstance =\n options.currentInstance instanceof type\n ? options.currentInstance\n : getPendingClassInstance(runtime, path, type);\n\n if (\n currentInstance !== undefined &&\n instanceRef.current !== currentInstance\n ) {\n instanceRef.current = currentInstance;\n didCommitRef.current = true;\n }\n\n const previousInstance = instanceRef.current;\n const hasDifferentType =\n previousInstance !== undefined && !(previousInstance instanceof type);\n const replacedInstance = hasDifferentType ? previousInstance : undefined;\n\n if (hasDifferentType) {\n classLifecycleSnapshots.delete(previousInstance);\n classUpdateContexts.delete(previousInstance);\n didCommitRef.current = false;\n instanceRef.current = undefined;\n }\n\n const instance =\n instanceRef.current !== undefined && instanceRef.current instanceof type\n ? instanceRef.current\n : new type(props);\n const previousProps = instance.props;\n const snapshot = classLifecycleSnapshots.get(instance);\n const previousState = snapshot?.previousState ?? instance.state ?? {};\n\n instanceRef.current = instance;\n installClassUpdateMethods(instance, runtime, path);\n clearPendingClassUpdate(runtime, path);\n const nextState = resolveDerivedStateFromProps(\n type,\n props,\n snapshot?.nextState ?? instance.state ?? {},\n );\n const shouldSkipUpdate =\n didCommitRef.current &&\n snapshot?.force !== true &&\n options.hasDirtyDescendant !== true &&\n instance.shouldComponentUpdate?.(props, nextState) === false;\n\n instance.props = props;\n instance.state = nextState;\n installClassLifecycleEffects(\n instance,\n didCommitRef,\n previousProps,\n previousState,\n shouldSkipUpdate,\n replacedInstance,\n );\n\n if (shouldSkipUpdate) {\n return { kind: \"skip\" };\n }\n\n try {\n const node = instance.render();\n\n if (didCommitRef.current) {\n classLifecycleSnapshots.set(instance, {\n ...classLifecycleSnapshots.get(instance),\n snapshot: instance.getSnapshotBeforeUpdate?.(\n previousProps ?? {},\n previousState,\n ),\n });\n }\n\n return { kind: \"render\", node, instance, type };\n } catch (error) {\n const fallbackNode = recoverClassComponentError(type, instance, error);\n\n if (fallbackNode === undefined) {\n throw error;\n }\n\n return { kind: \"render\", node: fallbackNode, instance, type };\n }\n }, CLASS_COMPONENT_RUNTIME_OWNER);\n}\n\nexport function applyDerivedStateFromProps(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n): void {\n instance.state = resolveDerivedStateFromProps(type, nextProps, previousState);\n}\n\nexport function resolveDerivedStateFromProps(\n type: ClassComponentType,\n nextProps: Record<string, unknown>,\n previousState: Record<string, unknown>,\n): Record<string, unknown> {\n const derivedState = type.getDerivedStateFromProps?.(nextProps, previousState);\n\n if (derivedState === undefined || derivedState === null) {\n return previousState;\n }\n\n return {\n ...previousState,\n ...derivedState,\n };\n}\n\nexport function recoverClassComponentError(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n error: unknown,\n componentStack = componentStackFromClassType(type),\n): ReactCompatNode | undefined {\n if (isThenable(error) || !isErrorBoundaryClass(type, instance)) {\n return undefined;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const derivedState = type.getDerivedStateFromError?.(normalizedError);\n\n if (derivedState !== undefined && derivedState !== null) {\n instance.state = {\n ...instance.state,\n ...derivedState,\n };\n }\n\n instance.componentDidCatch?.(normalizedError, {\n componentStack,\n });\n return instance.render();\n}\n\nexport function isClassComponentType(value: unknown): value is ClassComponentType {\n return (\n typeof value === \"function\" &&\n typeof (value as { prototype?: { render?: unknown } }).prototype?.render ===\n \"function\"\n );\n}\n\nfunction getClassComponentName(type: ClassComponentType): string {\n return type.name === \"\" ? \"Anonymous\" : type.name;\n}\n\nfunction componentStackFromClassType(type: ClassComponentType): string {\n return `\\n at ${getClassComponentName(type)}`;\n}\n\nfunction componentStackFromNode(node: ReactCompatNode, boundaryName: string): string {\n const childName = componentNameFromNode(node);\n return childName === undefined || childName === boundaryName\n ? `\\n at ${boundaryName}`\n : `\\n at ${childName}\\n at ${boundaryName}`;\n}\n\nfunction componentNameFromNode(node: ReactCompatNode): string | undefined {\n if (!isReactCompatElement(node)) {\n return undefined;\n }\n\n if (typeof node.type === \"string\") {\n return node.type;\n }\n\n const displayName = (node.type as { displayName?: unknown }).displayName;\n if (typeof displayName === \"string\" && displayName !== \"\") {\n return displayName;\n }\n\n const name = (node.type as { name?: unknown }).name;\n return typeof name === \"string\" && name !== \"\" ? name : \"Anonymous\";\n}\n\nexport function reconcileErrorBoundary(\n parent: ParentNode,\n previousNodes: readonly Node[],\n element: ReactCompatElement,\n runtime: RootRuntime,\n path: string,\n options: RenderOptions,\n reconcileNode: ReconcileNode,\n): ReconcileResult {\n try {\n return reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.eb`,\n options,\n );\n } catch (error) {\n if (isThenable(error)) {\n throw error;\n }\n\n const normalizedError =\n error instanceof Error ? error : new Error(String(error));\n const onError = element.props.onError;\n\n if (typeof onError === \"function\") {\n (onError as (error: Error) => void)(normalizedError);\n }\n\n const fallback = element.props.fallback;\n const fallbackNode =\n typeof fallback === \"function\"\n ? (fallback as (error: Error) => ReactCompatNode)(normalizedError)\n : null;\n\n return reconcileNode(\n parent,\n previousNodes,\n fallbackNode,\n runtime,\n `${path}.eb.fallback`,\n options,\n );\n }\n}\n\nfunction installClassUpdateMethods(\n instance: ClassComponentInstance,\n runtime: RootRuntime,\n path: string,\n): void {\n classUpdateContexts.set(instance, { runtime, path });\n instance.setState = Component.prototype.setState;\n instance.forceUpdate = Component.prototype.forceUpdate;\n}\n\nfunction enqueueClassSetState(\n instance: ClassComponentInstance,\n partial: Parameters<NonNullable<ClassComponentInstance[\"setState\"]>>[0],\n callback?: () => void,\n): void {\n const updateContext = classUpdateContexts.get(instance);\n\n if (updateContext === undefined) {\n callback?.call(instance);\n return;\n }\n\n const snapshot = classLifecycleSnapshots.get(instance);\n const previousState = snapshot?.previousState ?? instance.state ?? {};\n const baseState = snapshot?.nextState ?? instance.state ?? {};\n const nextPartial =\n typeof partial === \"function\"\n ? partial(baseState, instance.props)\n : partial;\n\n const nextState =\n nextPartial === null\n ? baseState\n : {\n ...baseState,\n ...nextPartial,\n };\n\n classLifecycleSnapshots.set(instance, {\n ...snapshot,\n previousState,\n nextState,\n });\n\n markClassInstanceDirty(instance, updateContext);\n callback?.call(instance);\n}\n\nfunction enqueueClassForceUpdate(\n instance: ClassComponentInstance,\n callback?: () => void,\n): void {\n const updateContext = classUpdateContexts.get(instance);\n\n if (updateContext === undefined) {\n callback?.call(instance);\n return;\n }\n\n classLifecycleSnapshots.set(instance, {\n previousState: instance.state ?? {},\n force: true,\n });\n markClassInstanceDirty(instance, updateContext);\n callback?.call(instance);\n}\n\nfunction markClassInstanceDirty(\n instance: ClassComponentInstance,\n updateContext: ClassUpdateContext,\n): void {\n markPendingClassUpdate(instance, updateContext);\n const runtimeInstance = updateContext.runtime.instances.get(updateContext.path) as\n | { dirty?: boolean }\n | undefined;\n if (runtimeInstance !== undefined) {\n runtimeInstance.dirty = true;\n }\n updateContext.runtime.rerender();\n}\n\nexport function hasDirtyClassUpdate(\n runtime: RootRuntime | undefined,\n keys: readonly string[],\n prefix?: string,\n): boolean {\n if (runtime === undefined) {\n return false;\n }\n\n const dirtyPaths = classDirtyPathsByRuntime.get(runtime);\n if (dirtyPaths === undefined) {\n return false;\n }\n\n for (const key of keys) {\n if (dirtyPaths.has(key)) {\n return true;\n }\n }\n\n if (prefix === undefined) {\n return false;\n }\n\n for (const dirtyPath of dirtyPaths) {\n if (dirtyPath === prefix || dirtyPath.startsWith(`${prefix}.`)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction markPendingClassUpdate(\n instance: ClassComponentInstance,\n updateContext: ClassUpdateContext,\n): void {\n let pendingInstances = classPendingInstancesByRuntime.get(updateContext.runtime);\n if (pendingInstances === undefined) {\n pendingInstances = new Map();\n classPendingInstancesByRuntime.set(updateContext.runtime, pendingInstances);\n }\n let dirtyPaths = classDirtyPathsByRuntime.get(updateContext.runtime);\n if (dirtyPaths === undefined) {\n dirtyPaths = new Set();\n classDirtyPathsByRuntime.set(updateContext.runtime, dirtyPaths);\n }\n pendingInstances.set(updateContext.path, instance);\n dirtyPaths.add(updateContext.path);\n}\n\nfunction getPendingClassInstance(\n runtime: RootRuntime,\n path: string,\n type: ClassComponentType,\n): ClassComponentInstance | undefined {\n const dirtyPaths = classDirtyPathsByRuntime.get(runtime);\n if (dirtyPaths?.has(path) !== true) {\n return undefined;\n }\n\n const instance = classPendingInstancesByRuntime.get(runtime)?.get(path);\n return instance instanceof type ? instance : undefined;\n}\n\nfunction clearPendingClassUpdate(runtime: RootRuntime, path: string): void {\n classDirtyPathsByRuntime.get(runtime)?.delete(path);\n classPendingInstancesByRuntime.get(runtime)?.delete(path);\n}\n\nfunction installClassLifecycleEffects(\n instance: ClassComponentInstance,\n didCommitRef: { current: boolean },\n previousProps: Record<string, unknown> | undefined,\n previousState: Record<string, unknown>,\n skipUpdate: boolean,\n replacedInstance?: ClassComponentInstance,\n): void {\n useLayoutEffect(() => {\n if (replacedInstance !== undefined) {\n replacedInstance.componentWillUnmount?.();\n classUpdateContexts.delete(replacedInstance);\n }\n\n if (skipUpdate) {\n classLifecycleSnapshots.delete(instance);\n return;\n }\n\n if (didCommitRef.current) {\n instance.componentDidUpdate?.(\n previousProps ?? {},\n previousState,\n classLifecycleSnapshots.get(instance)?.snapshot,\n );\n } else {\n didCommitRef.current = true;\n instance.componentDidMount?.();\n }\n\n classLifecycleSnapshots.delete(instance);\n });\n\n useLayoutEffect(() => {\n return () => {\n instance.componentWillUnmount?.();\n classLifecycleSnapshots.delete(instance);\n classUpdateContexts.delete(instance);\n };\n }, []);\n}\n\nfunction isErrorBoundaryClass(\n type: ClassComponentType,\n instance: ClassComponentInstance,\n): boolean {\n return (\n typeof type.getDerivedStateFromError === \"function\" ||\n typeof instance.componentDidCatch === \"function\"\n );\n}\n"]}
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AA6FA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GACpC,IAAI,CAmBN;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GACf,IAAI,CAmBN;AAoDD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAO5D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,UAAU,GACjB,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,YAAY,GAAG,SAAS,CAUvC;AAsCD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAChB,IAAI,CAkBN;AAqLD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,EAAE,CA4BnE"}
|
package/dist/events.js
CHANGED
|
@@ -15,6 +15,7 @@ const reactPropToNativeEvent = new Map([
|
|
|
15
15
|
["onCompositionUpdate", ["compositionupdate"]],
|
|
16
16
|
["onContextMenu", ["contextmenu"]],
|
|
17
17
|
["onDoubleClick", ["dblclick"]],
|
|
18
|
+
["onDrag", ["drag"]],
|
|
18
19
|
["onDragEnd", ["dragend"]],
|
|
19
20
|
["onDragEnter", ["dragenter"]],
|
|
20
21
|
["onDragExit", ["dragexit"]],
|
|
@@ -53,6 +54,7 @@ const nativeEventToReactProps = new Map([
|
|
|
53
54
|
["compositionupdate", ["onCompositionUpdate"]],
|
|
54
55
|
["contextmenu", ["onContextMenu"]],
|
|
55
56
|
["dblclick", ["onDoubleClick"]],
|
|
57
|
+
["drag", ["onDrag"]],
|
|
56
58
|
["dragend", ["onDragEnd"]],
|
|
57
59
|
["dragenter", ["onDragEnter"]],
|
|
58
60
|
["dragexit", ["onDragExit"]],
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { runWithEventPriority } from \"./hooks.js\";\nimport { getAppliedEventHandler } from \"./event-listeners.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\n\nconst delegatedRootListeners = new WeakMap<Element, Set<string>>();\n// A synthetic update can mount another delegated root before the native event\n// finishes bubbling. Process each native event once across delegated roots.\nconst dispatchedDelegatedEvents = new WeakMap<Event, Set<string>>();\nconst logicalEventParents = new WeakMap<Element, ParentNode>();\n\nconst reactPropToNativeEvent = new Map<string, string[]>([\n [\"onAnimationEnd\", [\"animationend\"]],\n [\"onAnimationIteration\", [\"animationiteration\"]],\n [\"onAnimationStart\", [\"animationstart\"]],\n [\"onBeforeInput\", [\"beforeinput\"]],\n [\"onCompositionEnd\", [\"compositionend\"]],\n [\"onCompositionStart\", [\"compositionstart\"]],\n [\"onCompositionUpdate\", [\"compositionupdate\"]],\n [\"onContextMenu\", [\"contextmenu\"]],\n [\"onDoubleClick\", [\"dblclick\"]],\n [\"onDragEnd\", [\"dragend\"]],\n [\"onDragEnter\", [\"dragenter\"]],\n [\"onDragExit\", [\"dragexit\"]],\n [\"onDragLeave\", [\"dragleave\"]],\n [\"onDragOver\", [\"dragover\"]],\n [\"onDragStart\", [\"dragstart\"]],\n [\"onDrop\", [\"drop\"]],\n [\"onFocus\", [\"focusin\"]],\n [\"onBlur\", [\"focusout\"]],\n [\"onGotPointerCapture\", [\"gotpointercapture\"]],\n [\"onLostPointerCapture\", [\"lostpointercapture\"]],\n [\"onMouseEnter\", [\"mouseover\"]],\n [\"onMouseLeave\", [\"mouseout\"]],\n [\"onPointerCancel\", [\"pointercancel\"]],\n [\"onPointerDown\", [\"pointerdown\"]],\n [\"onPointerEnter\", [\"pointerover\"]],\n [\"onPointerLeave\", [\"pointerout\"]],\n [\"onPointerMove\", [\"pointermove\"]],\n [\"onPointerOut\", [\"pointerout\"]],\n [\"onPointerOver\", [\"pointerover\"]],\n [\"onPointerUp\", [\"pointerup\"]],\n [\"onTouchCancel\", [\"touchcancel\"]],\n [\"onTouchEnd\", [\"touchend\"]],\n [\"onTouchMove\", [\"touchmove\"]],\n [\"onTouchStart\", [\"touchstart\"]],\n [\"onTransitionEnd\", [\"transitionend\"]],\n [\"onChange\", [\"change\", \"input\"]],\n]);\n\nconst nativeEventToReactProps = new Map<string, string[]>([\n [\"animationend\", [\"onAnimationEnd\"]],\n [\"animationiteration\", [\"onAnimationIteration\"]],\n [\"animationstart\", [\"onAnimationStart\"]],\n [\"beforeinput\", [\"onBeforeInput\"]],\n [\"compositionend\", [\"onCompositionEnd\"]],\n [\"compositionstart\", [\"onCompositionStart\"]],\n [\"compositionupdate\", [\"onCompositionUpdate\"]],\n [\"contextmenu\", [\"onContextMenu\"]],\n [\"dblclick\", [\"onDoubleClick\"]],\n [\"dragend\", [\"onDragEnd\"]],\n [\"dragenter\", [\"onDragEnter\"]],\n [\"dragexit\", [\"onDragExit\"]],\n [\"dragleave\", [\"onDragLeave\"]],\n [\"dragover\", [\"onDragOver\"]],\n [\"dragstart\", [\"onDragStart\"]],\n [\"drop\", [\"onDrop\"]],\n [\"focusin\", [\"onFocus\"]],\n [\"focusout\", [\"onBlur\"]],\n [\"gotpointercapture\", [\"onGotPointerCapture\"]],\n [\"lostpointercapture\", [\"onLostPointerCapture\"]],\n [\"input\", [\"onInput\", \"onChange\"]],\n [\"keydown\", [\"onKeyDown\"]],\n [\"keyup\", [\"onKeyUp\"]],\n [\"mousedown\", [\"onMouseDown\"]],\n [\"mousemove\", [\"onMouseMove\"]],\n [\"mouseup\", [\"onMouseUp\"]],\n [\"mouseout\", [\"onMouseOut\"]],\n [\"mouseover\", [\"onMouseOver\"]],\n [\"pointercancel\", [\"onPointerCancel\"]],\n [\"pointerdown\", [\"onPointerDown\"]],\n [\"pointermove\", [\"onPointerMove\"]],\n [\"pointerout\", [\"onPointerOut\"]],\n [\"pointerover\", [\"onPointerOver\"]],\n [\"pointerup\", [\"onPointerUp\"]],\n [\"touchcancel\", [\"onTouchCancel\"]],\n [\"touchend\", [\"onTouchEnd\"]],\n [\"touchmove\", [\"onTouchMove\"]],\n [\"touchstart\", [\"onTouchStart\"]],\n [\"transitionend\", [\"onTransitionEnd\"]],\n]);\n\nexport function toEventNames(propName: string): string[] {\n const eventNames: string[] = [];\n forEachEventName(propName, (eventName) => {\n eventNames.push(eventName);\n });\n return eventNames;\n}\n\nexport function forEachEventName(\n propName: string,\n callback: (eventName: string) => void,\n): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n callback(directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n callback(basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n callback(mappedEventNames[index]!);\n }\n}\n\nexport function ensureDelegatedEventListenersForProp(\n root: Element,\n propName: string,\n): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n ensureDelegatedEventListener(root, directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n ensureDelegatedEventListener(root, basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n ensureDelegatedEventListener(root, mappedEventNames[index]!);\n }\n}\n\nfunction directNativeEventName(propName: string): string | undefined {\n switch (propName) {\n case \"onClick\":\n case \"onClickCapture\":\n return \"click\";\n case \"onInput\":\n case \"onInputCapture\":\n return \"input\";\n case \"onKeyDown\":\n case \"onKeyDownCapture\":\n return \"keydown\";\n case \"onKeyUp\":\n case \"onKeyUpCapture\":\n return \"keyup\";\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n return \"mousedown\";\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n return \"mousemove\";\n case \"onMouseOut\":\n case \"onMouseOutCapture\":\n return \"mouseout\";\n case \"onMouseOver\":\n case \"onMouseOverCapture\":\n return \"mouseover\";\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n return \"mouseup\";\n case \"onScroll\":\n case \"onScrollCapture\":\n return \"scroll\";\n case \"onSubmit\":\n case \"onSubmitCapture\":\n return \"submit\";\n case \"onWheel\":\n case \"onWheelCapture\":\n return \"wheel\";\n default:\n return undefined;\n }\n}\n\nfunction toBaseEventPropName(propName: string): string {\n const basePropName = propName.endsWith(\"Capture\")\n ? propName.slice(0, -\"Capture\".length)\n : propName;\n return basePropName;\n}\n\nexport function toEventPropNames(eventName: string): string[] {\n const propNames = nativeEventToReactProps.get(eventName);\n if (propNames !== undefined) {\n return propNames;\n }\n const propName = `on${eventName.slice(0, 1).toUpperCase()}${eventName.slice(1)}`;\n return [propName];\n}\n\nexport function setLogicalEventParent(\n container: Element,\n parent: ParentNode,\n): void {\n logicalEventParents.set(container, parent);\n}\n\nexport function getEventPriority(\n eventName: string,\n): \"discrete\" | \"continuous\" | \"default\" {\n if (discreteEventNames.has(eventName)) {\n return \"discrete\";\n }\n\n if (continuousEventNames.has(eventName)) {\n return \"continuous\";\n }\n\n return \"default\";\n}\n\nconst discreteEventNames = new Set([\n \"beforeinput\",\n \"change\",\n \"click\",\n \"dblclick\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mouseup\",\n \"pointerdown\",\n \"pointerup\",\n \"submit\",\n \"touchcancel\",\n \"touchend\",\n \"touchstart\",\n]);\n\nconst continuousEventNames = new Set([\n \"drag\",\n \"dragenter\",\n \"dragleave\",\n \"dragover\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"scroll\",\n \"touchmove\",\n \"wheel\",\n]);\n\nexport function ensureDelegatedEventListener(\n root: Element,\n eventName: string,\n): void {\n const listeners = delegatedRootListeners.get(root) ?? new Set<string>();\n\n if (listeners.has(eventName)) {\n return;\n }\n\n listeners.add(eventName);\n delegatedRootListeners.set(root, listeners);\n root.addEventListener(eventName, (event) => {\n if (hasDispatchedDelegatedEvent(event, eventName)) {\n return;\n }\n markDispatchedDelegatedEvent(event, eventName);\n runWithEventPriority(getEventPriority(eventName), () => {\n dispatchDelegatedEvent(root, eventName, event);\n });\n });\n}\n\nfunction hasDispatchedDelegatedEvent(event: Event, eventName: string): boolean {\n return dispatchedDelegatedEvents.get(event)?.has(eventName) ?? false;\n}\n\nfunction markDispatchedDelegatedEvent(event: Event, eventName: string): void {\n const events = dispatchedDelegatedEvents.get(event) ?? new Set<string>();\n events.add(eventName);\n dispatchedDelegatedEvents.set(event, events);\n}\n\nfunction dispatchDelegatedEvent(\n root: Element,\n eventName: string,\n event: Event,\n): void {\n const path = getEventPath(root, event);\n const propNames = toEventPropNames(eventName);\n const state = {\n defaultPrevented: event.defaultPrevented,\n propagationStopped: false,\n };\n\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchEventPropNames(propNames, \"capture\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n\n if (eventName === \"mouseover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchMouseTransitionEvent(\"onMouseEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"mouseout\") {\n for (const target of path) {\n dispatchMouseTransitionEvent(\"onMouseLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchPointerTransitionEvent(\"onPointerEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerout\") {\n for (const target of path) {\n dispatchPointerTransitionEvent(\"onPointerLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n for (const target of path) {\n dispatchEventPropNames(propNames, \"bubble\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchPointerTransitionEvent(\n propName: \"onPointerEnter\" | \"onPointerLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state, propName.slice(2).toLowerCase()));\n }\n}\n\nfunction dispatchEventPropNames(\n propNames: readonly string[],\n phase: \"capture\" | \"bubble\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n for (const propName of propNames) {\n if (\n propName === \"onChange\" &&\n event.type === \"change\" &&\n isTextInputChangeTarget(target)\n ) {\n continue;\n }\n\n const listenerName = phase === \"capture\" ? `${propName}Capture` : propName;\n const handler = getAppliedEventHandler(target, listenerName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction isTextInputChangeTarget(target: Element): boolean {\n if (target instanceof HTMLTextAreaElement) {\n return true;\n }\n\n if (!(target instanceof HTMLInputElement)) {\n return false;\n }\n\n return !nonTextInputTypes.has(target.type);\n}\n\nconst nonTextInputTypes = new Set([\n \"button\",\n \"checkbox\",\n \"color\",\n \"file\",\n \"hidden\",\n \"image\",\n \"radio\",\n \"range\",\n \"reset\",\n \"submit\",\n]);\n\nfunction dispatchMouseTransitionEvent(\n propName: \"onMouseEnter\" | \"onMouseLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n}\n\nfunction isInternalMouseTransition(event: Event, target: Element): boolean {\n const relatedTarget =\n event instanceof MouseEvent && event.relatedTarget instanceof Node\n ? event.relatedTarget\n : null;\n\n return relatedTarget !== null && target.contains(relatedTarget);\n}\n\nexport function getEventPath(root: Element, event: Event): Element[] {\n const path: Element[] = [];\n const visited = new Set<Node>();\n let cursor = event.target instanceof Node ? event.target : null;\n\n while (cursor !== null) {\n if (visited.has(cursor)) {\n break;\n }\n visited.add(cursor);\n\n if (cursor instanceof Element) {\n path.push(cursor);\n }\n\n if (cursor === root) {\n const logicalParent = logicalEventParents.get(root);\n if (logicalParent === undefined) {\n break;\n }\n cursor = logicalParent;\n continue;\n }\n\n cursor = cursor.parentNode;\n }\n\n return path;\n}\n\nfunction createSyntheticEvent(\n nativeEvent: Event,\n currentTarget: EventTarget,\n state: { defaultPrevented: boolean; propagationStopped: boolean } = {\n defaultPrevented: nativeEvent.defaultPrevented,\n propagationStopped: false,\n },\n syntheticType = nativeEvent.type,\n): SyntheticEvent {\n const mouseEvent = nativeEvent instanceof MouseEvent ? nativeEvent : undefined;\n const touchEvent = nativeEvent instanceof TouchEvent ? nativeEvent : undefined;\n const keyboardEvent = nativeEvent instanceof KeyboardEvent ? nativeEvent : undefined;\n\n return {\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n get defaultPrevented() {\n return state.defaultPrevented;\n },\n eventPhase: nativeEvent.eventPhase,\n isTrusted: nativeEvent.isTrusted ?? false,\n nativeEvent,\n timeStamp: nativeEvent.timeStamp,\n type: syntheticType,\n target: nativeEvent.target,\n currentTarget,\n ...(mouseEvent === undefined\n ? {}\n : {\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n pageX: mouseEvent.pageX,\n pageY: mouseEvent.pageY,\n screenX: mouseEvent.screenX,\n screenY: mouseEvent.screenY,\n relatedTarget: mouseEvent.relatedTarget,\n }),\n ...(touchEvent === undefined\n ? {}\n : {\n touches: touchEvent.touches,\n changedTouches: touchEvent.changedTouches,\n }),\n ...(keyboardEvent === undefined ? {} : { key: keyboardEvent.key }),\n persist() {},\n preventDefault() {\n state.defaultPrevented = true;\n nativeEvent.preventDefault();\n },\n stopPropagation() {\n state.propagationStopped = true;\n nativeEvent.stopPropagation();\n },\n isDefaultPrevented() {\n return state.defaultPrevented;\n },\n isPersistent() {\n return true;\n },\n isPropagationStopped() {\n return state.propagationStopped;\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { runWithEventPriority } from \"./hooks.js\";\nimport { getAppliedEventHandler } from \"./event-listeners.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\n\nconst delegatedRootListeners = new WeakMap<Element, Set<string>>();\n// A synthetic update can mount another delegated root before the native event\n// finishes bubbling. Process each native event once across delegated roots.\nconst dispatchedDelegatedEvents = new WeakMap<Event, Set<string>>();\nconst logicalEventParents = new WeakMap<Element, ParentNode>();\n\nconst reactPropToNativeEvent = new Map<string, string[]>([\n [\"onAnimationEnd\", [\"animationend\"]],\n [\"onAnimationIteration\", [\"animationiteration\"]],\n [\"onAnimationStart\", [\"animationstart\"]],\n [\"onBeforeInput\", [\"beforeinput\"]],\n [\"onCompositionEnd\", [\"compositionend\"]],\n [\"onCompositionStart\", [\"compositionstart\"]],\n [\"onCompositionUpdate\", [\"compositionupdate\"]],\n [\"onContextMenu\", [\"contextmenu\"]],\n [\"onDoubleClick\", [\"dblclick\"]],\n [\"onDrag\", [\"drag\"]],\n [\"onDragEnd\", [\"dragend\"]],\n [\"onDragEnter\", [\"dragenter\"]],\n [\"onDragExit\", [\"dragexit\"]],\n [\"onDragLeave\", [\"dragleave\"]],\n [\"onDragOver\", [\"dragover\"]],\n [\"onDragStart\", [\"dragstart\"]],\n [\"onDrop\", [\"drop\"]],\n [\"onFocus\", [\"focusin\"]],\n [\"onBlur\", [\"focusout\"]],\n [\"onGotPointerCapture\", [\"gotpointercapture\"]],\n [\"onLostPointerCapture\", [\"lostpointercapture\"]],\n [\"onMouseEnter\", [\"mouseover\"]],\n [\"onMouseLeave\", [\"mouseout\"]],\n [\"onPointerCancel\", [\"pointercancel\"]],\n [\"onPointerDown\", [\"pointerdown\"]],\n [\"onPointerEnter\", [\"pointerover\"]],\n [\"onPointerLeave\", [\"pointerout\"]],\n [\"onPointerMove\", [\"pointermove\"]],\n [\"onPointerOut\", [\"pointerout\"]],\n [\"onPointerOver\", [\"pointerover\"]],\n [\"onPointerUp\", [\"pointerup\"]],\n [\"onTouchCancel\", [\"touchcancel\"]],\n [\"onTouchEnd\", [\"touchend\"]],\n [\"onTouchMove\", [\"touchmove\"]],\n [\"onTouchStart\", [\"touchstart\"]],\n [\"onTransitionEnd\", [\"transitionend\"]],\n [\"onChange\", [\"change\", \"input\"]],\n]);\n\nconst nativeEventToReactProps = new Map<string, string[]>([\n [\"animationend\", [\"onAnimationEnd\"]],\n [\"animationiteration\", [\"onAnimationIteration\"]],\n [\"animationstart\", [\"onAnimationStart\"]],\n [\"beforeinput\", [\"onBeforeInput\"]],\n [\"compositionend\", [\"onCompositionEnd\"]],\n [\"compositionstart\", [\"onCompositionStart\"]],\n [\"compositionupdate\", [\"onCompositionUpdate\"]],\n [\"contextmenu\", [\"onContextMenu\"]],\n [\"dblclick\", [\"onDoubleClick\"]],\n [\"drag\", [\"onDrag\"]],\n [\"dragend\", [\"onDragEnd\"]],\n [\"dragenter\", [\"onDragEnter\"]],\n [\"dragexit\", [\"onDragExit\"]],\n [\"dragleave\", [\"onDragLeave\"]],\n [\"dragover\", [\"onDragOver\"]],\n [\"dragstart\", [\"onDragStart\"]],\n [\"drop\", [\"onDrop\"]],\n [\"focusin\", [\"onFocus\"]],\n [\"focusout\", [\"onBlur\"]],\n [\"gotpointercapture\", [\"onGotPointerCapture\"]],\n [\"lostpointercapture\", [\"onLostPointerCapture\"]],\n [\"input\", [\"onInput\", \"onChange\"]],\n [\"keydown\", [\"onKeyDown\"]],\n [\"keyup\", [\"onKeyUp\"]],\n [\"mousedown\", [\"onMouseDown\"]],\n [\"mousemove\", [\"onMouseMove\"]],\n [\"mouseup\", [\"onMouseUp\"]],\n [\"mouseout\", [\"onMouseOut\"]],\n [\"mouseover\", [\"onMouseOver\"]],\n [\"pointercancel\", [\"onPointerCancel\"]],\n [\"pointerdown\", [\"onPointerDown\"]],\n [\"pointermove\", [\"onPointerMove\"]],\n [\"pointerout\", [\"onPointerOut\"]],\n [\"pointerover\", [\"onPointerOver\"]],\n [\"pointerup\", [\"onPointerUp\"]],\n [\"touchcancel\", [\"onTouchCancel\"]],\n [\"touchend\", [\"onTouchEnd\"]],\n [\"touchmove\", [\"onTouchMove\"]],\n [\"touchstart\", [\"onTouchStart\"]],\n [\"transitionend\", [\"onTransitionEnd\"]],\n]);\n\nexport function toEventNames(propName: string): string[] {\n const eventNames: string[] = [];\n forEachEventName(propName, (eventName) => {\n eventNames.push(eventName);\n });\n return eventNames;\n}\n\nexport function forEachEventName(\n propName: string,\n callback: (eventName: string) => void,\n): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n callback(directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n callback(basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n callback(mappedEventNames[index]!);\n }\n}\n\nexport function ensureDelegatedEventListenersForProp(\n root: Element,\n propName: string,\n): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n ensureDelegatedEventListener(root, directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n ensureDelegatedEventListener(root, basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n ensureDelegatedEventListener(root, mappedEventNames[index]!);\n }\n}\n\nfunction directNativeEventName(propName: string): string | undefined {\n switch (propName) {\n case \"onClick\":\n case \"onClickCapture\":\n return \"click\";\n case \"onInput\":\n case \"onInputCapture\":\n return \"input\";\n case \"onKeyDown\":\n case \"onKeyDownCapture\":\n return \"keydown\";\n case \"onKeyUp\":\n case \"onKeyUpCapture\":\n return \"keyup\";\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n return \"mousedown\";\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n return \"mousemove\";\n case \"onMouseOut\":\n case \"onMouseOutCapture\":\n return \"mouseout\";\n case \"onMouseOver\":\n case \"onMouseOverCapture\":\n return \"mouseover\";\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n return \"mouseup\";\n case \"onScroll\":\n case \"onScrollCapture\":\n return \"scroll\";\n case \"onSubmit\":\n case \"onSubmitCapture\":\n return \"submit\";\n case \"onWheel\":\n case \"onWheelCapture\":\n return \"wheel\";\n default:\n return undefined;\n }\n}\n\nfunction toBaseEventPropName(propName: string): string {\n const basePropName = propName.endsWith(\"Capture\")\n ? propName.slice(0, -\"Capture\".length)\n : propName;\n return basePropName;\n}\n\nexport function toEventPropNames(eventName: string): string[] {\n const propNames = nativeEventToReactProps.get(eventName);\n if (propNames !== undefined) {\n return propNames;\n }\n const propName = `on${eventName.slice(0, 1).toUpperCase()}${eventName.slice(1)}`;\n return [propName];\n}\n\nexport function setLogicalEventParent(\n container: Element,\n parent: ParentNode,\n): void {\n logicalEventParents.set(container, parent);\n}\n\nexport function getEventPriority(\n eventName: string,\n): \"discrete\" | \"continuous\" | \"default\" {\n if (discreteEventNames.has(eventName)) {\n return \"discrete\";\n }\n\n if (continuousEventNames.has(eventName)) {\n return \"continuous\";\n }\n\n return \"default\";\n}\n\nconst discreteEventNames = new Set([\n \"beforeinput\",\n \"change\",\n \"click\",\n \"dblclick\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mouseup\",\n \"pointerdown\",\n \"pointerup\",\n \"submit\",\n \"touchcancel\",\n \"touchend\",\n \"touchstart\",\n]);\n\nconst continuousEventNames = new Set([\n \"drag\",\n \"dragenter\",\n \"dragleave\",\n \"dragover\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"scroll\",\n \"touchmove\",\n \"wheel\",\n]);\n\nexport function ensureDelegatedEventListener(\n root: Element,\n eventName: string,\n): void {\n const listeners = delegatedRootListeners.get(root) ?? new Set<string>();\n\n if (listeners.has(eventName)) {\n return;\n }\n\n listeners.add(eventName);\n delegatedRootListeners.set(root, listeners);\n root.addEventListener(eventName, (event) => {\n if (hasDispatchedDelegatedEvent(event, eventName)) {\n return;\n }\n markDispatchedDelegatedEvent(event, eventName);\n runWithEventPriority(getEventPriority(eventName), () => {\n dispatchDelegatedEvent(root, eventName, event);\n });\n });\n}\n\nfunction hasDispatchedDelegatedEvent(event: Event, eventName: string): boolean {\n return dispatchedDelegatedEvents.get(event)?.has(eventName) ?? false;\n}\n\nfunction markDispatchedDelegatedEvent(event: Event, eventName: string): void {\n const events = dispatchedDelegatedEvents.get(event) ?? new Set<string>();\n events.add(eventName);\n dispatchedDelegatedEvents.set(event, events);\n}\n\nfunction dispatchDelegatedEvent(\n root: Element,\n eventName: string,\n event: Event,\n): void {\n const path = getEventPath(root, event);\n const propNames = toEventPropNames(eventName);\n const state = {\n defaultPrevented: event.defaultPrevented,\n propagationStopped: false,\n };\n\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchEventPropNames(propNames, \"capture\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n\n if (eventName === \"mouseover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchMouseTransitionEvent(\"onMouseEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"mouseout\") {\n for (const target of path) {\n dispatchMouseTransitionEvent(\"onMouseLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchPointerTransitionEvent(\"onPointerEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerout\") {\n for (const target of path) {\n dispatchPointerTransitionEvent(\"onPointerLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n for (const target of path) {\n dispatchEventPropNames(propNames, \"bubble\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchPointerTransitionEvent(\n propName: \"onPointerEnter\" | \"onPointerLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state, propName.slice(2).toLowerCase()));\n }\n}\n\nfunction dispatchEventPropNames(\n propNames: readonly string[],\n phase: \"capture\" | \"bubble\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n for (const propName of propNames) {\n if (\n propName === \"onChange\" &&\n event.type === \"change\" &&\n isTextInputChangeTarget(target)\n ) {\n continue;\n }\n\n const listenerName = phase === \"capture\" ? `${propName}Capture` : propName;\n const handler = getAppliedEventHandler(target, listenerName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction isTextInputChangeTarget(target: Element): boolean {\n if (target instanceof HTMLTextAreaElement) {\n return true;\n }\n\n if (!(target instanceof HTMLInputElement)) {\n return false;\n }\n\n return !nonTextInputTypes.has(target.type);\n}\n\nconst nonTextInputTypes = new Set([\n \"button\",\n \"checkbox\",\n \"color\",\n \"file\",\n \"hidden\",\n \"image\",\n \"radio\",\n \"range\",\n \"reset\",\n \"submit\",\n]);\n\nfunction dispatchMouseTransitionEvent(\n propName: \"onMouseEnter\" | \"onMouseLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n}\n\nfunction isInternalMouseTransition(event: Event, target: Element): boolean {\n const relatedTarget =\n event instanceof MouseEvent && event.relatedTarget instanceof Node\n ? event.relatedTarget\n : null;\n\n return relatedTarget !== null && target.contains(relatedTarget);\n}\n\nexport function getEventPath(root: Element, event: Event): Element[] {\n const path: Element[] = [];\n const visited = new Set<Node>();\n let cursor = event.target instanceof Node ? event.target : null;\n\n while (cursor !== null) {\n if (visited.has(cursor)) {\n break;\n }\n visited.add(cursor);\n\n if (cursor instanceof Element) {\n path.push(cursor);\n }\n\n if (cursor === root) {\n const logicalParent = logicalEventParents.get(root);\n if (logicalParent === undefined) {\n break;\n }\n cursor = logicalParent;\n continue;\n }\n\n cursor = cursor.parentNode;\n }\n\n return path;\n}\n\nfunction createSyntheticEvent(\n nativeEvent: Event,\n currentTarget: EventTarget,\n state: { defaultPrevented: boolean; propagationStopped: boolean } = {\n defaultPrevented: nativeEvent.defaultPrevented,\n propagationStopped: false,\n },\n syntheticType = nativeEvent.type,\n): SyntheticEvent {\n const mouseEvent = nativeEvent instanceof MouseEvent ? nativeEvent : undefined;\n const touchEvent = nativeEvent instanceof TouchEvent ? nativeEvent : undefined;\n const keyboardEvent = nativeEvent instanceof KeyboardEvent ? nativeEvent : undefined;\n\n return {\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n get defaultPrevented() {\n return state.defaultPrevented;\n },\n eventPhase: nativeEvent.eventPhase,\n isTrusted: nativeEvent.isTrusted ?? false,\n nativeEvent,\n timeStamp: nativeEvent.timeStamp,\n type: syntheticType,\n target: nativeEvent.target,\n currentTarget,\n ...(mouseEvent === undefined\n ? {}\n : {\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n pageX: mouseEvent.pageX,\n pageY: mouseEvent.pageY,\n screenX: mouseEvent.screenX,\n screenY: mouseEvent.screenY,\n relatedTarget: mouseEvent.relatedTarget,\n }),\n ...(touchEvent === undefined\n ? {}\n : {\n touches: touchEvent.touches,\n changedTouches: touchEvent.changedTouches,\n }),\n ...(keyboardEvent === undefined ? {} : { key: keyboardEvent.key }),\n persist() {},\n preventDefault() {\n state.defaultPrevented = true;\n nativeEvent.preventDefault();\n },\n stopPropagation() {\n state.propagationStopped = true;\n nativeEvent.stopPropagation();\n },\n isDefaultPrevented() {\n return state.defaultPrevented;\n },\n isPersistent() {\n return true;\n },\n isPropagationStopped() {\n return state.propagationStopped;\n },\n };\n}\n"]}
|
package/dist/fiber-reconciler.js
CHANGED
|
@@ -316,7 +316,7 @@ function captureThrownValue(root, source, thrownValue) {
|
|
|
316
316
|
return captureErrorBoundary(root, boundary, thrownValue);
|
|
317
317
|
}
|
|
318
318
|
if (!isThenable(thrownValue) && boundary.tag === "class-component") {
|
|
319
|
-
const captured = captureClassErrorBoundary(root, boundary, thrownValue);
|
|
319
|
+
const captured = captureClassErrorBoundary(root, boundary, source, thrownValue);
|
|
320
320
|
if (captured !== undefined) {
|
|
321
321
|
return captured;
|
|
322
322
|
}
|
|
@@ -344,7 +344,7 @@ function beginClassComponent(unit, type) {
|
|
|
344
344
|
instance.state = nextState;
|
|
345
345
|
return reconcileChildFibers(unit, unit.alternate?.child, instance.render());
|
|
346
346
|
}
|
|
347
|
-
function captureClassErrorBoundary(root, boundary, thrownValue) {
|
|
347
|
+
function captureClassErrorBoundary(root, boundary, source, thrownValue) {
|
|
348
348
|
if (!isClassComponentType(boundary.type)) {
|
|
349
349
|
return undefined;
|
|
350
350
|
}
|
|
@@ -362,10 +362,52 @@ function captureClassErrorBoundary(root, boundary, thrownValue) {
|
|
|
362
362
|
...derivedState,
|
|
363
363
|
};
|
|
364
364
|
}
|
|
365
|
-
instance.componentDidCatch?.(error, {
|
|
365
|
+
instance.componentDidCatch?.(error, {
|
|
366
|
+
componentStack: componentStackFromFiber(source, boundary),
|
|
367
|
+
});
|
|
366
368
|
boundary.child = reconcileChildFibers(boundary, boundary.alternate?.child, instance.render());
|
|
367
369
|
return boundary.child ?? completeUnitOfWork(root, boundary);
|
|
368
370
|
}
|
|
371
|
+
function componentStackFromFiber(source, boundary) {
|
|
372
|
+
const names = [];
|
|
373
|
+
let cursor = source;
|
|
374
|
+
while (cursor !== undefined) {
|
|
375
|
+
const name = componentNameForFiber(cursor);
|
|
376
|
+
if (name !== undefined) {
|
|
377
|
+
names.push(name);
|
|
378
|
+
}
|
|
379
|
+
if (cursor === boundary) {
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
cursor = cursor.return;
|
|
383
|
+
}
|
|
384
|
+
return names.length === 0
|
|
385
|
+
? "\n at Anonymous"
|
|
386
|
+
: names.map((name) => `\n at ${name}`).join("");
|
|
387
|
+
}
|
|
388
|
+
function componentNameForFiber(fiber) {
|
|
389
|
+
if (fiber.tag === "host-component") {
|
|
390
|
+
return String(fiber.type);
|
|
391
|
+
}
|
|
392
|
+
if (fiber.tag === "function-component" || fiber.tag === "class-component") {
|
|
393
|
+
return componentNameFromType(fiber.type);
|
|
394
|
+
}
|
|
395
|
+
if (fiber.tag === "memo" && isMemoType(fiber.type)) {
|
|
396
|
+
return componentNameFromType(fiber.type.type);
|
|
397
|
+
}
|
|
398
|
+
if (fiber.tag === "forward-ref" && isForwardRefType(fiber.type)) {
|
|
399
|
+
return componentNameFromType(fiber.type.render);
|
|
400
|
+
}
|
|
401
|
+
return undefined;
|
|
402
|
+
}
|
|
403
|
+
function componentNameFromType(type) {
|
|
404
|
+
const displayName = type?.displayName;
|
|
405
|
+
if (typeof displayName === "string" && displayName !== "") {
|
|
406
|
+
return displayName;
|
|
407
|
+
}
|
|
408
|
+
const name = type?.name;
|
|
409
|
+
return typeof name === "string" && name !== "" ? name : "Anonymous";
|
|
410
|
+
}
|
|
369
411
|
function isClassErrorBoundary(type, instance) {
|
|
370
412
|
return (typeof type.getDerivedStateFromError === "function" ||
|
|
371
413
|
typeof instance.componentDidCatch === "function");
|