Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Component viabilities #21

Open
mike-engel opened this issue Oct 12, 2018 · 2 comments
Open

Component viabilities #21

mike-engel opened this issue Oct 12, 2018 · 2 comments

Comments

@mike-engel
Copy link
Contributor

Howdy! Thanks for starting this. Before I did a bunch of work, I wanted to put forward some suggestions for components to see if you'd be interested in adding them to libreact. If there's interest, I'll definitely make some PRs!

  • TouchSensor: This would pass through a boolean indicating if the device supports touch interactions or not. Useful for displaying some UI components on a mobile device rather than guessing a good width.
  • OSOnly: The OS of the device. This would be helpful for changing/adjusting layout based on Safari's bottom bar, etc. Takes an array of OS' to target.
  • ReducedMotionSensor: Renders via a child function that passes through whether the user prefers reduced animation on their device. Name isn't the best. Probably just exports a specific instance of MediaSensor
  • Conditional components. It would be interesting to see if js-control-statements would be willing to merge with this project!
  • Tabs: I don't like the name, but this would provide a way to have a nav that toggles content below without (or maybe with?) changing the route.
  • LoadingSpinner: Some sort of nice default for a loading spinner.
@streamich
Copy link
Owner

streamich commented Oct 12, 2018

Hey, thanks for your interest!

  • TouchSensor — I would call it something like TouchSupportSensor. The question is if it has to be a render-prop, if the boolean value of it does not change over time or depending on where it is rendered in the React tree, it could simply be a plain JavaScript function.
  • OSOnly — similar as previous, if the value of this component does not change over time or depending where it is rendered it could be just a plain function.
  • ReducedMotionSensor — this sound something that could be done by user of this lib instead.
  • Control statements — I was thinking about including them, I don't think those are terribly useful but for the sake of completeness we could include those in this lib.
  • Tabs and Spinner could be added to the UI section.

@mike-engel
Copy link
Contributor Author

Thinking about TouchSupportSensor and OSOnly, I think they could be both a function and a component. I prefer HOCs when writing my React code, personally, so I could include both.

As for control statements, similar to above, I personally find them useful as HOCs for composition, but they don't need to be in this library.

Thanks! I'll start on a PR :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants