📦 EqualifyEverything / equalify-reflow

📄 useFeedbackConfig.ts · 28 lines
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
28import { useEffect, useState } from 'react';
import { apiFetch } from '@/auth/apiFetch';

interface FeedbackConfig {
  enabled: boolean;
}

export function useFeedbackConfig() {
  const [enabled, setEnabled] = useState(false);

  useEffect(() => {
    let cancelled = false;
    apiFetch('/api/v1/feedback/config')
      .then((r) => (r.ok ? r.json() : { enabled: false }))
      .then((cfg: FeedbackConfig) => {
        if (!cancelled) setEnabled(!!cfg.enabled);
      })
      .catch(() => {
        if (!cancelled) setEnabled(false);
      });
    return () => {
      cancelled = true;
    };
  }, []);

  return enabled;
}