primereact icon indicating copy to clipboard operation
primereact copied to clipboard

InputText: Typescript useRef types with new const instead of class components

Open dvpritzbuer opened this issue 10 months ago • 11 comments

Describe the bug

const ref = useRef<Stepper>(null); --> "'Stepper' refers to a value, but is being used as a type here. Did you mean 'typeof Stepper'?"

const ref = useRef<Panel>(null); --> works fine

Reproducer

https://stackblitz.com/edit/vitejs-vite-osrp8p?file=src%2FApp.tsx,package.json

PrimeReact version

10.6.2

React version

18.x

Language

TypeScript

Build / Runtime

Vite

Browser(s)

No response

Steps to reproduce the behavior

No response

Expected behavior

No response

dvpritzbuer avatar Apr 08 '24 19:04 dvpritzbuer

@dvpritzbuer can you wait until the next release I am pretty sure all of your issues you are reporting are already fixed.

melloware avatar Apr 08 '24 19:04 melloware

I mean my first issue today was not already fixed and why shouldn't you take my free feedback even if you just tag it with fixed in 10.6.3?

And this issue here is valid for all new components that use const instead of class (also tested it for IconField) and not only the Stepper!

But ok.. at least in short notice my other bugs as comment:

  • IconField export/import wrong ("primereact/iconfield/iconfield")
  • Stepper documentation example and stackblitz use wrong imports (@/components/lib... instead of primereact/)
  • IconField documentation example uses vue code instead of react

dvpritzbuer avatar Apr 08 '24 20:04 dvpritzbuer

IconField already fixed: https://github.com/primefaces/primereact/pull/6271

What I was saying was in main many things have already been fixed related to Stepper, InputIcon, IconField.

melloware avatar Apr 08 '24 20:04 melloware

Yeah that's fine, but it's a lot easier for me to just post an issue report instead of searching the code for possible fixes. Maybe a rough estimate when 10.6.3 will release?

dvpritzbuer avatar Apr 08 '24 20:04 dvpritzbuer

i think this week sometime. I don't work for PrimeTek...

melloware avatar Apr 08 '24 20:04 melloware

Hi there, We plan to release 10.6.3 today. Thank you for the feedback.

gucal avatar Apr 09 '24 06:04 gucal

Hi,

With release 10.6.3 the issue should be fixed. If you notice that the issue persists, please ping me.

gucal avatar Apr 09 '24 11:04 gucal

@gucal This error is not fixed - updated the linked stackblitz.

Also I recognized the original ticket description is not correct since Stepper doesn't have a ref and I just tested it initially with this component since this is a new const type definition. The stackblitz is now based on InputText.

I have no perfect solution here for you since it would either require the user to write more code or to import another type.

But it would work with this line: const inputRef2 = useRef<React.ElementRef<typeof InputText>>(null);

So either the user always writes this line himself if using refs within typescript or you export another type like export const type InputTextRef = React.ElementRef<typeof InputText>; and the user has to use this new type then.

Maybe you find a better solution here?

dvpritzbuer avatar Apr 09 '24 19:04 dvpritzbuer

Reopened and changed the title.

melloware avatar Apr 09 '24 19:04 melloware

Ah sorry, I got confused by changing the types within PR #6356 and Stepper not having any ref definition yet, but of course the Stepper also has a ref and the initial title was valid 😅

dvpritzbuer avatar Apr 10 '24 03:04 dvpritzbuer

@dvpritzbuer i am confused where are we at with this ticket as of 10.6.5?

melloware avatar May 10 '24 01:05 melloware