From 0a42bfe86d1432c30a9f632a4235e4317c5b87e9 Mon Sep 17 00:00:00 2001 From: Wesley Luyten Date: Thu, 2 Oct 2025 15:03:39 -0500 Subject: [PATCH] fix: React version mismatch, add forward refs --- examples/react-demo/package.json | 8 +- package.json | 3 +- packages/react/react/package.json | 4 +- .../react/react/src/components/Popover.tsx | 4 +- packages/react/react/src/components/Video.tsx | 6 +- .../react/src/utils/component-factory.tsx | 30 ++++--- pnpm-lock.yaml | 89 +++++++++---------- 7 files changed, 73 insertions(+), 71 deletions(-) diff --git a/examples/react-demo/package.json b/examples/react-demo/package.json index 1b33062a..7a38dee5 100644 --- a/examples/react-demo/package.json +++ b/examples/react-demo/package.json @@ -11,14 +11,14 @@ }, "dependencies": { "@vjs-10/react": "workspace:*", - "react": "^19.1.1", - "react-dom": "^19.1.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "tailwindcss": "^4.1.13" }, "devDependencies": { "@tailwindcss/vite": "^4.1.0", - "@types/react": "^19.1.13", - "@types/react-dom": "^19.1.9", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", "@vitejs/plugin-react": "^5.0.3", "typescript": "^5.9.2", "vite": "^7.1.6" diff --git a/package.json b/package.json index 867c4307..10bb8fe5 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,8 @@ "eslint-plugin-react-refresh": "^0.4.21", "lint-staged": "^16.2.0", "prettier": "^3.6.2", - "react": "^18.3.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "simple-git-hooks": "^2.13.1", "turbo": "^2.5.8", "typescript": "^5.9.2" diff --git a/packages/react/react/package.json b/packages/react/react/package.json index 736422e5..164f4a84 100644 --- a/packages/react/react/package.json +++ b/packages/react/react/package.json @@ -43,8 +43,8 @@ "react": ">=16.8.0" }, "devDependencies": { - "@types/react": "^19.0.0", - "react": "^19.0.0", + "@types/react": "^18.0.0", + "react": "^18.0.0", "tsdown": "^0.15.4", "typescript": "^5.9.2" }, diff --git a/packages/react/react/src/components/Popover.tsx b/packages/react/react/src/components/Popover.tsx index 4617b875..6272f20b 100644 --- a/packages/react/react/src/components/Popover.tsx +++ b/packages/react/react/src/components/Popover.tsx @@ -1,7 +1,7 @@ import type { Placement } from '@floating-ui/react'; import type { ReactNode } from 'react'; -import React, { createContext, useContext, useState } from 'react'; +import React, { createContext, useContext, useEffect, useState } from 'react'; import { autoUpdate, @@ -117,7 +117,7 @@ function PopoverPositioner({ side = 'top', sideOffset = 5, children }: PopoverPo const { open, refs, floatingStyles, updatePositioning } = usePopoverContext(); // Update positioning when props change - React.useEffect(() => { + useEffect(() => { updatePositioning(side, sideOffset); }, [side, sideOffset, updatePositioning]); diff --git a/packages/react/react/src/components/Video.tsx b/packages/react/react/src/components/Video.tsx index c5b34fd8..562824cf 100644 --- a/packages/react/react/src/components/Video.tsx +++ b/packages/react/react/src/components/Video.tsx @@ -10,7 +10,7 @@ import type { VideoHTMLAttributes, } from 'react'; -import { useImperativeHandle, useRef } from 'react'; +import { forwardRef, useImperativeHandle, useRef } from 'react'; import { createMediaStateOwner } from '@vjs-10/media'; import { useMediaRef } from '@vjs-10/react-media-store'; @@ -52,7 +52,7 @@ const useMediaStateOwner = (ref: Ref, createMediaStateOwner: CreateMediaSta const DefaultVideoComponent: ElementType< Omit, HTMLVideoElement>, 'ref'> & { ref: Ref } -> = ({ children, ref, ...props }) => { +> = forwardRef(({ children, ...props }, ref) => { const { updateMediaElement } = useMediaStateOwner(ref, createMediaStateOwner); return (