@equinor/mad-core
Version:
Core library for the Mobile App Delivery team
42 lines (39 loc) • 1.42 kB
JavaScript
import {
whats_new_exports
} from "./chunk-4DXH3SPN.js";
import {
fetchAllReleaseNotes
} from "./chunk-5FMD2ENO.js";
import {
useDemoMode
} from "./chunk-UZ6YMQV2.js";
import {
useEnvironment,
useServicePortalName
} from "./chunk-WWNTKXBS.js";
// src/hooks/UseReleaseNotes.tsx
import { useEffect, useMemo, useState } from "react";
var useReleaseNotes = () => {
const demoMode = useDemoMode();
const environment = useEnvironment();
const servicePortalName = useServicePortalName();
const [releaseNotes, setReleaseNotes] = useState(null);
const [error, setError] = useState("");
const [isFetching, setIsFetching] = useState(true);
const sortedReleaseNotes = useMemo(() => releaseNotes == null ? void 0 : releaseNotes.sort(sortReleaseNotes), [releaseNotes]);
useEffect(() => {
if (demoMode.isEnabled) {
setReleaseNotes([whats_new_exports]);
setIsFetching(false);
} else {
fetchAllReleaseNotes(environment, servicePortalName).then(setReleaseNotes).catch((error2) => setError(error2.message)).finally(() => setIsFetching(false));
}
}, [demoMode.isEnabled, environment, servicePortalName]);
return { releaseNotes: sortedReleaseNotes, isFetching, error };
};
var sortReleaseNotes = (releaseNoteA, releaseNoteB) => {
return releaseNoteA.version < releaseNoteB.version ? releaseNoteB.version < releaseNoteA.version ? -1 : 1 : 0;
};
export {
useReleaseNotes
};