All files / src/utils hooks.ts

0% Statements 0/11
100% Branches 0/0
0% Functions 0/6
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                                                                   
import React, { useEffect, useRef, useState } from "react";
import { useLocation } from "react-router";
import qs from "qs";
 
export function usePrevious<T>(value: T) {
  const ref = useRef<T>();
  useEffect(() => {
    ref.current = value;
  });
  return ref.current;
}
 
export function useQueryParams<QueryParamsType>(): QueryParamsType {
  return (qs.parse(useLocation().search, {
    ignoreQueryPrefix: true
  }) as unknown) as QueryParamsType;
}
 
export function useAnchor(): [
  null | HTMLElement,
  (event: React.MouseEvent<HTMLElement>) => void,
  () => void
] {
  const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
  const handleClick = (event: React.MouseEvent<HTMLElement>) => {
    setAnchorEl(event.currentTarget);
  };
  const handleClose = () => {
    setAnchorEl(null);
  };
 
  return [anchorEl, handleClick, handleClose];
}