Twitter | Search | |
Ryan Florence
React Training, React Router, Reach UI. Learn React Hooks:
52,929
Tweets
621
Following
71,249
Followers
Tweets
Ryan Florence retweeted
Dave Geddes Aug 14
🎉🧙‍♂️🧙‍♀️👾🐉 Service Workies ch4 has shipped! master Service Worker caching for zero pennies thanks to
Reply Retweet Like
Ryan Florence 17h
Replying to @stubbornella
I’m not intimidated but I have like, a reverence or something like that. I learned so much from you a decade ago when I was a beginner. Thank you!
Reply Retweet Like
Ryan Florence Aug 17
Replying to @Amys_Kapers @ksylor
Heh, yep, didn’t make that up cause I’ve seen it a few times. You ladies are tough to push through it. Doing my best to help.
Reply Retweet Like
Ryan Florence Aug 17
Replying to @freezydorito @devonbl
Those were rough times.
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ASpittel
There’s no way to get better without it. Remembering this always helps me.
Reply Retweet Like
Ryan Florence Aug 17
Reply Retweet Like
Ryan Florence Aug 17
Replying to @jkup @kng
That's a great pace for a first run. Nice work.
Reply Retweet Like
Ryan Florence Aug 17
Replying to @pgarciacamou
DANGIT! I really wanted that job where you parse strings all day, every day.
Reply Retweet Like
Ryan Florence Aug 17
Excuse me?
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ryanflorence
Here's the usage: test("dumb interview question", () => { const result = calculator("3 4 +") assert(result === 7, "addition") })
Reply Retweet Like
Ryan Florence Aug 17
Replying to @BartoszJarocki
I no longer work solo and I hate arguing about stuff like this more than I hate typing 5 characters over 3.
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ryanflorence
You even get line numbers for the failed tests!
Reply Retweet Like
Ryan Florence Aug 17
Occasionally I like to make my own testing framework, here it is, along with this sentence: const test = (name, fn) => { console.log('>', name); fn() } const assert = (cond, desc) => { if (cond) { console.log('✔️', desc) } else { console.assert(cond, desc) } }
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ryanflorence
(ofc, focus should move, but if Tabs is being controlled it doesn't have knowledge of where, that's the app's job, the only time it moves focus is when a tab is clicked by the user)
Reply Retweet Like
Ryan Florence Aug 17
alphabetical css can lead to bugs, the order matters, why do people come up with this stuff 😆
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ryanflorence
When we are done though, you're gonne be like:
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ryanflorence
We're not done, ofc, so they aren't complete yet 😂 But this is the level we're operating on for them. Most the features that make them such great components you probably won't even notice.
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ryanflorence
What's hard to appreciate about our Reach components is their completeness. It's one thing to move focus around, and another to have it be a controlled component. But it's a different level of experience to build it in a way that *does not* move focus when being controlled.
Reply Retweet Like
Ryan Florence Aug 17
Replying to @ryanflorence
Follow up: Hook up @reach/tabs to the back button w/ *location state*. Maybe the tabs aren't persistent across sessions, or can be different for different users, so you don't want them part of the URL--but you do want them hooked up to the back button:
Reply Retweet Like
Ryan Florence Aug 17
Hooking up @reach/tabs to the back button and When you build reusable components like Tabs, allowing their state to be "controlled" or "uncontrolled" opens up these kinds of use cases.
Reply Retweet Like