Building a BottomSheet from scratch in React Native

Поділитися
Вставка
  • Опубліковано 19 вер 2024

КОМЕНТАРІ • 214

  • @raymondmichael4987
    @raymondmichael4987 2 роки тому +6

    I really need to lean Typescript 😌;
    Thanks buddy this is gold.
    Greetings from Tanzania 🇹🇿

  • @DrKenzoT
    @DrKenzoT 2 роки тому +11

    Oh man ! You took my question so serious 😬. Thank You so much bro. Keep inspiring. ❤️❤️❤️

    • @Reactiive
      @Reactiive  2 роки тому +4

      Hi Syed, I think it is an extremely interesting component to build. Both because it is particularly useful and because it encapsulates so many concepts 👀

    • @DrKenzoT
      @DrKenzoT 2 роки тому +2

      @@Reactiive That’s exactly why I asked you this question because I wanted to create it myself and have control over it.

    • @ivyhello
      @ivyhello Рік тому +1

      @@DrKenzoT Thank you for asking and big thank you to the creator!

  • @youssefmuhamad3213
    @youssefmuhamad3213 2 роки тому +30

    Wow, this is what I needed. Your videos are very well explained, keep it up.

    • @Reactiive
      @Reactiive  2 роки тому

      Hi Youssef, thank you very much for your feedback 🤓

  • @cbclapp
    @cbclapp 2 роки тому +2

    Wonderful, and now I don't need any finicky packages outside of just reanimated, and have a reusable component until the end of time (or until the tech changes!)
    You're awesome!

  • @ramielwan48
    @ramielwan48 2 роки тому +2

    Always like before watching because I know you dont disappoint

  • @komicproductions3887
    @komicproductions3887 2 роки тому +1

    I was waiting to see if you were going to use the `useImperativeHandle` hook for the button ref. As soon as you did you earned another subscriber! :)

  • @DigitalAndTradingSolutions
    @DigitalAndTradingSolutions Рік тому +1

    Just kudos to your content, saved lot of time and taught a self dependent component in easy and best way, thanks again

    • @Reactiive
      @Reactiive  Рік тому

      Thanks a lot, really appreciated ❤

  • @ddikodroid
    @ddikodroid 2 роки тому +2

    This is what I'm looking for. Thank you, Enzo!

  • @thenightguy6816
    @thenightguy6816 Рік тому

    Thanks for the explanation on the interpolate function, I understood it better than in the docs .

  • @__iTsMe__
    @__iTsMe__ 2 роки тому +2

    This is what I'm looking for. Thank You so much bro. Keep inspiring

  • @teminoah2960
    @teminoah2960 5 місяців тому +1

    excellente, bravo! I learnt alot , I just have to go over and over again .well done

  • @mosdev1663
    @mosdev1663 5 місяців тому +1

    The explanations are very clear, everything is sweet and functional, and the video is partitioned, which is really just a joy, Monsieur. Subscribed and liked for me 🫡

    • @Reactiive
      @Reactiive  5 місяців тому +1

      What a feedback! Thank you so much 😁

  • @leakymalloc6157
    @leakymalloc6157 2 роки тому +1

    Very underrated channel, really glad I found it. Thank you for your great tutorials and I hope you keep it up! I've been learning a lot from you, and there are very few resources on YT that go into React Native topics beyond the very basics.

  • @sujitprasadkushwaha9031
    @sujitprasadkushwaha9031 8 місяців тому

    Well explained.
    I enjoyed it.
    Please keep posting these kind of informative videos on react native.
    Thank you

  • @gauravm.
    @gauravm. 2 роки тому +3

    This is amazing, and I really loved how flawlessly you implement this. Just bonkers!⚡⚡⚡

  • @AMITKUMAR-wy8ok
    @AMITKUMAR-wy8ok 2 роки тому +1

    Thank you so much implemented it in my Live project love from India

    • @Reactiive
      @Reactiive  2 роки тому

      Glad to hear that! Thank you 🍻

  • @ederrosa5909
    @ederrosa5909 2 роки тому

    BEST TUTORIAL FOR ANIMATION EVEEEEEEEEEEEEEEEEEEEER!!!!

  • @vaibhavnaik2481
    @vaibhavnaik2481 2 роки тому +3

    Amazing video. Very helpful.

  • @abedzim5247
    @abedzim5247 2 роки тому +15

    Thank you for the amazing work. Can you make one with the ScrollView in ?

  • @Jim49267
    @Jim49267 Рік тому +1

    Can you make a second part of this video and tell us how to add the product to the Bottom Sheet? please

  • @TimothyDzokoto
    @TimothyDzokoto 4 місяці тому

    Amazing! This video in very informative and simple. I really liked it.

  • @robertnyenge1188
    @robertnyenge1188 Рік тому

    Super amazing!...you made me also understand the concept of the bottom sheet in reverse! very detailed and most importantly very very well explained. Thank you very much. Exactly what I needed

  • @tysonswing
    @tysonswing Рік тому

    DUDE! You are a master! Thank you so much. This helps explain a lot of how React works so well!!! Love how simple this is, everything should be like this 🙏

  • @kakarnyori5457
    @kakarnyori5457 Рік тому

    Nice tutorial. Just had to inform that you don't need another useSharedValue to create a context variable, since each gesture handler (onActive, onStart, ...) receives both the event and "context" arguments, and you can share this context between any other gesture handler. Edited with an Eg:
    onStart: (_, ctx) => {
    ctx.startX = x.value;
    },
    onActive: (event, ctx) => {
    x.value = ctx.startX + event.translationX;
    },
    onEnd: (_) => {
    x.value = withSpring(0);
    }

  • @cv_vegetation_mapping
    @cv_vegetation_mapping 2 роки тому +2

    easily the best channel on youtube. You have improved my react native design so much. THanks man

  • @jo.repossi
    @jo.repossi 8 місяців тому

    Cool and very good explained!

  • @JustinRichardson-yo5ve
    @JustinRichardson-yo5ve 5 місяців тому

    So happy I found your video and channel. This was fantastic 👏

  • @prakharkhandelwal739
    @prakharkhandelwal739 2 роки тому +1

    Amazing explaination.... Loved it. implemented it and boom.

  • @sherifsamir6888
    @sherifsamir6888 Рік тому

    Dude, you saved my life. thank you so much

  • @NicholasVerkaik
    @NicholasVerkaik 2 роки тому

    Thank you.
    Your video was thorough and easily to follow. 10/10

  • @HoussemBahri-nn3qt
    @HoussemBahri-nn3qt 5 місяців тому

    I really appreciate this work

  • @matkosetnik7354
    @matkosetnik7354 Рік тому

    Wow. Exactly what i needed!! Nice job!!

  • @kennethlangdahlkrogstad2822
    @kennethlangdahlkrogstad2822 2 роки тому +3

    How do i add a faltlist, and make the gesutre stop moving the bottom sheet and move the list instead?
    Update: Use import { FlatList } from 'react-native-gesture-handler';

  • @maldinidwiputra9374
    @maldinidwiputra9374 2 роки тому +1

    thanks you saved me

  • @kangkoding3558
    @kangkoding3558 2 роки тому +2

    how if content has scrollview scrollview/flatlist how to handle the scroll ?

  • @faouzielbakri
    @faouzielbakri 2 роки тому

    this exactly what i need !!! i really enjoyed your video and the way you explain things
    keep it up !!

  • @karakahya-bauunternehmen
    @karakahya-bauunternehmen Рік тому

    Wooooooow very good. that was very good. i have learned a lot of new thing.

  • @farouqseriki5942
    @farouqseriki5942 Рік тому +1

    If you are planning on using a scrollview or flatlist within the bottom sheet you should import them from 'react-native-gesture-handler' as such import { ScrollView as Scroll,FlatList as Flat} from 'react-native-gesture-handler' i impoerted them as other things because i already have a other ScrollView and Flatlist im using from 'react-native'

  • @alecmather
    @alecmather 2 роки тому

    Such a high quality video, this is awesome man, thanks so much for doing this

  • @yuchenyea
    @yuchenyea 10 місяців тому

    that's exactly what i need, thank you!

  • @oliechan
    @oliechan 2 роки тому

    Great content, subbed and liked!
    I really like your calm style :)

  • @MinhLe-pt7py
    @MinhLe-pt7py 2 роки тому

    Thank you Sir! TNice tutorials helps alot !

  • @felipemelendez5741
    @felipemelendez5741 Рік тому

    Awesome, thanks. I've subscribed and look forward to your other tutorials

  • @SteveBoyer10
    @SteveBoyer10 2 роки тому

    Thank you for this! You are such a smooth coder, if that makes any sense :)

  • @fabrizia5777
    @fabrizia5777 2 роки тому

    Brilliant explanation! Keep going, you're helping so much❤🐢

  • @gianm94
    @gianm94 11 місяців тому

    Great video! is just I was looking for! Chears and thankyou

  • @textual
    @textual 2 роки тому +5

    Great video, explain the functionality and added real-world use cases. bravo! update: i tried to extend to see when it hits top, but got an error. how can the app look into the bottom sheet to get its max values and current position?

  • @김병국-v3h
    @김병국-v3h 2 роки тому +2

    Thank you for your video.
    Can I ask you a question?
    how to fade background out of bottomsheet, and how to close bottomSheet when touching background

  • @alsetengineering3538
    @alsetengineering3538 2 роки тому

    You are a super person. Tysm for this content. ❤❤

  • @kiefer8101
    @kiefer8101 2 роки тому +1

    LIKED AND SUBSCRIBED!!

  • @s_5526
    @s_5526 9 місяців тому +1

    thanks for the videos can you make video on implementing phonepe, gpay, upi transaction in react native cli as a beginner we need more videos on complicated topics

  • @youneshenni5417
    @youneshenni5417 2 роки тому

    Phenomenal video :) keep them coming.

  • @aayush135
    @aayush135 Рік тому

    Very good explanation ✨✨🙏🏻

  • @DevelopingwithHarun
    @DevelopingwithHarun Рік тому

    Wooow,, to prevent overflow the view , it is really great solution to use Math.max. It would be difficult to handle this problem. Thank you

  • @radomirmijovic2605
    @radomirmijovic2605 2 роки тому +1

    Great video, thanks!

    • @Reactiive
      @Reactiive  2 роки тому

      Hi Radomir, thank you!

  • @FunwithIndra
    @FunwithIndra 2 роки тому

    Thank you So much for this wonderful tutorial..

  • @gustavogedozkozoroski4159
    @gustavogedozkozoroski4159 2 роки тому

    Nice video! You really helped me.

  • @nejibafdhal5172
    @nejibafdhal5172 Рік тому

    Nice tutorial thanks

  • @estebandiaz1306
    @estebandiaz1306 6 місяців тому

    Great tutorial! As im going through it getting some issues. Figured I'd comment the resolutions here in case it helps anyone.
    Issue #1 at about the 6:00 mark you use GestureDetector this was throwing the error Cannot read property 'toGestureArray' of undefined. To fix this I had to add the component TapGestureHandler like so
    import { Gesture, TapGestureHandler, GestureDetector } from 'react-native-gesture-handler'
    .... rest of the code here

  • @lucke46
    @lucke46 2 роки тому

    Great content! Keep up the good work.

  • @akashm1240
    @akashm1240 Рік тому

    The video is amazing and very informative. The one thing I found was that at the start your communication was not interesting, so actually I skipped this video. Then again my friend told to watch it. I don't think no one else has this good content. Just keep the video interesting importantly in the start. Besides that I learned lots of things. Thanks!!😇

  • @eneseren8332
    @eneseren8332 Рік тому

    Thank you so much for the tutorial

  • @harpalsinhjadeja5571
    @harpalsinhjadeja5571 Рік тому

    Amazing tutorial, a small addition could be a low opacity background to differentiate the BottomSheet from the content. Since you used black background that doesn't make sense, but in a real setting that would be a white UI usually and also the BottomSheet is white.

  • @Tomaks28
    @Tomaks28 2 роки тому +3

    Good video. But could you add some backdrop animation too ? Could be nice to see this feature

    • @Reactiive
      @Reactiive  2 роки тому

      Hi Thomas thanks for the feedback! In order to implement a backdrop I would use something like the interpolate api (from reanimated) with a black overlay

  • @EquinoXReZ
    @EquinoXReZ 2 роки тому +2

    Hello, thank you for this tutorial, just one question.
    How do I get a scroll view working properly within this bottom sheet?
    It doesn't let me scroll all the down to the bottom.
    -Thank you!

  • @SO-xs6wu
    @SO-xs6wu 2 роки тому +1

    THANK YOU FOR THIS AMIZING VIDEO . I ASK YOU IF YOU CAN DO AVIDEO HOW TO DO A CIRCUL MOVING

  • @MJ-vx5cz
    @MJ-vx5cz 2 роки тому +1

    I love your content 💙💙
    Can you please do picker

  • @mohamedmoussa399
    @mohamedmoussa399 2 роки тому

    You are great man. Thanks 👍

  • @truongngodang
    @truongngodang 2 роки тому +1

    Nice thanks bro

  • @arnolddevmode9603
    @arnolddevmode9603 2 роки тому +1

    i like it , very very cool,

  • @josecoelho1018
    @josecoelho1018 2 роки тому +1

    Nice video thanks

  • @izuogufrancis5531
    @izuogufrancis5531 3 місяці тому

    Thank you so much.

  • @AmanDeep-oo4nw
    @AmanDeep-oo4nw 2 роки тому +1

    I love this ❤

  • @tonsantos21
    @tonsantos21 2 роки тому

    Nice tutorial. Make more!

  • @kirank3368
    @kirank3368 6 місяців тому

    Amazing content 🥰🥰

  • @AmjadOmari
    @AmjadOmari 3 місяці тому

    great and clear, Thanks.
    But I have a small question, how can we handle the scrollView or Flatlist inside this custom bottomSheet?

  • @Sarev_
    @Sarev_ 2 роки тому

    Really nice video as always! How about a video about layout transitions where we have a grid of images having various sizes and once we tap on the image it gets removed and all other images get reorganized? Also, I think your channel should be mentioned in the React Native reanimated official docs as it's extremely helpful. :)
    I wish William Candillon in his 'Can it be done in React Native' series explained things like you do. I watch his videos being very impressed by his knowledge while understanding nothing.

  • @erbolnurmanbetov
    @erbolnurmanbetov 2 роки тому

    Great job!

  • @kafelinux
    @kafelinux 2 роки тому

    you are the hero 🔥🔥🔥

  • @georgispeaking
    @georgispeaking 2 роки тому

    Great work.

  • @lorenzotricarico4682
    @lorenzotricarico4682 2 роки тому +1

    Fortissimo.

  • @QuanNguyen-ug5ln
    @QuanNguyen-ug5ln 2 роки тому +1

    Thanks for your awesome video.
    I had a case where it was possible to scroll in children's screen whether bottom sheet height is SCREEN_HEIGHT/3 or fullscreen height.
    Can you help me to resolve it?

  • @wevertonsantiago4305
    @wevertonsantiago4305 2 роки тому

    Very nice! New subs here! Thanks for video!

  • @glaze4629
    @glaze4629 2 роки тому +2

    I wonder if you could create a bottom sheet with a nested flatlist or scrollview, i use scrollTo when reaching the top, but the performance it's quite low

  • @maan.patel.8808
    @maan.patel.8808 2 роки тому

    What a great video! Straight to the point and perfectly explained. Thanks for uploading tNice tutorials!

  • @amurfpv3492
    @amurfpv3492 2 роки тому +2

    @Reactiive what about Collapsible and expandable header ? Not a parallax one but more like it expands/collapses on either up or down direction.

    • @Reactiive
      @Reactiive  2 роки тому +1

      Hi Amur, It's a beautiful idea. I was recently thinking of doing something similar using the Telegram header animation as a reference. Let me know if you were thinking of a specific animation (from an app or a dribbble animation).

  • @saurabhs4743
    @saurabhs4743 Рік тому

    thank you so much

  • @avtandilshaburishvili4853
    @avtandilshaburishvili4853 Рік тому +1

    Amazing tutorial and explanation ☺️ I have a question tho. How could be integrated a blurred background behind it like in modals ?🤔 could you give some hints ? Thx in advance ☺️

  • @vighneshpathak9651
    @vighneshpathak9651 7 місяців тому

    Very nice lecture, thanks for it , I have question I have text field inside the bottom sheet , I need one functionality that, if the bottom sheet height is -SCREEN_HEIGHT / 3 I don't want to render the text field and if the bottom sheet is taking the full height of the screen , it should render the text field.

  • @stesvis
    @stesvis Рік тому +1

    Thanks for explaining a concept like animations, which is not that easy to grasp!

  • @lingarajsahoo3583
    @lingarajsahoo3583 2 роки тому

    outstanding ❤️

  • @doom5786
    @doom5786 Рік тому

    Thank you so much, this tutorial so great

  • @call_me_rusker
    @call_me_rusker Рік тому

    why in this case, the onPress function needs to be wrapped inside a useCallback?

  • @daljeetsingh5127
    @daljeetsingh5127 2 роки тому +1

    osm video great job ❤

    • @daljeetsingh5127
      @daljeetsingh5127 2 роки тому +1

      one more question how did you get so deep knowledge about all of these hooks can you please make a video that how you study these things and you can say the approach to learn in depth.

    • @Reactiive
      @Reactiive  2 роки тому +1

      Hi Daljeet, I honestly don't consider myself to be particularly good at Reanimated (some things I learned at my old company but many I learn by trying to share videos on UA-cam). The first trick to learning is simply to be consistent. The second trick is to never settle for the first solution and always look for the most elegant one.

    • @daljeetsingh5127
      @daljeetsingh5127 2 роки тому

      @@Reactiive Thanks :) for sharing

  •  22 дні тому +1

    Great tutorials
    what would happen if create multiple instances of this BottomSheep components , i mean use it in varios page inside the app, it creates multiples instances or just one with different content inside?

    • @Reactiive
      @Reactiive  19 днів тому +1

      That's a great question! This implementation will create multiple instances but you can easily overcome this problem by moving this component into a Custom Provider and managing it via Context APIs

    • @jhmesseroux
      @jhmesseroux 11 днів тому

      @@Reactiiveyou’re right . Thanks for tour time 🤙🏼

  • @tgfrnds
    @tgfrnds 3 місяці тому

    brilliant

  • @rukmanaland
    @rukmanaland Рік тому

    Thanks!!!

  • @Flash136
    @Flash136 Рік тому +1

    Now, how do you put a black, transparent backdrop below the bottom sheet?

    • @Reactiive
      @Reactiive  Рік тому

      Hi Angelo, few days ago I've published the part 2 with this problem solved 🙄

  • @4rled
    @4rled Рік тому

    Will this work if BottomSheet hosts a scrollview? will the scrollview consume the scroll gesture?

  • @mist5322
    @mist5322 2 роки тому +2

    Nice! But how it works with ScrollView?

    • @Reactiive
      @Reactiive  2 роки тому +1

      Hi Mist, nesting a Scroll Component in the BottomView with a smooth animation is definitely harder and this solution won't be enough (but it could be a good starting point). If you just want to implement the functionality in a fast way I highly recommend you the react-native-bottom-sheet package

    • @mist5322
      @mist5322 2 роки тому

      @@Reactiive Ok thanks!)

    • @EquinoXReZ
      @EquinoXReZ 2 роки тому

      @@mist5322 Did you figure out how to get this to work? Any resources?