Temzasse / react-modal-sheet

Flexible bottom sheet component built with Framer Motion to provide buttery smooth UX while keeping accessibility in mind 🪐
https://temzasse.github.io/react-modal-sheet/
MIT License
828 stars 78 forks source link

Type Error #80

Closed shellord closed 2 years ago

shellord commented 2 years ago

Getting an error like this when using TypeScript.

Property 'onViewportBoxUpdate' is missing in type '{ children: Element[]; }' but required in type 'Pick<MotionProps, "style" | "transformTemplate" | "transformValues" | "variants" | "transition" | "onViewportBoxUpdate" | "onBeforeLayoutMeasure" |

playaz87 commented 2 years ago

Also getting this error i fixed it by implementing onViewportBoxUpdate={() => {}} on the Header, Container and Content components.

Whilst it does work, I have an issue on some devices where closing the sheet doesn't remove the react-modal-sheet-container div and leaves the backdrop covering the page rendering it non-interactable.

Temzasse commented 2 years ago

What framer-motion and react-modal-sheet versions are you using?

playaz87 commented 2 years ago

@Temzasse I'm using framer-motion 6.3.3 and react-modal-sheet 1.5.1

deepikaCheckatrade commented 2 years ago

I see similar issue on Sheet.Container, Sheet.Header and Sheet.Content components on both versions of framer-motion 6.3.3 and 6.2.1 with react-modal-sheet 1.5.1

Property 'onViewportBoxUpdate' is missing in type '{ children: Element[]; }' but required in type 'Pick<MotionProps, "style" | "onDrag" | "onDragEnd" | "onDragStart" | "onAnimationStart" | "inherit" | "transformTemplate" | "transformValues" | "variants" | "transition" | ... 35 more ... | "dragMomentum">'.ts

shellord commented 2 years ago

@Temzasse same as @playaz87 framer-motion:^6.3.3 and react-modal-sheet:^1.5.1

playaz87 commented 2 years ago

@Temzasse Any update on this?

Temzasse commented 2 years ago

Unfortunately I don't have bandwidth to investigate this issue at the moment.

To me this sounds like a Framer Motion related issue since I'm basically just using the types from framer-motion lib. Please check if there is a related issue in their repo. This could be an issue with your TS version as well 🤷‍♂️

My other hunch is that you might be having two versions of framer-motion installed. Are you using npm's --legacy-peer-deps to avoid getting duplicate peer deps?

Johnrobmiller commented 2 years ago

If, having installed the latest of both framer-motion and react-sheet-modal, react-sheet-modal has errors, then this is a bug within react-sheet-modal, and so it can only get fixed by the author or a contributor.

Downgrading framer-motion is not a good solution to this bug, but it's what I had to do in my case to get this library to work.

I wish that framer-motion would not release non-backwards-compatible updates, but it looks like they did, and so the only thing to do is fix the errors, as time-consuming as that is.

playaz87 commented 2 years ago

@Johnrobmiller Which version of framer-motion worked for you?

Temzasse commented 2 years ago

I still have no clue what really caused the problem since everything works perfectly fine locally but when I build the lib the types have this extra onViewportBoxUpdate prop that comes out of thin air 😅 It was somehow related to me using typeof in the index file 🤷🏻‍♂️

Anyway, I think I found a way to fix the problem. Hopefully it works for you guys now 😊

This should be fixed in the latest patch release v1.5.2.

playaz87 commented 2 years ago

@Temzasse Thanks - can confirm I'm no longer getting the errors and it's now correctly working in Android Webview.