UNPKG

@equinor/mad-core

Version:

Core library for the Mobile App Delivery team

118 lines (115 loc) 3.83 kB
import { ChangeLog } from "./chunk-XLQYZR5C.js"; import { getShortDate } from "./chunk-OCWASWDK.js"; import { useReleaseNotesVersion } from "./chunk-5BVQKJQB.js"; import { useNavigateFromWhatsNewScreen } from "./chunk-EOM477VC.js"; import { useScreenTitleFromDictionary } from "./chunk-U5IJVQDO.js"; import { whats_new_exports } from "./chunk-4DXH3SPN.js"; import { fetchReleaseNotes } from "./chunk-7FO6SNUK.js"; import { useDemoMode } from "./chunk-UZ6YMQV2.js"; import { useAppVersion, useEnvironment, useServicePortalName } from "./chunk-GEEFQMRN.js"; import { __spreadProps, __spreadValues } from "./chunk-CWMXXUWU.js"; // src/components/screens/release-notes/WhatsNewScreen.tsx import React, { useEffect, useState } from "react"; import { Button, Cell, CircularProgress, EDSStyleSheet, Typography, useStyles } from "@equinor/mad-components"; import { ScrollView, View } from "react-native"; var WhatsNewScreen = () => { useScreenTitleFromDictionary((dic) => dic.releaseNotes.whatsNew); const styles = useStyles(whatsNewStyles); const environment = useEnvironment(); const releaseNotesVersion = useReleaseNotesVersion(); const servicePortalName = useServicePortalName(); const navigate = useNavigateFromWhatsNewScreen(); const demoMode = useDemoMode(); const appVersion = useAppVersion(); const [release, setRelease] = useState(null); const [error, setError] = useState(""); const [isFetching, setIsFetching] = useState(true); const enableIsFetching = () => setIsFetching(true); const disableIsFetching = () => setIsFetching(false); useEffect(() => { enableIsFetching(); if (demoMode.isEnabled) { setRelease(whats_new_exports); disableIsFetching(); } else { fetchReleaseNotes(environment, servicePortalName, appVersion).then(setRelease).catch(setError).finally(disableIsFetching); } }, [demoMode.isEnabled, environment, servicePortalName, appVersion]); if (error || !isFetching && !release) { navigate(); } if (!release) { return /* @__PURE__ */ React.createElement(View, { style: styles.spinnerContainer }, /* @__PURE__ */ React.createElement(CircularProgress, null)); } return /* @__PURE__ */ React.createElement(View, { style: styles.container }, /* @__PURE__ */ React.createElement(ScrollView, null, /* @__PURE__ */ React.createElement(Cell, { style: styles.scrollContainer }, /* @__PURE__ */ React.createElement(Typography, { style: styles.versionHeader }, release.version), /* @__PURE__ */ React.createElement(Typography, { style: styles.subtitleHeader }, getShortDate(new Date(release.releaseDate))), /* @__PURE__ */ React.createElement(ChangeLog, { release }))), /* @__PURE__ */ React.createElement(View, { style: styles.footer }, /* @__PURE__ */ React.createElement( Button, { title: "OK", onPress: () => { if (!demoMode.isEnabled) releaseNotesVersion.setLastDisplayedReleaseNotesVersion(appVersion); navigate(); }, style: { width: 81 } } ))); }; var whatsNewStyles = EDSStyleSheet.create((theme) => ({ spinnerContainer: { height: "100%", justifyContent: "center", alignItems: "center" }, container: { flex: 1, paddingTop: theme.geometry.dimension.cell.minHeight, justifyContent: "space-between" }, scrollContainer: { justifyContent: "center", borderTopWidth: 0, borderBottomWidth: 0 }, versionHeader: theme.typography.basic.h1, subtitleHeader: __spreadProps(__spreadValues({}, theme.typography.basic.h4), { marginVertical: theme.spacing.container.paddingVertical }), footer: { alignItems: "flex-end", marginHorizontal: theme.spacing.container.paddingHorizontal, marginVertical: theme.spacing.container.paddingVertical } })); export { WhatsNewScreen };