in initializer-page/src/components/utils/Hash.js [23:52]
export default function useHash() {
const [hash, setHash] = useState(getHash())
const { dispatch } = useContext(InitializrContext)
const { config, complete } = useContext(AppContext)
useEffect(() => {
const handler = () => {
setHash(getHash())
}
window.addEventListener('hashchange', handler)
return () => {
window.removeEventListener('hashchange', handler)
}
}, [])
useEffect(() => {
if (complete && hash) {
const params = queryString.parse(`?${hash.substr(2)}`)
dispatch({ type: 'LOAD', payload: { params, lists: config.lists } })
clearHash()
setHash('')
if (isValidParams(params)) {
toast.success(`分享配置 已加载.`)
}
}
}, [complete, hash, dispatch, config])
return null
}