nandorojo / moti

🐼 The React Native (+ Web) animation library, powered by Reanimated 3.
https://moti.fyi
MIT License
3.9k stars 120 forks source link

[types] MotiImage type error when specifying tintColor animation #305

Open xzilja opened 11 months ago

xzilja commented 11 months ago

Is there an existing issue for this?

Do you want this issue prioritized?

Current Behavior

It seems that MotiImage animates "tintColor" property as expected, however specifying it on the component throws type error (property tintColor is invalid).

      <MotiImage
          animate={{ tintColor: active ? activeTint : '#ffffff' }}
      />

Expected Behavior

Should be a valid property type.

Steps To Reproduce

  1. Example above under "Current Behavior"

Versions

- Moti: 0.25.4
- Reanimated: 3.3.0
- React Native: 0.72.3

Screenshots

No response

Reproduction

https://stackblitz.com/edit/nextjs-5qbidy?file=pages%2Findex.tsx

nandorojo commented 11 months ago

this is likely because it’s a prop and not in the styles, right? if so, you can probably just ts-ignore it

xzilja commented 11 months ago

ts-ignored it for now yeh, it's on the styles of <Image /> though. I think you can set it as prop as well, however as prop it seems to have no effect.

nandorojo commented 11 months ago

hm interesting

nandorojo commented 11 months ago

i’d accept a PR with a fix if you want to try

xzilja commented 11 months ago

😅 yeh I wanted to, but it seems like image component is just a simple wrapper here? https://github.com/nandorojo/moti/blob/master/packages/moti/src/components/image.tsx

Here is stylesheet usage with no error / correct typing

Screenshot 2023-08-04 at 15 24 23

And this is when it's defined in animate prop of MotiImage

Screenshot 2023-08-04 at 15 25 57

Where would I go to see how animate prop gets it's types?

nandorojo commented 9 months ago

It's this line: https://github.com/nandorojo/moti/blob/ab569152a0a228e10f581c57386ac6a2a31ac9a7/packages/moti/src/core/types.ts#L271C1-L271C52

Maybe those have to get changed to ImageStyle | ViewStyle | TextStyle