Skip to content

Commit 504d01e

Browse files
committed
Fix types
1 parent 56faad9 commit 504d01e

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"scripts": {
66
"build:examples": "vite build examples",
77
"build:packages": "npm run build:packages:cjs && npm run build:packages:esm && npm run build:types",
8-
"build:packages:cjs": "esbuild --external:react --external:react-dom --format=cjs --bundle --outdir=dist/cjs --loader:.ts=tsx --sourcemap=external ./src/*",
9-
"build:packages:esm": "esbuild --external:react --external:react-dom --format=esm --bundle --outdir=dist/esm --loader:.ts=tsx --sourcemap=external ./src/*",
8+
"build:packages:cjs": "esbuild --external:react --external:react-dom --format=cjs --bundle --outdir=dist/cjs --sourcemap=external ./src/*",
9+
"build:packages:esm": "esbuild --external:react --external:react-dom --format=esm --bundle --outdir=dist/esm --sourcemap=external ./src/*",
1010
"build:types": "tsc --emitDeclarationOnly",
1111
"build": "npm run build:packages && jsdoc -R README.md src/",
1212
"build:watch": "esbuild --external:react --external:react-dom --format=cjs --bundle --outdir=dist/cjs --loader:.ts=tsx --sourcemap=inline --watch ./src/*",

src/next-vt.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import {
55
import {
66
useEffect,
77
Suspense,
8-
FC
8+
FC,
99
} from "react";
10+
import React from "react";
1011

1112
export { SuspendViewTransition, useViewTransition } from "./react-vt";
1213

src/react-vt.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
let suspendersCount = 0;
1212
const observers = new Set<() => void>();
1313

14-
let didCaptureNewState: (value?: PromiseLike<void> | void) => void = null;
14+
let didCaptureNewState: ((value?: PromiseLike<void> | void) => void ) | null = null;
1515

1616
function suspendViewTransitionCapture(): void {
1717
suspendersCount++;
@@ -56,7 +56,7 @@ export function AutoViewTransitionsOnClick({ match = "a[href]" }: AutoViewTransi
5656

5757
event.preventDefault();
5858
event.stopPropagation();
59-
startViewTransition(() => startTransition(() => target.click()));
59+
startViewTransition(() => startTransition(() => (target as HTMLElement).click()));
6060
}
6161

6262
globalThis.document.addEventListener("click", captureClick, { capture: true });
@@ -86,7 +86,12 @@ interface ViewTransitionController {
8686

8787
export function useViewTransition(): { resumeViewTransitionCapture: () => void; transitionState: "idle" | "capturing-old" | "capturing-new" | "animating" | "skipped"; startViewTransition: (updateCallback?: React.TransitionFunction) => (PromiseLike<void> | void); suspendViewTransitionCapture: () => void } {
8888
const [transitionState, setTransitionState] = useState<TransitionState>("idle");
89-
useSyncExternalStore(observers.add.bind(observers), () => suspendersCount, () => 0);
89+
useSyncExternalStore((onStoreChange) => {
90+
observers.add(onStoreChange);
91+
return () => {
92+
observers.delete(onStoreChange);
93+
}
94+
}, () => suspendersCount, () => 0);
9095

9196
useEffect(() => {
9297
if (didCaptureNewState && !suspendersCount) {

src/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
interface Document {
2-
startViewTransition?: (callback: () => never) => {
2+
startViewTransition?: (callback: () => PromiseLike<void> | void) => {
33
finished: Promise<void>
44
ready: Promise<void>
55
updateCallbackDone: Promise<void>

0 commit comments

Comments
 (0)