summaryrefslogtreecommitdiff
path: root/frontend/src/components/QuickAccessVisibleState.tsx
blob: ef977442a271a34d3454b35ef4006cf96c8a0ef6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { FC, createContext, useContext, useState } from 'react';

const QuickAccessVisibleState = createContext<boolean>(true);

export const useQuickAccessVisible = () => useContext(QuickAccessVisibleState);

export const QuickAccessVisibleStateProvider: FC<{ initial: boolean; tab: any }> = ({ children, initial, tab }) => {
  const [visible, setVisible] = useState<boolean>(initial);
  const [prev, setPrev] = useState<boolean>(initial);
  // HACK but i can't think of a better way to do this
  tab.qAMVisibilitySetter = setVisible;
  if (initial != prev) {
    setPrev(initial);
    setVisible(initial);
  }
  return <QuickAccessVisibleState.Provider value={visible}>{children}</QuickAccessVisibleState.Provider>;
};