Projekt

Obecné

Profil

Stáhnout (1.15 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
import React from "react";
2
import invariant from "tiny-invariant";
3
4
import Context from "./RouterContext.js";
5
import matchPath from "./matchPath.js";
6
7
const useContext = React.useContext;
8
9
export function useHistory() {
10
  if (__DEV__) {
11
    invariant(
12
      typeof useContext === "function",
13
      "You must use React >= 16.8 in order to use useHistory()"
14
    );
15
  }
16
17
  return useContext(Context).history;
18
}
19
20
export function useLocation() {
21
  if (__DEV__) {
22
    invariant(
23
      typeof useContext === "function",
24
      "You must use React >= 16.8 in order to use useLocation()"
25
    );
26
  }
27
28
  return useContext(Context).location;
29
}
30
31
export function useParams() {
32
  if (__DEV__) {
33
    invariant(
34
      typeof useContext === "function",
35
      "You must use React >= 16.8 in order to use useParams()"
36
    );
37
  }
38
39
  const match = useContext(Context).match;
40
  return match ? match.params : {};
41
}
42
43
export function useRouteMatch(path) {
44
  if (__DEV__) {
45
    invariant(
46
      typeof useContext === "function",
47
      "You must use React >= 16.8 in order to use useRouteMatch()"
48
    );
49
  }
50
51
  return path
52
    ? matchPath(useLocation().pathname, path)
53
    : useContext(Context).match;
54
}