UNPKG

@equinor/mad-core

Version:

Core library for the Mobile App Delivery team

119 lines (116 loc) 3.9 kB
import { ChangeLog } from "./chunk-XLQYZR5C.js"; import { getShortDate } from "./chunk-OCWASWDK.js"; import { useNavigateFromWhatsNewScreen } from "./chunk-X33ICKCC.js"; import { useScreenTitleFromDictionary } from "./chunk-27KFGUGY.js"; import { whats_new_exports } from "./chunk-4DXH3SPN.js"; import { fetchReleaseNotes } from "./chunk-5FMD2ENO.js"; import { useReleaseNotesVersion } from "./chunk-5BVQKJQB.js"; import { useDemoMode } from "./chunk-UZ6YMQV2.js"; import { useAppVersion, useEnvironment, useServicePortalName } from "./chunk-WWNTKXBS.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"; import { useIsFocused } from "@react-navigation/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 isFocused = useIsFocused(); 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 (isFocused && (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 }, 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 };