react-concurrent-router
Version:
Performant routing embracing React concurrent UI patterns
32 lines (29 loc) • 660 B
JavaScript
import { useContext, useState, useEffect } from 'react';
import { R as RouterContext } from './RouterContext-Bf2jDrm9.js';
const useHistory = () => {
const {
history: {
length,
location,
action,
index,
entries
},
subscribe
} = useContext(RouterContext);
const [lastUpdate, setLastUpdate] = useState(new Date().getTime());
useEffect(() => {
const dispose = subscribe(async () => {
setTimeout(() => setLastUpdate(new Date().getTime()), 1);
});
return () => dispose();
}, []);
return {
length,
location,
action,
index,
entries
};
};
export { useHistory as default };