Not a mobile dev, but have utilized Flutter quite a bit at work for web development. You can have a shared codebase between mobile and web, just changing a few options when compiling to create different versions. No need for different UI/UX code if you don't mind having a web version which would really be best suited for a touch based platform.
To keep things simple, I'd suggest using a Provider approach rather than something like BLoC - we used BLoC for a while at the office and it ended up being a headache.