It's great for beginners. Then it turns into a mess.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function useMergeState(initialState) { | |
| const [state, setState] = useState(initialState); | |
| // use useRef to improve functionality when calling the setState asynchronously | |
| const stateRef = useRef(state); | |
| function setRefState(newState) { | |
| stateRef.current = newState; | |
| return setState(newState); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import axios from 'axios' | |
| import toast from './toast' | |
| function errorResponseHandler(error) { | |
| // check for errorHandle config | |
| if( error.config.hasOwnProperty('errorHandle') && error.config.errorHandle === false ) { | |
| return Promise.reject(error); | |
| } | |
| // if has response show the error |
Functional options: https://gist.github.com/travisjeffery/8265ca411735f638db80e2e34bdbd3ae
In real world we need to validate input. This functional options kills global namespace. Take a look my average config:
import (
"domain.tld/user/log"
)
// default configs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| * Handling Errors using async/await | |
| * Has to be used inside an async function | |
| */ | |
| try { | |
| const response = await axios.get('https://your.site/api/v1/bla/ble/bli'); | |
| // Success π | |
| console.log(response); | |
| } catch (error) { | |
| // Error π¨ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Trie.js - super simple JS implementation | |
| // https://en.wikipedia.org/wiki/Trie | |
| // ----------------------------------------- | |
| // we start with the TrieNode | |
| function TrieNode(key) { | |
| // the "key" value will be the character in sequence | |
| this.key = key; | |