tomsmalley / semantic-reflex

🔧 Semantic UI for Haskell and Reflex-DOM
https://tomsmalley.github.io/semantic-reflex/
BSD 3-Clause Clear License
38 stars 13 forks source link

Compare to reflex-dom-semui #1

Open 3noch opened 6 years ago

3noch commented 6 years ago

Hey! I've been toying with doing a deeper dive to integrate Semantic-UI with reflex. Right now I'm using https://github.com/reflex-frp/reflex-dom-semui and it appears this is based on that somehow? I'm curious how these projects compare as I'd like to contribute.

tomsmalley commented 6 years ago

Hi! This was supposed to be a PR but it got slightly out of hand. Right now it is very incomplete, the API is all over the place, and the code is messy. The reason for the break from reflex-dom-semui is because this library does not stick to the Reflex Dom conventions, instead providing overloaded field lenses so that it should be quite concise in application code. Components are encapsulated in data types rather than functions, so they can be combined in a "safer" (sort of) manner. I want to try to prevent people from shooting themselves (myself) in the foot, but whether this library will help that remains to be seen.

I'm copying many of the examples from the Semantic UI docs as I go, this is visible here: https://tomsmalley.github.io/semantic-reflex/. This also includes code snippets.

I'll leave this issue open until I have more of an idea of where I'm going with the code, but I'm hacking on it daily. I'll try to clean up existing code now before adding too many new features in order to establish some sort of standard for contributing :) I wasn't expecting anyone to notice this yet!

tomsmalley commented 6 years ago

It's worth noting: I don't intend to try to replace the JavaScript parts of Semantic UI, as nice as that would be. I think it's best to lean on them as much as possible until perhaps one day we can eliminate the need for both semantic.min.js and jquery.min.js. That's an awful lot of work though, I think there's somewhere in the region of 22,000 lines of JavaScript in Semantic UI alone.

3noch commented 6 years ago

Thanks for the clarification! I like the direction you're going. And I also have been really keen on getting rid of JS dependencies and relying solely on Reflex-DOM for that. However, you're absolutely right that the work would be enormous. I think best of all would be to slowly swap out implementations over time. If, by some chance, your app only uses parts that have been re-implemented, you can drop the two dependencies safely.

tomsmalley commented 6 years ago

Yes, that's the plan. I imagine parts like the checkbox module wouldn't be too bad.