emotion-js / emotion

👩‍🎤 CSS-in-JS library designed for high performance style composition
https://emotion.sh/
MIT License
17.5k stars 1.11k forks source link

v11.13.3 type error with Next #3245

Open Hyodori04 opened 2 months ago

Hyodori04 commented 2 months ago

Current behavior:

type Error Occurs after v11.13.3

const withAuth = <P extends object>(WrappedComponent: NextPage<P>) => {
  const AuthComponent = (props: P) => {
    ...my logic
    return <WrappedComponent {...props} />;
  }
}

Expected behavior:

Type Error is fixed , if it's not error. is there any method to solve this type error?

Environment information:

giggo1604 commented 2 months ago

I can confirm that v11.13.3 breaks this previously working pattern.

function render<P>(Component: React.ComponentType<P>, props: P) {
    return <Component {...props} />
}
ENvironmentSet commented 1 month ago

It seems that typescript has complicates while comparing generic types fed with type variables. For those who need quick patch, I left a rough solution here. Check this out and use wisely.

/* Patch LibraryManagedAttributes type in jsx-namespace.d.ts (which can be found in node_modules/@ emotion/react/types) */

type LibraryManagedAttributes<C, P> =
  ((P extends unknown ? WithConditionalCSSProp<P> : {}) | {})
  & ReactJSXLibraryManagedAttributes<C, P>

I'll do more research on this and will come back with well organized patch maybe in this weekend. However, If there is someone interested and has some time to work on this, I wouldn't mind someone else do the fix instead of me.

alhabibhasan commented 2 days ago

Have come across this bug as well. Would be great to have a fix

doubleniki commented 1 day ago

Hi, is there any progress regarding this issue?

shubham-vunet commented 14 hours ago

👍👍