UNPKG

@equinor/mad-core

Version:

Core library for the Mobile App Delivery team

59 lines (56 loc) 1.76 kB
import { getMadCommonBaseUrl } from "./chunk-LNJQIWAH.js"; import { getConfig } from "./chunk-WWNTKXBS.js"; // src/components/service-message/hooks/useFetchServiceMessage.ts import { useEffect, useRef, useState } from "react"; var useFetchServiceMessage = () => { const [serviceMessage, setServiceMessage] = useState(); const [isDismissed, setIsDismissed] = useState(false); const [expansionEnabled, setExpansionEnabled] = useState(false); const [isExpanded, setIsExpanded] = useState(false); const [isError, setIsError] = useState(false); const lastInterval = useRef(void 0); useEffect(() => { function fetchServiceMessage() { const { currentEnvironment, servicePortalName } = getConfig(); fetch(`${getMadCommonBaseUrl(currentEnvironment)}/ServiceMessage/${servicePortalName}`).then( (res) => res.json().then((data) => { if (!data.message) return; if (!serviceMessage || data.alertName !== serviceMessage.alertName) { setServiceMessage(data); setIsDismissed(false); setExpansionEnabled(false); setIsExpanded(false); setIsError(false); } }) ).catch(() => { setIsError(true); }); } if (!lastInterval.current) fetchServiceMessage(); if (lastInterval.current) clearInterval(lastInterval.current); lastInterval.current = setInterval(() => { fetchServiceMessage(); }, 6e4); return () => { clearInterval(lastInterval.current); }; }, [serviceMessage]); return { serviceMessage, isDismissed, setIsDismissed, expansionEnabled, setExpansionEnabled, isExpanded, setIsExpanded, isError }; }; export { useFetchServiceMessage };