@flightctl/ui-components 0.9.2 → 0.10.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/components/DetailsPage/DetailsPage.d.ts +2 -1
- package/dist/src/components/DetailsPage/DetailsPage.d.ts.map +1 -1
- package/dist/src/components/DetailsPage/DetailsPage.js +2 -1
- package/dist/src/components/DetailsPage/DetailsPage.js.map +1 -1
- package/dist/src/components/DetailsPage/DetailsPageActions.d.ts +10 -0
- package/dist/src/components/DetailsPage/DetailsPageActions.d.ts.map +1 -1
- package/dist/src/components/DetailsPage/DetailsPageActions.js +23 -1
- package/dist/src/components/DetailsPage/DetailsPageActions.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js +29 -3
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js +0 -4
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js +8 -2
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/DecommissionedDeviceTableRow.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/DecommissionedDeviceTableRow.js +1 -3
- package/dist/src/components/Device/DevicesPage/DecommissionedDeviceTableRow.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js +0 -3
- package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js +3 -1
- package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/DevicesPage.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/DevicesPage.js +1 -1
- package/dist/src/components/Device/DevicesPage/DevicesPage.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDeviceTableRow.d.ts +3 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDeviceTableRow.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDeviceTableRow.js +12 -4
- package/dist/src/components/Device/DevicesPage/EnrolledDeviceTableRow.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.d.ts +2 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js +7 -6
- package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js.map +1 -1
- package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.js +1 -1
- package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.js.map +1 -1
- package/dist/src/components/Events/useEvents.d.ts.map +1 -1
- package/dist/src/components/Events/useEvents.js +12 -0
- package/dist/src/components/Events/useEvents.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js.map +1 -1
- package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.d.ts.map +1 -1
- package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.js +4 -3
- package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.js.map +1 -1
- package/dist/src/components/Fleet/FleetDetails/FleetDevicesCharts.d.ts.map +1 -1
- package/dist/src/components/Fleet/FleetDetails/FleetDevicesCharts.js +7 -1
- package/dist/src/components/Fleet/FleetDetails/FleetDevicesCharts.js.map +1 -1
- package/dist/src/components/Fleet/FleetDetails/FleetRestoreBanner.d.ts +8 -0
- package/dist/src/components/Fleet/FleetDetails/FleetRestoreBanner.d.ts.map +1 -0
- package/dist/src/components/Fleet/FleetDetails/FleetRestoreBanner.js +36 -0
- package/dist/src/components/Fleet/FleetDetails/FleetRestoreBanner.js.map +1 -0
- package/dist/src/components/Fleet/FleetsPage.d.ts.map +1 -1
- package/dist/src/components/Fleet/FleetsPage.js +2 -0
- package/dist/src/components/Fleet/FleetsPage.js.map +1 -1
- package/dist/src/components/ListPage/ListPageActions.d.ts +3 -2
- package/dist/src/components/ListPage/ListPageActions.d.ts.map +1 -1
- package/dist/src/components/ListPage/ListPageActions.js +27 -1
- package/dist/src/components/ListPage/ListPageActions.js.map +1 -1
- package/dist/src/components/Masthead/CommandLineToolsPage.d.ts.map +1 -1
- package/dist/src/components/Masthead/CommandLineToolsPage.js +18 -14
- package/dist/src/components/Masthead/CommandLineToolsPage.js.map +1 -1
- package/dist/src/components/OverviewPage/Cards/Alerts/AlertsCard.d.ts.map +1 -1
- package/dist/src/components/OverviewPage/Cards/Alerts/AlertsCard.js +15 -5
- package/dist/src/components/OverviewPage/Cards/Alerts/AlertsCard.js.map +1 -1
- package/dist/src/components/OverviewPage/Cards/Status/DeviceStatusChart.d.ts.map +1 -1
- package/dist/src/components/OverviewPage/Cards/Status/DeviceStatusChart.js +7 -1
- package/dist/src/components/OverviewPage/Cards/Status/DeviceStatusChart.js.map +1 -1
- package/dist/src/components/OverviewPage/Overview.d.ts.map +1 -1
- package/dist/src/components/OverviewPage/Overview.js +4 -2
- package/dist/src/components/OverviewPage/Overview.js.map +1 -1
- package/dist/src/components/Status/StatusDisplay.d.ts +3 -1
- package/dist/src/components/Status/StatusDisplay.d.ts.map +1 -1
- package/dist/src/components/Status/StatusDisplay.js +8 -8
- package/dist/src/components/Status/StatusDisplay.js.map +1 -1
- package/dist/src/components/SystemRestore/PendingSyncDevicesAlert.d.ts +7 -0
- package/dist/src/components/SystemRestore/PendingSyncDevicesAlert.d.ts.map +1 -0
- package/dist/src/components/SystemRestore/PendingSyncDevicesAlert.js +22 -0
- package/dist/src/components/SystemRestore/PendingSyncDevicesAlert.js.map +1 -0
- package/dist/src/components/SystemRestore/SuspendedDevicesAlert.d.ts +16 -0
- package/dist/src/components/SystemRestore/SuspendedDevicesAlert.d.ts.map +1 -0
- package/dist/src/components/SystemRestore/SuspendedDevicesAlert.js +75 -0
- package/dist/src/components/SystemRestore/SuspendedDevicesAlert.js.map +1 -0
- package/dist/src/components/SystemRestore/SystemRestoreBanners.css +6 -0
- package/dist/src/components/SystemRestore/SystemRestoreBanners.d.ts +28 -0
- package/dist/src/components/SystemRestore/SystemRestoreBanners.d.ts.map +1 -0
- package/dist/src/components/SystemRestore/SystemRestoreBanners.js +38 -0
- package/dist/src/components/SystemRestore/SystemRestoreBanners.js.map +1 -0
- package/dist/src/components/charts/utils.js +1 -1
- package/dist/src/components/charts/utils.js.map +1 -1
- package/dist/src/components/common/OrganizationGuard.d.ts +13 -0
- package/dist/src/components/common/OrganizationGuard.d.ts.map +1 -0
- package/dist/src/components/common/OrganizationGuard.js +106 -0
- package/dist/src/components/common/OrganizationGuard.js.map +1 -0
- package/dist/src/components/common/OrganizationSelector.d.ts +8 -0
- package/dist/src/components/common/OrganizationSelector.d.ts.map +1 -0
- package/dist/src/components/common/OrganizationSelector.js +92 -0
- package/dist/src/components/common/OrganizationSelector.js.map +1 -0
- package/dist/src/components/common/PageNavigation.d.ts +4 -0
- package/dist/src/components/common/PageNavigation.d.ts.map +1 -0
- package/dist/src/components/common/PageNavigation.js +46 -0
- package/dist/src/components/common/PageNavigation.js.map +1 -0
- package/dist/src/components/form/FilterSelect.css +3 -4
- package/dist/src/components/form/validations.d.ts +9 -0
- package/dist/src/components/form/validations.d.ts.map +1 -1
- package/dist/src/components/form/validations.js +12 -1
- package/dist/src/components/form/validations.js.map +1 -1
- package/dist/src/components/modals/ResumeDevicesModal/ResumeDevicesModal.d.ts +15 -0
- package/dist/src/components/modals/ResumeDevicesModal/ResumeDevicesModal.d.ts.map +1 -0
- package/dist/src/components/modals/ResumeDevicesModal/ResumeDevicesModal.js +56 -0
- package/dist/src/components/modals/ResumeDevicesModal/ResumeDevicesModal.js.map +1 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.d.ts +7 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.d.ts.map +1 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.js +265 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.js.map +1 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.d.ts +9 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.d.ts.map +1 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.js +27 -0
- package/dist/src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.js.map +1 -0
- package/dist/src/hooks/useAccessReview.d.ts.map +1 -1
- package/dist/src/hooks/useAccessReview.js +17 -4
- package/dist/src/hooks/useAccessReview.js.map +1 -1
- package/dist/src/hooks/useAlertsEnabled.d.ts +2 -0
- package/dist/src/hooks/useAlertsEnabled.d.ts.map +1 -0
- package/dist/src/hooks/useAlertsEnabled.js +50 -0
- package/dist/src/hooks/useAlertsEnabled.js.map +1 -0
- package/dist/src/hooks/useAppContext.d.ts +3 -6
- package/dist/src/hooks/useAppContext.d.ts.map +1 -1
- package/dist/src/hooks/useAppContext.js +1 -0
- package/dist/src/hooks/useAppContext.js.map +1 -1
- package/dist/src/hooks/useFetch.d.ts +6 -7
- package/dist/src/hooks/useFetch.d.ts.map +1 -1
- package/dist/src/hooks/useFetch.js +2 -3
- package/dist/src/hooks/useFetch.js.map +1 -1
- package/dist/src/hooks/useFetchPeriodically.d.ts.map +1 -1
- package/dist/src/hooks/useFetchPeriodically.js +4 -9
- package/dist/src/hooks/useFetchPeriodically.js.map +1 -1
- package/dist/src/hooks/useSystemRestoreContext.d.ts +16 -0
- package/dist/src/hooks/useSystemRestoreContext.d.ts.map +1 -0
- package/dist/src/hooks/useSystemRestoreContext.js +45 -0
- package/dist/src/hooks/useSystemRestoreContext.js.map +1 -0
- package/dist/src/types/extraTypes.d.ts +17 -18
- package/dist/src/types/extraTypes.d.ts.map +1 -1
- package/dist/src/types/extraTypes.js +1 -6
- package/dist/src/types/extraTypes.js.map +1 -1
- package/dist/src/types/rbac.d.ts +1 -0
- package/dist/src/types/rbac.d.ts.map +1 -1
- package/dist/src/types/rbac.js +1 -0
- package/dist/src/types/rbac.js.map +1 -1
- package/dist/src/utils/api.d.ts +2 -15
- package/dist/src/utils/api.d.ts.map +1 -1
- package/dist/src/utils/api.js +1 -40
- package/dist/src/utils/api.js.map +1 -1
- package/dist/src/utils/devices.d.ts +2 -0
- package/dist/src/utils/devices.d.ts.map +1 -1
- package/dist/src/utils/devices.js +11 -1
- package/dist/src/utils/devices.js.map +1 -1
- package/dist/src/utils/organizationStorage.d.ts +4 -0
- package/dist/src/utils/organizationStorage.d.ts.map +1 -0
- package/dist/src/utils/organizationStorage.js +18 -0
- package/dist/src/utils/organizationStorage.js.map +1 -0
- package/dist/src/utils/query.d.ts +2 -0
- package/dist/src/utils/query.d.ts.map +1 -1
- package/dist/src/utils/query.js +16 -0
- package/dist/src/utils/query.js.map +1 -1
- package/dist/src/utils/status/common.d.ts +1 -0
- package/dist/src/utils/status/common.d.ts.map +1 -1
- package/dist/src/utils/status/common.js.map +1 -1
- package/dist/src/utils/status/devices.d.ts +5 -0
- package/dist/src/utils/status/devices.d.ts.map +1 -1
- package/dist/src/utils/status/devices.js +44 -5
- package/dist/src/utils/status/devices.js.map +1 -1
- package/dist/src/utils/status/fleet.js +1 -1
- package/dist/src/utils/status/fleet.js.map +1 -1
- package/dist/src/utils/status/repository.js +1 -1
- package/dist/src/utils/status/repository.js.map +1 -1
- package/package.json +1 -1
- package/src/components/DetailsPage/DetailsPage.tsx +3 -0
- package/src/components/DetailsPage/DetailsPageActions.tsx +45 -0
- package/src/components/Device/DeviceDetails/DeviceDetailsPage.tsx +57 -5
- package/src/components/Device/DeviceDetails/DeviceDetailsTab.tsx +0 -5
- package/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.tsx +11 -3
- package/src/components/Device/DevicesPage/DecommissionedDeviceTableRow.tsx +0 -2
- package/src/components/Device/DevicesPage/DecommissionedDevicesTable.tsx +0 -3
- package/src/components/Device/DevicesPage/DeviceToolbarFilters.tsx +5 -1
- package/src/components/Device/DevicesPage/DevicesPage.tsx +1 -0
- package/src/components/Device/DevicesPage/EnrolledDeviceTableRow.tsx +15 -3
- package/src/components/Device/DevicesPage/EnrolledDevicesTable.tsx +11 -5
- package/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.tsx +1 -1
- package/src/components/Events/useEvents.ts +12 -0
- package/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.tsx +1 -1
- package/src/components/Fleet/FleetDetails/FleetDetailsPage.tsx +4 -5
- package/src/components/Fleet/FleetDetails/FleetDevicesCharts.tsx +9 -3
- package/src/components/Fleet/FleetDetails/FleetRestoreBanner.tsx +46 -0
- package/src/components/Fleet/FleetsPage.tsx +2 -0
- package/src/components/ListPage/ListPageActions.tsx +46 -3
- package/src/components/Masthead/CommandLineToolsPage.tsx +17 -14
- package/src/components/OverviewPage/Cards/Alerts/AlertsCard.tsx +19 -5
- package/src/components/OverviewPage/Cards/Status/DeviceStatusChart.tsx +8 -2
- package/src/components/OverviewPage/Overview.tsx +5 -2
- package/src/components/Status/StatusDisplay.tsx +32 -23
- package/src/components/SystemRestore/PendingSyncDevicesAlert.tsx +36 -0
- package/src/components/SystemRestore/SuspendedDevicesAlert.tsx +144 -0
- package/src/components/SystemRestore/SystemRestoreBanners.css +6 -0
- package/src/components/SystemRestore/SystemRestoreBanners.tsx +82 -0
- package/src/components/charts/utils.ts +1 -1
- package/src/components/common/OrganizationGuard.tsx +124 -0
- package/src/components/common/OrganizationSelector.tsx +192 -0
- package/src/components/common/PageNavigation.tsx +103 -0
- package/src/components/form/FilterSelect.css +3 -4
- package/src/components/form/validations.ts +14 -0
- package/src/components/modals/ResumeDevicesModal/ResumeDevicesModal.tsx +114 -0
- package/src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.tsx +465 -0
- package/src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.tsx +55 -0
- package/src/hooks/useAccessReview.ts +20 -4
- package/src/hooks/useAlertsEnabled.ts +50 -0
- package/src/hooks/useAppContext.tsx +9 -7
- package/src/hooks/useFetch.ts +1 -3
- package/src/hooks/useFetchPeriodically.ts +4 -11
- package/src/hooks/useSystemRestoreContext.tsx +54 -0
- package/src/types/extraTypes.ts +17 -23
- package/src/types/rbac.ts +1 -0
- package/src/utils/api.ts +2 -51
- package/src/utils/devices.ts +11 -1
- package/src/utils/organizationStorage.ts +13 -0
- package/src/utils/query.ts +22 -0
- package/src/utils/status/common.ts +1 -0
- package/src/utils/status/devices.ts +49 -2
- package/src/utils/status/fleet.ts +1 -1
- package/src/utils/status/repository.ts +1 -1
- package/dist/src/hooks/useAlerts.d.ts +0 -26
- package/dist/src/hooks/useAlerts.d.ts.map +0 -1
- package/dist/src/hooks/useAlerts.js +0 -114
- package/dist/src/hooks/useAlerts.js.map +0 -1
- package/dist/src/utils/metrics.d.ts +0 -9
- package/dist/src/utils/metrics.d.ts.map +0 -1
- package/dist/src/utils/metrics.js +0 -48
- package/dist/src/utils/metrics.js.map +0 -1
- package/src/hooks/useAlerts.ts +0 -147
- package/src/utils/metrics.ts +0 -49
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const React = tslib_1.__importStar(require("react"));
|
|
5
|
+
const react_core_1 = require("@patternfly/react-core");
|
|
6
|
+
const react_i18next_1 = require("react-i18next");
|
|
7
|
+
const formik_1 = require("formik");
|
|
8
|
+
const useTranslation_1 = require("../../../../hooks/useTranslation");
|
|
9
|
+
const useFetch_1 = require("../../../../hooks/useFetch");
|
|
10
|
+
const LabelsField_1 = tslib_1.__importDefault(require("../../../form/LabelsField"));
|
|
11
|
+
const FlightCtlForm_1 = tslib_1.__importDefault(require("../../../form/FlightCtlForm"));
|
|
12
|
+
const validations_1 = require("../../../form/validations");
|
|
13
|
+
const error_1 = require("../../../../utils/error");
|
|
14
|
+
const query_1 = require("../../../../utils/query");
|
|
15
|
+
const api_1 = require("../../../../utils/api");
|
|
16
|
+
const labels_1 = require("../../../../utils/labels");
|
|
17
|
+
const useFleets_1 = require("../../../Fleet/useFleets");
|
|
18
|
+
const ResumeAllDevicesConfirmationDialog_1 = tslib_1.__importDefault(require("./ResumeAllDevicesConfirmationDialog"));
|
|
19
|
+
// Adds an artificial delay to make sure that the user notices the count is refreshing.
|
|
20
|
+
// This is specially needed when users switch between modes, and the selection for the new mode is already valid.
|
|
21
|
+
const showSpinnerBriefly = () => new Promise((resolve) => setTimeout(resolve, 450));
|
|
22
|
+
var SelectionMode;
|
|
23
|
+
(function (SelectionMode) {
|
|
24
|
+
SelectionMode["FLEET"] = "fleet";
|
|
25
|
+
SelectionMode["LABELS"] = "labels";
|
|
26
|
+
SelectionMode["ALL"] = "all";
|
|
27
|
+
})(SelectionMode || (SelectionMode = {}));
|
|
28
|
+
const getSelectedFleetLabels = (fleets, fleetId) => {
|
|
29
|
+
var _a;
|
|
30
|
+
const selectedFleet = fleets.find((fleet) => fleet.metadata.name === fleetId);
|
|
31
|
+
if (!selectedFleet) {
|
|
32
|
+
throw new Error('Selected fleet not found');
|
|
33
|
+
}
|
|
34
|
+
return (0, labels_1.fromAPILabel)(((_a = selectedFleet.spec.selector) === null || _a === void 0 ? void 0 : _a.matchLabels) || {});
|
|
35
|
+
};
|
|
36
|
+
const MassResumeDevicesModalContent = ({ onClose }) => {
|
|
37
|
+
const { t } = (0, useTranslation_1.useTranslation)();
|
|
38
|
+
const { get, post } = (0, useFetch_1.useFetch)();
|
|
39
|
+
const { values, setFieldValue, isValid, dirty } = (0, formik_1.useFormikContext)();
|
|
40
|
+
const { fleets, isLoading: fleetsLoading } = (0, useFleets_1.useFleets)({});
|
|
41
|
+
const [isFleetListOpen, setIsFleetSelectOpen] = React.useState(false);
|
|
42
|
+
const [isSubmitting, setIsSubmitting] = React.useState(false);
|
|
43
|
+
const [submitError, setSubmitError] = React.useState(undefined);
|
|
44
|
+
const [showResumeAllConfirmation, setShowResumeAllConfirmation] = React.useState(false);
|
|
45
|
+
// Resume result state
|
|
46
|
+
const [resumedCount, setResumedCount] = React.useState(undefined);
|
|
47
|
+
// Device count state
|
|
48
|
+
const [deviceCountNum, setDeviceCountNum] = React.useState(0);
|
|
49
|
+
const [isCountLoading, setIsCountLoading] = React.useState(false);
|
|
50
|
+
const [countError, setCountError] = React.useState(null);
|
|
51
|
+
const hasResumedAtLeastOne = resumedCount !== undefined && resumedCount > 0;
|
|
52
|
+
const hasResumedAllExpected = deviceCountNum > 0 && resumedCount === deviceCountNum;
|
|
53
|
+
const isSubmitEnabled = (values.mode === SelectionMode.ALL || deviceCountNum > 0) &&
|
|
54
|
+
!isSubmitting &&
|
|
55
|
+
!isCountLoading &&
|
|
56
|
+
isValid &&
|
|
57
|
+
resumedCount === undefined;
|
|
58
|
+
const deviceCount = deviceCountNum.toString();
|
|
59
|
+
const loadMatchingDevicesCount = React.useCallback((criteria) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
+
setIsCountLoading(true);
|
|
61
|
+
setCountError(null);
|
|
62
|
+
setDeviceCountNum(0);
|
|
63
|
+
try {
|
|
64
|
+
let queryEndpoint;
|
|
65
|
+
if (criteria.all) {
|
|
66
|
+
queryEndpoint = query_1.commonQueries.getAllSuspendedDevicesCount();
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const fleetLabels = criteria.fleetId
|
|
70
|
+
? getSelectedFleetLabels(fleets, criteria.fleetId)
|
|
71
|
+
: criteria.labels || [];
|
|
72
|
+
if (fleetLabels.length === 0) {
|
|
73
|
+
throw new Error('Invalid criteria: must provide either fleetId or labels');
|
|
74
|
+
}
|
|
75
|
+
queryEndpoint = query_1.commonQueries.getSuspendedDeviceCountByLabels(fleetLabels);
|
|
76
|
+
}
|
|
77
|
+
const deviceResult = yield get(queryEndpoint);
|
|
78
|
+
yield showSpinnerBriefly();
|
|
79
|
+
setDeviceCountNum((0, api_1.getApiListCount)(deviceResult) || 0);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
yield showSpinnerBriefly();
|
|
83
|
+
setCountError(t('Failed to obtain the number of matching devices'));
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
setIsCountLoading(false);
|
|
87
|
+
}
|
|
88
|
+
}), [get, t, fleets]);
|
|
89
|
+
const performResume = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
setIsSubmitting(true);
|
|
91
|
+
setSubmitError(undefined);
|
|
92
|
+
try {
|
|
93
|
+
let labels;
|
|
94
|
+
if (values.mode === SelectionMode.ALL) {
|
|
95
|
+
labels = [];
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
if (values.mode === SelectionMode.FLEET) {
|
|
99
|
+
labels = getSelectedFleetLabels(fleets, values.fleetId);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
labels = values.labels;
|
|
103
|
+
}
|
|
104
|
+
// This shouldn't happen due to validations, but since an empty label selector would target all existing devices,
|
|
105
|
+
// wake sure the UI does't accidentally submit a request with an empty selector
|
|
106
|
+
const emptySelection = labels.every((label) => label.key === '');
|
|
107
|
+
if (labels.length === 0 || emptySelection) {
|
|
108
|
+
throw new Error('The current selection would target all devices.');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const resumeRequest = {
|
|
112
|
+
labelSelector: labels.map((label) => (0, labels_1.labelToExactApiMatchString)(label)).join(','),
|
|
113
|
+
};
|
|
114
|
+
const resumeResponse = yield post('deviceactions/resume', resumeRequest);
|
|
115
|
+
setResumedCount(resumeResponse.resumedDevices || 0);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
setSubmitError((0, error_1.getErrorMessage)(error));
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
setIsSubmitting(false);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
const handleResume = () => {
|
|
125
|
+
if (values.mode === SelectionMode.ALL) {
|
|
126
|
+
setShowResumeAllConfirmation(true);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
performResume();
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
const handleSelectionModeChanged = (mode) => {
|
|
133
|
+
setFieldValue('mode', mode);
|
|
134
|
+
if (mode === SelectionMode.ALL) {
|
|
135
|
+
// Load count for all suspended devices
|
|
136
|
+
loadMatchingDevicesCount({ all: true });
|
|
137
|
+
}
|
|
138
|
+
else if (mode === SelectionMode.FLEET && values.fleetId) {
|
|
139
|
+
// If switching to a mode that already had a valid selection, we refresh the count
|
|
140
|
+
loadMatchingDevicesCount({ fleetId: values.fleetId });
|
|
141
|
+
}
|
|
142
|
+
else if (mode === SelectionMode.LABELS && values.labels.length > 0) {
|
|
143
|
+
loadMatchingDevicesCount({ labels: values.labels });
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Clear the count if there isn't a valid selection
|
|
147
|
+
setDeviceCountNum(0);
|
|
148
|
+
setCountError(null);
|
|
149
|
+
setIsCountLoading(false);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
const handleFleetSelected = (fleetId) => {
|
|
153
|
+
setFieldValue('fleetId', fleetId);
|
|
154
|
+
setIsFleetSelectOpen(false);
|
|
155
|
+
if (fleetId) {
|
|
156
|
+
loadMatchingDevicesCount({ fleetId });
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
setDeviceCountNum(0);
|
|
160
|
+
setCountError(null);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const handleLabelsChanged = (newLabels, hasErrors) => {
|
|
164
|
+
if (hasErrors || newLabels.length === 0) {
|
|
165
|
+
setDeviceCountNum(0);
|
|
166
|
+
setCountError(null);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
else if (newLabels.length > 0) {
|
|
170
|
+
loadMatchingDevicesCount({ labels: newLabels });
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
return (React.createElement(react_core_1.Modal, { variant: react_core_1.ModalVariant.medium, title: t('Resume devices'), isOpen: true, onClose: () => onClose(hasResumedAtLeastOne), actions: [
|
|
174
|
+
React.createElement(react_core_1.Button, { key: "resume", variant: "primary", onClick: handleResume, isLoading: isSubmitting, isDisabled: !isSubmitEnabled }, t('Resume selection')),
|
|
175
|
+
React.createElement(react_core_1.Button, { key: "cancel", variant: "link", onClick: () => onClose(hasResumedAtLeastOne), isDisabled: isSubmitting }, hasResumedAtLeastOne ? t('Close') : t('Cancel')),
|
|
176
|
+
] },
|
|
177
|
+
React.createElement(react_core_1.Stack, { hasGutter: true },
|
|
178
|
+
React.createElement(FlightCtlForm_1.default, null,
|
|
179
|
+
React.createElement(react_core_1.StackItem, null,
|
|
180
|
+
React.createElement(react_core_1.TextContent, null,
|
|
181
|
+
React.createElement(react_core_1.Text, null, t("Following a system restore, devices have been identified with configurations newer than the server's records. To prevent data loss, they have been suspended from receiving updates.")))),
|
|
182
|
+
React.createElement(react_core_1.StackItem, null,
|
|
183
|
+
React.createElement(react_core_1.TextContent, null,
|
|
184
|
+
React.createElement(react_core_1.Text, null,
|
|
185
|
+
t('Choose the criteria to select the devices to resume'),
|
|
186
|
+
":"))),
|
|
187
|
+
React.createElement(react_core_1.StackItem, null,
|
|
188
|
+
React.createElement(react_core_1.FormGroup, { isRequired: true, fieldId: "selection-mode" },
|
|
189
|
+
React.createElement(react_core_1.Radio, { label: t('Fleet'), id: "selectionModeFleet", name: "selectionMode", isChecked: values.mode === SelectionMode.FLEET, onChange: () => {
|
|
190
|
+
handleSelectionModeChanged(SelectionMode.FLEET);
|
|
191
|
+
}, description: t('Resume all suspended devices associated with a given fleet') }),
|
|
192
|
+
React.createElement(react_core_1.Radio, { label: t('Labels'), id: "selectionModeLabels", name: "selectionMode", isChecked: values.mode === SelectionMode.LABELS, onChange: () => {
|
|
193
|
+
handleSelectionModeChanged(SelectionMode.LABELS);
|
|
194
|
+
}, description: t('Resume all suspended devices matching the specified labels') }),
|
|
195
|
+
React.createElement(react_core_1.Radio, { label: t('All suspended devices'), id: "selectionModeAll", name: "selectionMode", isChecked: values.mode === SelectionMode.ALL, onChange: () => {
|
|
196
|
+
handleSelectionModeChanged(SelectionMode.ALL);
|
|
197
|
+
}, description: t('Resume all suspended devices') }))),
|
|
198
|
+
values.mode === SelectionMode.FLEET && (React.createElement(react_core_1.StackItem, null,
|
|
199
|
+
React.createElement(react_core_1.FormGroup, { label: t('Fleet'), isRequired: true, fieldId: "fleetId" },
|
|
200
|
+
React.createElement(react_core_1.Select, { id: "fleetSelection", isOpen: isFleetListOpen, selected: values.fleetId, onSelect: (_, selection) => handleFleetSelected(selection), onOpenChange: (isOpen) => setIsFleetSelectOpen(isOpen), toggle: (toggleRef) => (React.createElement(react_core_1.MenuToggle, { ref: toggleRef, onClick: () => setIsFleetSelectOpen(!isFleetListOpen), isExpanded: isFleetListOpen, isDisabled: fleetsLoading, style: { width: '100%' } }, values.fleetId || t('Select a fleet'))), shouldFocusToggleOnSelect: true },
|
|
201
|
+
React.createElement(react_core_1.SelectList, null, fleets.map((fleet) => {
|
|
202
|
+
var _a, _b;
|
|
203
|
+
const fleetId = fleet.metadata.name || '';
|
|
204
|
+
const deviceSelectorStr = Object.entries(((_b = (_a = fleet.spec) === null || _a === void 0 ? void 0 : _a.selector) === null || _b === void 0 ? void 0 : _b.matchLabels) || {})
|
|
205
|
+
.map(([key, value]) => (value ? `${key}=${value}` : key))
|
|
206
|
+
.join(',');
|
|
207
|
+
let description = '';
|
|
208
|
+
if (deviceSelectorStr) {
|
|
209
|
+
description = `${t('Device selector labels')}: ${deviceSelectorStr}`;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
description = t('This fleet does not select any devices');
|
|
213
|
+
}
|
|
214
|
+
return (React.createElement(react_core_1.SelectOption, { key: fleetId, value: fleetId, description: description, isDisabled: !deviceSelectorStr }, fleetId));
|
|
215
|
+
})))))),
|
|
216
|
+
values.mode === SelectionMode.LABELS && (React.createElement(react_core_1.StackItem, null,
|
|
217
|
+
React.createElement(react_core_1.FormGroup, { label: t('Device labels'), fieldId: "labelsSelection", isRequired: true },
|
|
218
|
+
React.createElement(LabelsField_1.default, { name: "labels", onChangeCallback: handleLabelsChanged }))))),
|
|
219
|
+
isValid && dirty && resumedCount === undefined && (React.createElement(react_core_1.StackItem, null, isCountLoading ? (React.createElement(react_core_1.Alert, { variant: "info", isInline: true, title: t('Refreshing device count') },
|
|
220
|
+
React.createElement(react_core_1.Spinner, { size: "md", className: "pf-v5-u-mr-sm" }),
|
|
221
|
+
t('Checking how many suspended devices match your criteria...'))) : countError ? (React.createElement(react_core_1.Alert, { variant: "warning", isInline: true, title: t('Unable to refresh device count') }, countError)) : deviceCountNum > 0 ? (React.createElement(react_core_1.Alert, { variant: values.mode === SelectionMode.ALL ? 'warning' : 'success', isInline: true, title: t('Devices found') }, values.mode === SelectionMode.FLEET ? (React.createElement(react_i18next_1.Trans, { t: t },
|
|
222
|
+
React.createElement("strong", null, deviceCount),
|
|
223
|
+
" suspended devices are currently associated with fleet",
|
|
224
|
+
' ',
|
|
225
|
+
React.createElement("strong", null, values.fleetId),
|
|
226
|
+
".")) : values.mode === SelectionMode.LABELS ? (React.createElement(react_i18next_1.Trans, { t: t },
|
|
227
|
+
React.createElement("strong", null, deviceCount),
|
|
228
|
+
" suspended devices match the specified labels.")) : (React.createElement(React.Fragment, null,
|
|
229
|
+
React.createElement(react_i18next_1.Trans, { t: t, count: deviceCountNum },
|
|
230
|
+
"You are about to resume all ",
|
|
231
|
+
React.createElement("strong", null, deviceCount),
|
|
232
|
+
" suspended devices."),
|
|
233
|
+
t('This action is irreversible and will allow all affected devices to receive new configuration updates from the server.'))))) : (React.createElement(react_core_1.Alert, { variant: "warning", isInline: true, title: t('No devices found') }, values.mode === SelectionMode.FLEET ? (React.createElement(react_i18next_1.Trans, { t: t },
|
|
234
|
+
"No suspended devices are associated with fleet ",
|
|
235
|
+
React.createElement("strong", null, values.fleetId),
|
|
236
|
+
".")) : values.mode === SelectionMode.ALL ? (t('No suspended devices found.')) : (t('No suspended devices match the specified labels.')))))),
|
|
237
|
+
submitError && (React.createElement(react_core_1.StackItem, null,
|
|
238
|
+
React.createElement(react_core_1.Alert, { isInline: true, variant: "danger", title: t('Resume devices failed') }, submitError))),
|
|
239
|
+
resumedCount !== undefined && hasResumedAllExpected && (React.createElement(react_core_1.StackItem, null,
|
|
240
|
+
React.createElement(react_core_1.Alert, { isInline: true, variant: "success", title: t('Resume successful') }, t('{{ resumedCount }} devices were resumed', { resumedCount })))),
|
|
241
|
+
resumedCount !== undefined && !hasResumedAllExpected && (React.createElement(react_core_1.StackItem, null,
|
|
242
|
+
React.createElement(react_core_1.Alert, { isInline: true, variant: "warning", title: t('Resumed with warnings') }, t('{{ expectedCount }} devices to resume, and {{ resumedCount }} resumed successfully', {
|
|
243
|
+
expectedCount: deviceCountNum,
|
|
244
|
+
resumedCount,
|
|
245
|
+
}))))),
|
|
246
|
+
showResumeAllConfirmation && (React.createElement(ResumeAllDevicesConfirmationDialog_1.default, { deviceCountNum: deviceCountNum, onClose: (doConfirm) => {
|
|
247
|
+
setShowResumeAllConfirmation(false);
|
|
248
|
+
if (doConfirm) {
|
|
249
|
+
performResume();
|
|
250
|
+
}
|
|
251
|
+
} }))));
|
|
252
|
+
};
|
|
253
|
+
const MassResumeDevicesModal = ({ onClose }) => {
|
|
254
|
+
const { t } = (0, useTranslation_1.useTranslation)();
|
|
255
|
+
return (React.createElement(formik_1.Formik, { initialValues: {
|
|
256
|
+
mode: SelectionMode.FLEET,
|
|
257
|
+
fleetId: '',
|
|
258
|
+
labels: [],
|
|
259
|
+
}, validationSchema: (0, validations_1.createMassResumeValidationSchema)(t), onSubmit: () => {
|
|
260
|
+
// This will be handled by the inner component
|
|
261
|
+
} },
|
|
262
|
+
React.createElement(MassResumeDevicesModalContent, { onClose: onClose })));
|
|
263
|
+
};
|
|
264
|
+
exports.default = MassResumeDevicesModal;
|
|
265
|
+
//# sourceMappingURL=MassResumeDevicesModal.js.map
|
package/dist/src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MassResumeDevicesModal.js","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.tsx"],"names":[],"mappings":";;;AAAA,qDAA+B;AAC/B,uDAiBgC;AAChC,iDAAsC;AACtC,mCAAkD;AAIlD,qEAAkE;AAClE,yDAAsD;AACtD,oFAAoD;AACpD,wFAAwD;AACxD,2DAA6E;AAC7E,mDAA0D;AAC1D,mDAAwD;AACxD,+CAAwD;AACxD,qDAAoF;AACpF,wDAAqD;AACrD,sHAAsF;AAEtF,uFAAuF;AACvF,iHAAiH;AACjH,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAYpF,IAAK,aAIJ;AAJD,WAAK,aAAa;IAChB,gCAAe,CAAA;IACf,kCAAiB,CAAA;IACjB,4BAAW,CAAA;AACb,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AAED,MAAM,sBAAsB,GAAG,CAAC,MAAe,EAAE,OAAe,EAAE,EAAE;;IAClE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC9E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAA,qBAAY,EAAC,CAAA,MAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,0CAAE,WAAW,KAAI,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE;IACjF,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAQ,GAAE,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAA,yBAAgB,GAAwB,CAAC;IAE3F,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAA,qBAAS,EAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACpF,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExF,sBAAsB;IACtB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAEtF,qBAAqB;IACrB,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExE,MAAM,oBAAoB,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,CAAC;IAC5E,MAAM,qBAAqB,GAAG,cAAc,GAAG,CAAC,IAAI,YAAY,KAAK,cAAc,CAAC;IACpF,MAAM,eAAe,GACnB,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,IAAI,cAAc,GAAG,CAAC,CAAC;QACzD,CAAC,YAAY;QACb,CAAC,cAAc;QACf,OAAO;QACP,YAAY,KAAK,SAAS,CAAC;IAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAChD,CAAO,QAAwE,EAAE,EAAE;QACjF,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC;YACH,IAAI,aAAqB,CAAC;YAE1B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACjB,aAAa,GAAG,qBAAa,CAAC,2BAA2B,EAAE,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO;oBAClC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;oBAClD,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC1B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAC7E,CAAC;gBACD,aAAa,GAAG,qBAAa,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,GAAG,CAAa,aAAa,CAAC,CAAC;YAC1D,MAAM,kBAAkB,EAAE,CAAC;YAC3B,iBAAiB,CAAC,IAAA,qBAAe,EAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,kBAAkB,EAAE,CAAC;YAC3B,aAAa,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC;QACtE,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAA,EACD,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CACjB,CAAC;IAEF,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,SAAS,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,IAAI,MAAwB,CAAC;YAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;gBACtC,MAAM,GAAG,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;oBACxC,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBACzB,CAAC;gBACD,iHAAiH;gBACjH,+EAA+E;gBAC/E,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;gBACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;oBAC1C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAwB;gBACzC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAA0B,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;aAClF,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAC/B,sBAAsB,EACtB,aAAa,CACd,CAAC;YACF,eAAe,CAAC,cAAc,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;YACtC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,CAAC,IAAmB,EAAE,EAAE;QACzD,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;YAC/B,uCAAuC;YACvC,wBAAwB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAI,KAAK,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1D,kFAAkF;YAClF,wBAAwB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,IAAI,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,wBAAwB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE;QAC9C,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,OAAO,EAAE,CAAC;YACZ,wBAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,SAA2B,EAAE,SAAkB,EAAE,EAAE;QAC9E,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,wBAAwB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,kBAAK,IACJ,OAAO,EAAE,yBAAY,CAAC,MAAM,EAC5B,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAC1B,MAAM,QACN,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAC5C,OAAO,EAAE;YACP,oBAAC,mBAAM,IACL,GAAG,EAAC,QAAQ,EACZ,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE,CAAC,eAAe,IAE3B,CAAC,CAAC,kBAAkB,CAAC,CACf;YACT,oBAAC,mBAAM,IAAC,GAAG,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,YAAY,IACvG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CACzC;SACV;QAED,oBAAC,kBAAK,IAAC,SAAS;YACd,oBAAC,uBAAa;gBACZ,oBAAC,sBAAS;oBACR,oBAAC,wBAAW;wBACV,oBAAC,iBAAI,QACF,CAAC,CACA,sLAAsL,CACvL,CACI,CACK,CACJ;gBACZ,oBAAC,sBAAS;oBACR,oBAAC,wBAAW;wBACV,oBAAC,iBAAI;4BAAE,CAAC,CAAC,qDAAqD,CAAC;gCAAS,CAC5D,CACJ;gBAEZ,oBAAC,sBAAS;oBACR,oBAAC,sBAAS,IAAC,UAAU,QAAC,OAAO,EAAC,gBAAgB;wBAC5C,oBAAC,kBAAK,IACJ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EACjB,EAAE,EAAC,oBAAoB,EACvB,IAAI,EAAC,eAAe,EACpB,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,EAC9C,QAAQ,EAAE,GAAG,EAAE;gCACb,0BAA0B,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;4BAClD,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,4DAA4D,CAAC,GAC5E;wBACF,oBAAC,kBAAK,IACJ,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,EAClB,EAAE,EAAC,qBAAqB,EACxB,IAAI,EAAC,eAAe,EACpB,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAC/C,QAAQ,EAAE,GAAG,EAAE;gCACb,0BAA0B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BACnD,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,4DAA4D,CAAC,GAC5E;wBACF,oBAAC,kBAAK,IACJ,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,EACjC,EAAE,EAAC,kBAAkB,EACrB,IAAI,EAAC,eAAe,EACpB,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,EAC5C,QAAQ,EAAE,GAAG,EAAE;gCACb,0BAA0B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;4BAChD,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,8BAA8B,CAAC,GAC9C,CACQ,CACF;gBAEX,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,IAAI,CACtC,oBAAC,sBAAS;oBACR,oBAAC,sBAAS,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,QAAC,OAAO,EAAC,SAAS;wBACxD,oBAAC,mBAAM,IACL,EAAE,EAAC,gBAAgB,EACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,MAAM,CAAC,OAAO,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAmB,CAAC,EACpE,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EACtD,MAAM,EAAE,CAAC,SAAuC,EAAE,EAAE,CAAC,CACnD,oBAAC,uBAAU,IACT,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,eAAe,CAAC,EACrD,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAEvB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAC3B,CACd,EACD,yBAAyB;4BAEzB,oBAAC,uBAAU,QACR,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;gCACpB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;gCAC1C,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,QAAQ,0CAAE,WAAW,KAAI,EAAE,CAAC;qCAC9E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qCACxD,IAAI,CAAC,GAAG,CAAC,CAAC;gCAEb,IAAI,WAAW,GAAG,EAAE,CAAC;gCACrB,IAAI,iBAAiB,EAAE,CAAC;oCACtB,WAAW,GAAG,GAAG,CAAC,CAAC,wBAAwB,CAAC,KAAK,iBAAiB,EAAE,CAAC;gCACvE,CAAC;qCAAM,CAAC;oCACN,WAAW,GAAG,CAAC,CAAC,wCAAwC,CAAC,CAAC;gCAC5D,CAAC;gCAED,OAAO,CACL,oBAAC,yBAAY,IACX,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,CAAC,iBAAiB,IAE7B,OAAO,CACK,CAChB,CAAC;4BACJ,CAAC,CAAC,CACS,CACN,CACC,CACF,CACb;gBAEA,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,IAAI,CACvC,oBAAC,sBAAS;oBACR,oBAAC,sBAAS,IAAC,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,OAAO,EAAC,iBAAiB,EAAC,UAAU;wBACxE,oBAAC,qBAAW,IAAC,IAAI,EAAC,QAAQ,EAAC,gBAAgB,EAAE,mBAAmB,GAAI,CAC1D,CACF,CACb,CACa;YAEf,OAAO,IAAI,KAAK,IAAI,YAAY,KAAK,SAAS,IAAI,CACjD,oBAAC,sBAAS,QACP,cAAc,CAAC,CAAC,CAAC,CAChB,oBAAC,kBAAK,IAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,QAAC,KAAK,EAAE,CAAC,CAAC,yBAAyB,CAAC;gBAChE,oBAAC,oBAAO,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,eAAe,GAAG;gBAC9C,CAAC,CAAC,4DAA4D,CAAC,CAC1D,CACT,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACf,oBAAC,kBAAK,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,QAAC,KAAK,EAAE,CAAC,CAAC,gCAAgC,CAAC,IACzE,UAAU,CACL,CACT,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CACvB,oBAAC,kBAAK,IACJ,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAClE,QAAQ,QACR,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC,IAExB,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CACrC,oBAAC,qBAAK,IAAC,CAAC,EAAE,CAAC;gBACT,oCAAS,WAAW,CAAU;;gBAAuD,GAAG;gBACxF,oCAAS,MAAM,CAAC,OAAO,CAAU;oBAC3B,CACT,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CACzC,oBAAC,qBAAK,IAAC,CAAC,EAAE,CAAC;gBACT,oCAAS,WAAW,CAAU;iEACxB,CACT,CAAC,CAAC,CAAC,CACF;gBACE,oBAAC,qBAAK,IAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc;;oBACJ,oCAAS,WAAW,CAAU;0CACpD;gBACP,CAAC,CACA,uHAAuH,CACxH,CACA,CACJ,CACK,CACT,CAAC,CAAC,CAAC,CACF,oBAAC,kBAAK,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,QAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAC3D,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CACrC,oBAAC,qBAAK,IAAC,CAAC,EAAE,CAAC;;gBACsC,oCAAS,MAAM,CAAC,OAAO,CAAU;oBAC1E,CACT,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CACtC,CAAC,CAAC,6BAA6B,CAAC,CACjC,CAAC,CAAC,CAAC,CACF,CAAC,CAAC,kDAAkD,CAAC,CACtD,CACK,CACT,CACS,CACb;YAEA,WAAW,IAAI,CACd,oBAAC,sBAAS;gBACR,oBAAC,kBAAK,IAAC,QAAQ,QAAC,OAAO,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,IAC/D,WAAW,CACN,CACE,CACb;YACA,YAAY,KAAK,SAAS,IAAI,qBAAqB,IAAI,CACtD,oBAAC,sBAAS;gBACR,oBAAC,kBAAK,IAAC,QAAQ,QAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAC5D,CAAC,CAAC,yCAAyC,EAAE,EAAE,YAAY,EAAE,CAAC,CACzD,CACE,CACb;YAEA,YAAY,KAAK,SAAS,IAAI,CAAC,qBAAqB,IAAI,CACvD,oBAAC,sBAAS;gBACR,oBAAC,kBAAK,IAAC,QAAQ,QAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,IAChE,CAAC,CAAC,oFAAoF,EAAE;oBACvF,aAAa,EAAE,cAAc;oBAC7B,YAAY;iBACb,CAAC,CACI,CACE,CACb,CACK;QACP,yBAAyB,IAAI,CAC5B,oBAAC,4CAAkC,IACjC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE;gBACrB,4BAA4B,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,SAAS,EAAE,CAAC;oBACd,aAAa,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC,GACD,CACH,CACK,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE;IAC1E,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAC;IAE/B,OAAO,CACL,oBAAC,eAAM,IACL,aAAa,EAAE;YACb,IAAI,EAAE,aAAa,CAAC,KAAK;YACzB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;SACX,EACD,gBAAgB,EAAE,IAAA,8CAAgC,EAAC,CAAC,CAAC,EACrD,QAAQ,EAAE,GAAG,EAAE;YACb,8CAA8C;QAChD,CAAC;QAED,oBAAC,6BAA6B,IAAC,OAAO,EAAE,OAAO,GAAI,CAC5C,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
interface ResumeAllDevicesConfirmationModalProps {
|
|
3
|
+
deviceCountNum: number;
|
|
4
|
+
onClose: (doConfirm: boolean) => void;
|
|
5
|
+
isSubmitting?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const ResumeAllDevicesConfirmationModal: ({ deviceCountNum, onClose }: ResumeAllDevicesConfirmationModalProps) => React.JSX.Element;
|
|
8
|
+
export default ResumeAllDevicesConfirmationModal;
|
|
9
|
+
//# sourceMappingURL=ResumeAllDevicesConfirmationDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResumeAllDevicesConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,UAAU,sCAAsC;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,iCAAiC,gCAAiC,sCAAsC,sBAwC7G,CAAC;AAEF,eAAe,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const React = tslib_1.__importStar(require("react"));
|
|
5
|
+
const react_core_1 = require("@patternfly/react-core");
|
|
6
|
+
const react_i18next_1 = require("react-i18next");
|
|
7
|
+
const useTranslation_1 = require("../../../../hooks/useTranslation");
|
|
8
|
+
const ResumeAllDevicesConfirmationModal = ({ deviceCountNum, onClose }) => {
|
|
9
|
+
const { t } = (0, useTranslation_1.useTranslation)();
|
|
10
|
+
const deviceCount = deviceCountNum.toString();
|
|
11
|
+
return (React.createElement(react_core_1.Modal, { variant: react_core_1.ModalVariant.small, title: t('Resume all {{ deviceCount }} devices?', { deviceCount }), isOpen: true, onClose: () => onClose(false), actions: [
|
|
12
|
+
React.createElement(react_core_1.Button, { key: "confirm", variant: "primary", onClick: () => onClose(true) }, t('Resume all devices')),
|
|
13
|
+
React.createElement(react_core_1.Button, { key: "cancel", variant: "link", onClick: () => onClose(false) }, t('Cancel')),
|
|
14
|
+
] },
|
|
15
|
+
React.createElement(react_core_1.Stack, { hasGutter: true },
|
|
16
|
+
React.createElement(react_core_1.StackItem, null,
|
|
17
|
+
React.createElement(react_core_1.TextContent, null,
|
|
18
|
+
React.createElement(react_core_1.Text, null,
|
|
19
|
+
React.createElement(react_i18next_1.Trans, { t: t, count: deviceCountNum },
|
|
20
|
+
"You are about to resume all ",
|
|
21
|
+
React.createElement("strong", null, deviceCount),
|
|
22
|
+
" suspended devices."))),
|
|
23
|
+
React.createElement(react_core_1.TextContent, null,
|
|
24
|
+
React.createElement(react_core_1.Text, null, t('This action is irreversible and will allow all affected devices to receive new configuration updates from the server.')))))));
|
|
25
|
+
};
|
|
26
|
+
exports.default = ResumeAllDevicesConfirmationModal;
|
|
27
|
+
//# sourceMappingURL=ResumeAllDevicesConfirmationDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResumeAllDevicesConfirmationDialog.js","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.tsx"],"names":[],"mappings":";;;AAAA,qDAA+B;AAC/B,uDAA0G;AAC1G,iDAAsC;AAEtC,qEAAkE;AAQlE,MAAM,iCAAiC,GAAG,CAAC,EAAE,cAAc,EAAE,OAAO,EAA0C,EAAE,EAAE;IAChH,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAC;IAE/B,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE9C,OAAO,CACL,oBAAC,kBAAK,IACJ,OAAO,EAAE,yBAAY,CAAC,KAAK,EAC3B,KAAK,EAAE,CAAC,CAAC,uCAAuC,EAAE,EAAE,WAAW,EAAE,CAAC,EAClE,MAAM,QACN,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,OAAO,EAAE;YACP,oBAAC,mBAAM,IAAC,GAAG,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IACjE,CAAC,CAAC,oBAAoB,CAAC,CACjB;YACT,oBAAC,mBAAM,IAAC,GAAG,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAC9D,CAAC,CAAC,QAAQ,CAAC,CACL;SACV;QAED,oBAAC,kBAAK,IAAC,SAAS;YACd,oBAAC,sBAAS;gBACR,oBAAC,wBAAW;oBACV,oBAAC,iBAAI;wBACH,oBAAC,qBAAK,IAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc;;4BACJ,oCAAS,WAAW,CAAU;kDACpD,CACH,CACK;gBACd,oBAAC,wBAAW;oBACV,oBAAC,iBAAI,QACF,CAAC,CACA,uHAAuH,CACxH,CACI,CACK,CACJ,CACN,CACF,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,iCAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccessReview.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAccessReview.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAExE,eAAO,MAAM,eAAe,SAAU,QAAQ,QAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"useAccessReview.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAccessReview.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAExE,eAAO,MAAM,eAAe,SAAU,QAAQ,QAAQ,IAAI,uBAyCzD,CAAC"}
|
|
@@ -11,21 +11,34 @@ const useAccessReview = (kind, verb) => {
|
|
|
11
11
|
const [isAllowed, setIsAllowed] = React.useState(false);
|
|
12
12
|
const { fetch: { checkPermissions }, } = (0, useAppContext_1.useAppContext)();
|
|
13
13
|
React.useEffect(() => {
|
|
14
|
+
let isMounted = true;
|
|
14
15
|
const doItAsync = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
if (!isMounted)
|
|
17
|
+
return;
|
|
15
18
|
setIsLoading(true);
|
|
16
19
|
try {
|
|
17
20
|
const allowed = yield checkPermissions(kind, verb);
|
|
18
|
-
|
|
21
|
+
if (isMounted) {
|
|
22
|
+
setIsAllowed(allowed);
|
|
23
|
+
}
|
|
19
24
|
}
|
|
20
25
|
catch (err) {
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
if (isMounted) {
|
|
27
|
+
setError((0, error_1.getErrorMessage)(err));
|
|
28
|
+
setIsAllowed(false);
|
|
29
|
+
}
|
|
23
30
|
}
|
|
24
31
|
finally {
|
|
25
|
-
|
|
32
|
+
if (isMounted) {
|
|
33
|
+
setIsLoading(false);
|
|
34
|
+
}
|
|
26
35
|
}
|
|
27
36
|
});
|
|
28
37
|
doItAsync();
|
|
38
|
+
// Cleanup function to prevent state updates after unmount
|
|
39
|
+
return () => {
|
|
40
|
+
isMounted = false;
|
|
41
|
+
};
|
|
29
42
|
}, [kind, verb, checkPermissions]);
|
|
30
43
|
return [isAllowed, isLoading, error];
|
|
31
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccessReview.js","sourceRoot":"","sources":["../../../src/hooks/useAccessReview.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,mDAAgD;AAChD,0CAAiD;AAK1C,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,IAAU,EAAsB,EAAE;IAChF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,EACJ,KAAK,EAAE,EAAE,gBAAgB,EAAE,GAC5B,GAAG,IAAA,6BAAa,GAAE,CAAC;IACpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnD,YAAY,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useAccessReview.js","sourceRoot":"","sources":["../../../src/hooks/useAccessReview.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,mDAAgD;AAChD,0CAAiD;AAK1C,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,IAAU,EAAsB,EAAE;IAChF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,EACJ,KAAK,EAAE,EAAE,gBAAgB,EAAE,GAC5B,GAAG,IAAA,6BAAa,GAAE,CAAC;IACpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC,CAAC;oBAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,CAAA,CAAC;QAEF,SAAS,EAAE,CAAC;QAEZ,0DAA0D;QAC1D,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEnC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAzCW,QAAA,eAAe,mBAyC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAlertsEnabled.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAlertsEnabled.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,gBAAgB,QAAO,OAwCnC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAlertsEnabled = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const rbac_1 = require("../types/rbac");
|
|
7
|
+
const useAccessReview_1 = require("./useAccessReview");
|
|
8
|
+
const useFetch_1 = require("./useFetch");
|
|
9
|
+
// Alerts are considered disabled if the service returns either 501 (Not Implemented) or 500
|
|
10
|
+
const isDisabledAlertManagerService = (error) => Number(error.message) === 501 || Number(error.message) === 500;
|
|
11
|
+
const useAlertsEnabled = () => {
|
|
12
|
+
const { get } = (0, useFetch_1.useFetch)();
|
|
13
|
+
const [alertsEnabled, setAlertsEnabled] = React.useState(false);
|
|
14
|
+
const [canListAlerts, alertsLoading] = (0, useAccessReview_1.useAccessReview)(rbac_1.RESOURCE.ALERTS, rbac_1.VERB.LIST);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
let abortController;
|
|
17
|
+
const checkAlertServiceEnabled = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
try {
|
|
19
|
+
abortController = new AbortController();
|
|
20
|
+
yield get('alerts', abortController.signal);
|
|
21
|
+
setAlertsEnabled(true);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
if (!abortController.signal.aborted) {
|
|
25
|
+
if (isDisabledAlertManagerService(err)) {
|
|
26
|
+
setAlertsEnabled(false);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// For other errors, assume alerts are enabled but there's a temporary issue
|
|
30
|
+
setAlertsEnabled(true);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
if (!alertsLoading && canListAlerts) {
|
|
36
|
+
// Check only if we know that the user has permissions to read the alerts
|
|
37
|
+
checkAlertServiceEnabled();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// If user doesn't have permissions, set to disabled
|
|
41
|
+
setAlertsEnabled(false);
|
|
42
|
+
}
|
|
43
|
+
return () => {
|
|
44
|
+
abortController === null || abortController === void 0 ? void 0 : abortController.abort();
|
|
45
|
+
};
|
|
46
|
+
}, [get, alertsLoading, canListAlerts]);
|
|
47
|
+
return alertsEnabled;
|
|
48
|
+
};
|
|
49
|
+
exports.useAlertsEnabled = useAlertsEnabled;
|
|
50
|
+
//# sourceMappingURL=useAlertsEnabled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAlertsEnabled.js","sourceRoot":"","sources":["../../../src/hooks/useAlertsEnabled.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,wCAA+C;AAC/C,uDAAoD;AACpD,yCAAsC;AAEtC,4FAA4F;AAC5F,MAAM,6BAA6B,GAAG,CAAC,KAAY,EAAW,EAAE,CAC9D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC;AAE1D,MAAM,gBAAgB,GAAG,GAAY,EAAE;IAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAA,mBAAQ,GAAE,CAAC;IAC3B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAA,iCAAe,EAAC,eAAQ,CAAC,MAAM,EAAE,WAAI,CAAC,IAAI,CAAC,CAAC;IAEnF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,eAAgC,CAAC;QAErC,MAAM,wBAAwB,GAAG,GAAS,EAAE;YAC1C,IAAI,CAAC;gBACH,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;gBACxC,MAAM,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,6BAA6B,CAAC,GAAY,CAAC,EAAE,CAAC;wBAChD,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,4EAA4E;wBAC5E,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAA,CAAC;QAEF,IAAI,CAAC,aAAa,IAAI,aAAa,EAAE,CAAC;YACpC,yEAAyE;YACzE,wBAAwB,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAExC,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAxCW,QAAA,gBAAgB,oBAwC3B"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Link, Navigate, Route, NavigateFunction as RouterNavigateFunction, Routes, useBlocker, useLocation, useParams, useSearchParams } from 'react-router-dom';
|
|
3
3
|
import { PatchRequest } from '@flightctl/types';
|
|
4
|
-
import { CliArtifactsResponse } from '@flightctl/ui-components/src/types/extraTypes';
|
|
5
4
|
import { ROUTE } from './useNavigate';
|
|
6
5
|
import { RESOURCE, VERB } from '../types/rbac';
|
|
7
6
|
export declare const appRoutes: {
|
|
@@ -63,15 +62,13 @@ export type AppContextProps = {
|
|
|
63
62
|
fetch: {
|
|
64
63
|
getWsEndpoint: (deviceId: string) => string;
|
|
65
64
|
get: <R>(kind: string, abortSignal?: AbortSignal) => Promise<R>;
|
|
66
|
-
post: <
|
|
67
|
-
put: <
|
|
65
|
+
post: <TRequest, TResponse = TRequest>(kind: string, data: TRequest, abortSignal?: AbortSignal) => Promise<TResponse>;
|
|
66
|
+
put: <TRequest>(kind: string, data: TRequest, abortSignal?: AbortSignal) => Promise<TRequest>;
|
|
68
67
|
remove: <R>(kind: string, abortSignal?: AbortSignal) => Promise<R>;
|
|
69
68
|
patch: <R>(kind: string, patches: PatchRequest, abortSignal?: AbortSignal) => Promise<R>;
|
|
70
69
|
checkPermissions: (resource: RESOURCE, verb: VERB) => Promise<boolean>;
|
|
70
|
+
proxyFetch: (endpoint: string, requestInit: RequestInit) => Promise<Response>;
|
|
71
71
|
};
|
|
72
|
-
getAlerts?: <R>(abortSignal?: AbortSignal) => Promise<R>;
|
|
73
|
-
getMetrics?: <R>(query: string, abortSignal?: AbortSignal) => Promise<R>;
|
|
74
|
-
getCliArtifacts?: (abortSignal?: AbortSignal) => Promise<CliArtifactsResponse>;
|
|
75
72
|
};
|
|
76
73
|
export declare const AppContext: React.Context<AppContextProps>;
|
|
77
74
|
export declare const useAppContext: () => AppContextProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAppContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,IAAI,EAEJ,QAAQ,EACR,KAAK,EACL,gBAAgB,IAAI,sBAAsB,EAC1C,MAAM,EACN,UAAU,EACV,WAAW,EAEX,SAAS,EACT,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useAppContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAppContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,7 @@ exports.AppContext = React.createContext({
|
|
|
60
60
|
remove: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return ({}); }),
|
|
61
61
|
patch: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return ({}); }),
|
|
62
62
|
checkPermissions: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return true; }),
|
|
63
|
+
proxyFetch: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return ({}); }),
|
|
63
64
|
},
|
|
64
65
|
/* eslint-enable */
|
|
65
66
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppContext.js","sourceRoot":"","sources":["../../../src/hooks/useAppContext.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,uDAY0B;
|
|
1
|
+
{"version":3,"file":"useAppContext.js","sourceRoot":"","sources":["../../../src/hooks/useAppContext.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,uDAY0B;AAE1B,+CAAsC;AAGzB,QAAA,SAAS,GAAG;IACvB,CAAC,mBAAK,CAAC,IAAI,CAAC,EAAE,GAAG;IACjB,CAAC,mBAAK,CAAC,MAAM,CAAC,EAAE,0BAA0B;IAC1C,CAAC,mBAAK,CAAC,aAAa,CAAC,EAAE,0BAA0B;IACjD,CAAC,mBAAK,CAAC,YAAY,CAAC,EAAE,iCAAiC;IACvD,CAAC,mBAAK,CAAC,UAAU,CAAC,EAAE,+BAA+B;IACnD,CAAC,mBAAK,CAAC,YAAY,CAAC,EAAE,iCAAiC;IACvD,CAAC,mBAAK,CAAC,OAAO,CAAC,EAAE,2BAA2B;IAC5C,CAAC,mBAAK,CAAC,cAAc,CAAC,EAAE,2BAA2B;IACnD,CAAC,mBAAK,CAAC,WAAW,CAAC,EAAE,gCAAgC;IACrD,CAAC,mBAAK,CAAC,WAAW,CAAC,EAAE,uCAAuC;IAC5D,CAAC,mBAAK,CAAC,SAAS,CAAC,EAAE,qCAAqC;IACxD,CAAC,mBAAK,CAAC,YAAY,CAAC,EAAE,gCAAgC;IACtD,CAAC,mBAAK,CAAC,YAAY,CAAC,EAAE,gCAAgC;IACtD,CAAC,mBAAK,CAAC,qBAAqB,CAAC,EAAE,iCAAiC;IAChE,CAAC,mBAAK,CAAC,mBAAmB,CAAC,EAAE,sCAAsC;IACnE,CAAC,mBAAK,CAAC,0BAA0B,CAAC,EAAE,sCAAsC;IAC1E,CAAC,mBAAK,CAAC,kBAAkB,CAAC,EAAE,qBAAqB;CAClD,CAAC;AAIF,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,2BAAW,CAAA;IACX,2BAAW,CAAA;AACb,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AA0CY,QAAA,UAAU,GAAG,KAAK,CAAC,aAAa,CAAkB;IAC7D,OAAO,EAAE,YAAY,CAAC,UAAU;IAChC,QAAQ,EAAE;QACR,MAAM,EAAE,KAAK;KACd;IACD,MAAM,EAAE;QACN,WAAW,EAAX,8BAAW;QACX,IAAI,EAAJ,uBAAI;QACJ,SAAS,EAAT,iBAAS;QACT,OAAO,EAAE,0BAAoB;QAC7B,SAAS,EAAT,4BAAS;QACT,UAAU,EAAV,6BAAU;QACV,eAAe,EAAf,kCAAe;QACf,KAAK,EAAL,wBAAK;QACL,MAAM,EAAN,yBAAM;QACN,QAAQ,EAAR,2BAAQ;QACR,WAAW,EAAX,8BAAW;KACZ;IACD,IAAI,EAAE;QACJ,cAAc,EAAE,SAAS;KAC1B;IACD,oBAAoB;IACpB,KAAK,EAAE;QACL,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE;QACvB,GAAG,EAAE,GAAS,EAAE,0DAAC,OAAA,CAAC,EAAE,CAAQ,CAAA,GAAA;QAC5B,IAAI,EAAE,GAAS,EAAE,0DAAC,OAAA,CAAC,EAAE,CAAQ,CAAA,GAAA;QAC7B,GAAG,EAAE,GAAS,EAAE,0DAAC,OAAA,CAAC,EAAE,CAAQ,CAAA,GAAA;QAC5B,MAAM,EAAE,GAAS,EAAE,0DAAC,OAAA,CAAC,EAAE,CAAQ,CAAA,GAAA;QAC/B,KAAK,EAAE,GAAS,EAAE,0DAAC,OAAA,CAAC,EAAE,CAAQ,CAAA,GAAA;QAC9B,gBAAgB,EAAE,GAAS,EAAE,0DAAC,OAAA,IAAI,CAAA,GAAA;QAClC,UAAU,EAAE,GAAS,EAAE,0DAAC,OAAA,CAAC,EAAE,CAAQ,CAAA,GAAA;KACpC;IACD,mBAAmB;CACpB,CAAC,CAAC;AAEI,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAU,CAAC,CAAC;AAAnD,QAAA,aAAa,iBAAsC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export declare const useFetch: () => {
|
|
2
|
-
getCliArtifacts: ((abortSignal?: AbortSignal | undefined) => Promise<import("../types/extraTypes").CliArtifactsResponse>) | undefined;
|
|
3
|
-
getMetrics: (<R>(query: string, abortSignal?: AbortSignal | undefined) => Promise<R>) | undefined;
|
|
4
2
|
getWsEndpoint: (deviceId: string) => string;
|
|
5
|
-
get: <
|
|
6
|
-
post: <
|
|
7
|
-
put: <
|
|
8
|
-
remove: <
|
|
9
|
-
patch: <
|
|
3
|
+
get: <R>(kind: string, abortSignal?: AbortSignal | undefined) => Promise<R>;
|
|
4
|
+
post: <TRequest, TResponse = TRequest>(kind: string, data: TRequest, abortSignal?: AbortSignal | undefined) => Promise<TResponse>;
|
|
5
|
+
put: <TRequest_1>(kind: string, data: TRequest_1, abortSignal?: AbortSignal | undefined) => Promise<TRequest_1>;
|
|
6
|
+
remove: <R_1>(kind: string, abortSignal?: AbortSignal | undefined) => Promise<R_1>;
|
|
7
|
+
patch: <R_2>(kind: string, patches: import("@flightctl/types").PatchRequest, abortSignal?: AbortSignal | undefined) => Promise<R_2>;
|
|
10
8
|
checkPermissions: (resource: import("../types/rbac").RESOURCE, verb: import("../types/rbac").VERB) => Promise<boolean>;
|
|
9
|
+
proxyFetch: (endpoint: string, requestInit: RequestInit) => Promise<Response>;
|
|
11
10
|
};
|
|
12
11
|
//# sourceMappingURL=useFetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetch.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"useFetch.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;CAMpB,CAAC"}
|
|
@@ -3,9 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useFetch = void 0;
|
|
4
4
|
const useAppContext_1 = require("./useAppContext");
|
|
5
5
|
const useFetch = () => {
|
|
6
|
-
const { fetch
|
|
7
|
-
return Object.assign(
|
|
8
|
-
getMetrics });
|
|
6
|
+
const { fetch } = (0, useAppContext_1.useAppContext)();
|
|
7
|
+
return Object.assign({}, fetch);
|
|
9
8
|
};
|
|
10
9
|
exports.useFetch = useFetch;
|
|
11
10
|
//# sourceMappingURL=useFetch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetch.js","sourceRoot":"","sources":["../../../src/hooks/useFetch.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAEzC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"useFetch.js","sourceRoot":"","sources":["../../../src/hooks/useFetch.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAEzC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,6BAAa,GAAE,CAAC;IAElC,yBACK,KAAK,EACR;AACJ,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchPeriodically.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetchPeriodically.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFetchPeriodically.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetchPeriodically.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAM/C,eAAO,MAAM,oBAAoB,aACxB,QAAQ,kCACgB,IAAI,0EAqEpC,CAAC"}
|