Can you please review the Show HN guidelines? I appreciate that you're not exactly flaming the OP here, but still, the idea is to respond more charitably to people's work. If you know more than others, find a constructive way to express that, such as by teaching them—and by extension, the rest of us—something related to what they've done so far.
This is a great point, and on a second reading my comment did come off as a little insensitive -- will leave it up to give others context and make this a teachable moment for all of us to improve the level of discourse :)
Hey congrats! People will complain about the package being to small or trivial, but just keep on creating. We all start somewhere, and hooks are a fun thing to experiment with.
It's true that most folks probably would do their own implementation of this and the GPL license would be a non-starter for most projects, but if it suits your needs and you've learned something in the process, more power to you. :)
browser compatibility/other edge case handling would be one decent reason to utilize a package for otherwise straightforward implementations. The MDN docs have a helpful walkthrough for feature detecting localStorage that would make a useful addition to your library. https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage...
Is the react hook code so complicated that when it totals up to 17 lines of code[1], it needs to become a npm package? The code it self looks neat and clean - even more reason to just write your own hook.
It is a difficult to recommend a small package that is GPLv3, since your entire app would have to be licensed appropriately (since it runs in the same process).
For projects like Blender, where development is a self-reinforcing ecosystem I appreciate what the GPL does, here not so much.
Mirroring other comments, this seems a bit trivial to be its own package and looking at the source, it seems to not cover cases where the local storage value can't be parsed.
I was playing with String.prototype.padLeft earlier and boy that has weird semantics. For the padding length, strings are parsed. NaN is 0, Infinity throws an error, negative Infinity is 0, true is 1. Good ol’ JS!
I feel like the "it's a bit small for a package" comments have forgotten how js-land is going... For example, check out is-number: https://www.npmjs.com/package/is-number
> I feel like the "it's a bit small for a package" comments have forgotten how js-land is going... For example, check out is-number: https://www.npmjs.com/package/is-number
I have noticed that, in the wild, referencing window.localStorage at all will raise a security exception in some browsers. If this happens inside of a React hook, it will unmount everything up to the nearest componentDidCatch(). In practice, everything involving localStorage needs to make liberal use of try, catch blocks.
28 comments
[ 4.7 ms ] story [ 68.5 ms ] threadThis is a few lines of pretty trivial code
https://news.ycombinator.com/newsguidelines.html
https://news.ycombinator.com/showhn.html
https://news.ycombinator.com/newsguidelines.html
It's true that most folks probably would do their own implementation of this and the GPL license would be a non-starter for most projects, but if it suits your needs and you've learned something in the process, more power to you. :)
1: https://github.com/akash-joshi/local-storage-hook/blob/7d593...
For projects like Blender, where development is a self-reinforcing ecosystem I appreciate what the GPL does, here not so much.
https://usehooks.com/useLocalStorage/ has a safer implementation and is free to copy (Unlicense).
https://arstechnica.com/information-technology/2016/03/rage-...
#neverforget
"Two wrongs don't make a right"
[0] https://github.com/akash-joshi/local-storage-hook/blob/maste...