@gooddata/sdk-ui-dashboard 11.56.0-alpha.4 → 11.56.0-alpha.6
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/NOTICE +1 -1
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +3 -2
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +3 -2
- package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts +4 -3
- package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.js +4 -3
- package/esm/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.d.ts +3 -2
- package/esm/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.js +3 -2
- package/esm/presentation/automations/alerting/state/AlertActionsContext.d.ts +5 -4
- package/esm/presentation/automations/alerting/state/AlertActionsContext.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/AlertActionsContext.js +5 -4
- package/esm/presentation/automations/alerting/state/AlertDataContext.d.ts +5 -4
- package/esm/presentation/automations/alerting/state/AlertDataContext.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/AlertDataContext.js +5 -4
- package/esm/presentation/automations/alerting/state/AlertDraftContext.d.ts +5 -4
- package/esm/presentation/automations/alerting/state/AlertDraftContext.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/AlertDraftContext.js +5 -4
- package/esm/presentation/automations/alerting/state/AlertFiltersContext.d.ts +5 -4
- package/esm/presentation/automations/alerting/state/AlertFiltersContext.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/AlertFiltersContext.js +5 -4
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts +8 -6
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +16 -8
- package/esm/presentation/automations/alerting/state/missingAlertStateProvider.js +1 -1
- package/esm/presentation/automations/alerting/types.d.ts +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +2 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +2 -1
- package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.d.ts +4 -4
- package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.js +4 -4
- package/esm/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.d.ts +5 -4
- package/esm/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.js +5 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts +8 -6
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +16 -8
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts +6 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.js +6 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts +6 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.js +6 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts +6 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.js +6 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts +6 -4
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.js +6 -4
- package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.js +1 -1
- package/esm/presentation/automations/scheduledEmail/types.d.ts +1 -1
- package/esm/sdk-ui-dashboard.d.ts +59 -44
- package/package.json +24 -25
package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
|
-
import { useMemo } from "react";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
4
|
import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
|
|
5
5
|
import { useScheduledEmailDialogContext } from "../../contexts/ScheduledEmailDialogContext.js";
|
|
6
6
|
import { useAutomationFiltersSelect } from "../../shared/automationFilters/useAutomationFiltersSelect.js";
|
|
@@ -16,14 +16,16 @@ import { useScheduledEmailFiltersModel } from "./useScheduledEmailFiltersModel.j
|
|
|
16
16
|
import { useScheduledEmailFormState } from "./useScheduledEmailFormState.js";
|
|
17
17
|
/**
|
|
18
18
|
* Publishes the scheduled-export create/edit dialog's state as the four scheduled-export state
|
|
19
|
-
* contexts
|
|
19
|
+
* contexts from the first render where the dialog's data has loaded.
|
|
20
20
|
*
|
|
21
21
|
* Mounts above the resolved `ScheduledEmailDialogComponent`, so the default dialog, a shell of
|
|
22
|
-
* blocks and a wholesale replacement all read the same state with no extra wiring.
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* re-run
|
|
26
|
-
* ordinary path here, not an edge case: a widget
|
|
22
|
+
* blocks and a wholesale replacement all read the same state with no extra wiring. Mounts the
|
|
23
|
+
* state model on the first render where `useScheduledEmailDialogContext().isLoading` is false and
|
|
24
|
+
* keeps it mounted for the rest of the dialog's life: the model seeds its draft from the dialog's
|
|
25
|
+
* loaded data in `useState` initializers that never re-run, so mounting earlier would freeze that
|
|
26
|
+
* seed against not-yet-loaded data — that is the ordinary path here, not an edge case: a widget
|
|
27
|
+
* export's filters load after the dialog opens — and unmounting on a later `isLoading` flip (an
|
|
28
|
+
* automations refresh) would discard the in-flight draft.
|
|
27
29
|
*
|
|
28
30
|
* Runs `useIntl`-calling hooks, so an `IntlProvider` must sit above it. Inside a `Dashboard` the
|
|
29
31
|
* ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
|
|
@@ -33,7 +35,13 @@ import { useScheduledEmailFormState } from "./useScheduledEmailFormState.js";
|
|
|
33
35
|
*/
|
|
34
36
|
export function ScheduledEmailDialogStateProvider({ children }) {
|
|
35
37
|
const { isLoading } = useScheduledEmailDialogContext();
|
|
36
|
-
|
|
38
|
+
// Latches on the first non-loading render: the draft seed must not run against unloaded
|
|
39
|
+
// data, and once seeded it must survive isLoading flipping back (an automations refresh).
|
|
40
|
+
const [hasLoaded, setHasLoaded] = useState(!isLoading);
|
|
41
|
+
if (!isLoading && !hasLoaded) {
|
|
42
|
+
setHasLoaded(true);
|
|
43
|
+
}
|
|
44
|
+
return hasLoaded ? (_jsx(LoadedScheduledEmailDialogState, { children: children })) : (_jsx(_Fragment, { children: children }));
|
|
37
45
|
}
|
|
38
46
|
function LoadedScheduledEmailDialogState({ children }) {
|
|
39
47
|
const { settings, externalRecipient } = useAutomationsContext();
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ export declare const ScheduledExportActionsContextProvider: import("react").Prov
|
|
|
3
3
|
/**
|
|
4
4
|
* Reads the scheduled-export dialog's draft mutators.
|
|
5
5
|
*
|
|
6
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
7
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
7
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
8
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
9
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
10
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
11
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
10
12
|
*
|
|
11
13
|
* @alpha
|
|
12
14
|
*/
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduledExportActionsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAOtE,eAAO,MAAM,qCAAqC,2EAAyC,CAAC;AAE5F
|
|
1
|
+
{"version":3,"file":"ScheduledExportActionsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAOtE,eAAO,MAAM,qCAAqC,2EAAyC,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,mCAAmC,CAK/E"}
|
|
@@ -7,10 +7,12 @@ export const ScheduledExportActionsContextProvider = ScheduledExportActionsConte
|
|
|
7
7
|
/**
|
|
8
8
|
* Reads the scheduled-export dialog's draft mutators.
|
|
9
9
|
*
|
|
10
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
11
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
11
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
12
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
13
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
14
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
15
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
14
16
|
*
|
|
15
17
|
* @alpha
|
|
16
18
|
*/
|
|
@@ -3,10 +3,12 @@ export declare const ScheduledExportDataContextProvider: import("react").Provide
|
|
|
3
3
|
/**
|
|
4
4
|
* Reads the scheduled-export dialog's recipient defaults.
|
|
5
5
|
*
|
|
6
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
7
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
7
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
8
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
9
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
10
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
11
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
10
12
|
*
|
|
11
13
|
* @alpha
|
|
12
14
|
*/
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduledExportDataContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAKnE,eAAO,MAAM,kCAAkC,wEAAsC,CAAC;AAEtF
|
|
1
|
+
{"version":3,"file":"ScheduledExportDataContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAKnE,eAAO,MAAM,kCAAkC,wEAAsC,CAAC;AAEtF;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,IAAI,gCAAgC,CAKzE"}
|
|
@@ -7,10 +7,12 @@ export const ScheduledExportDataContextProvider = ScheduledExportDataContext.Pro
|
|
|
7
7
|
/**
|
|
8
8
|
* Reads the scheduled-export dialog's recipient defaults.
|
|
9
9
|
*
|
|
10
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
11
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
11
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
12
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
13
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
14
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
15
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
14
16
|
*
|
|
15
17
|
* @alpha
|
|
16
18
|
*/
|
|
@@ -3,10 +3,12 @@ export declare const ScheduledExportDraftContextProvider: import("react").Provid
|
|
|
3
3
|
/**
|
|
4
4
|
* Reads the scheduled-export dialog's edit draft.
|
|
5
5
|
*
|
|
6
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
7
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
7
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
8
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
9
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
10
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
11
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
10
12
|
*
|
|
11
13
|
* @alpha
|
|
12
14
|
*/
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduledExportDraftContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAKpE,eAAO,MAAM,mCAAmC,yEAAuC,CAAC;AAExF
|
|
1
|
+
{"version":3,"file":"ScheduledExportDraftContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAKpE,eAAO,MAAM,mCAAmC,yEAAuC,CAAC;AAExF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,IAAI,iCAAiC,CAK3E"}
|
|
@@ -7,10 +7,12 @@ export const ScheduledExportDraftContextProvider = ScheduledExportDraftContext.P
|
|
|
7
7
|
/**
|
|
8
8
|
* Reads the scheduled-export dialog's edit draft.
|
|
9
9
|
*
|
|
10
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
11
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
11
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
12
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
13
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
14
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
15
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
14
16
|
*
|
|
15
17
|
* @alpha
|
|
16
18
|
*/
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ export declare const ScheduledExportFiltersContextProvider: import("react").Prov
|
|
|
3
3
|
/**
|
|
4
4
|
* Reads the scheduled-export dialog's filter and export-parameter model.
|
|
5
5
|
*
|
|
6
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
7
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
7
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
8
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
9
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
10
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
11
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
10
12
|
*
|
|
11
13
|
* @alpha
|
|
12
14
|
*/
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduledExportFiltersContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAOtE,eAAO,MAAM,qCAAqC,2EAAyC,CAAC;AAE5F
|
|
1
|
+
{"version":3,"file":"ScheduledExportFiltersContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAOtE,eAAO,MAAM,qCAAqC,2EAAyC,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,mCAAmC,CAK/E"}
|
|
@@ -7,10 +7,12 @@ export const ScheduledExportFiltersContextProvider = ScheduledExportFiltersConte
|
|
|
7
7
|
/**
|
|
8
8
|
* Reads the scheduled-export dialog's filter and export-parameter model.
|
|
9
9
|
*
|
|
10
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
11
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
11
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
12
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
13
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
14
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
15
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
14
16
|
*
|
|
15
17
|
* @alpha
|
|
16
18
|
*/
|
package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export function missingScheduledExportStateProvider(accessor) {
|
|
8
|
-
throw new Error(`${accessor} must be used within ScheduledEmailDialogStateProvider. The
|
|
8
|
+
throw new Error(`${accessor} must be used within ScheduledEmailDialogStateProvider. The state model mounts once the dialog's data has first loaded, so check useScheduledEmailDialogContext().isLoading before reading scheduled-export dialog state.`);
|
|
9
9
|
}
|
|
@@ -627,7 +627,7 @@ export interface IScheduledEmailDialogShellProps extends Pick<IScheduledEmailDia
|
|
|
627
627
|
* {@link useSaveScheduledEmailToBackend} instance. Drives the footer's submit button, the Enter key on
|
|
628
628
|
* it, and the header's Enter-to-submit. The shell does not own the save hook, so the caller's own Enter
|
|
629
629
|
* handlers — {@link useScheduledEmailSubmitOnEnter} — share the same instance. Create the hook instance
|
|
630
|
-
* only once the dialog
|
|
630
|
+
* only once the dialog's data has first loaded — the state hooks throw before then.
|
|
631
631
|
*/
|
|
632
632
|
onSubmit: () => void;
|
|
633
633
|
/**
|
|
@@ -795,8 +795,9 @@ export declare function AlertingDialogSensitivity(overrides: Partial<IAlertingDi
|
|
|
795
795
|
* `AlertingDialogComponent` that keeps this chrome and arranges the blocks differently renders the shell
|
|
796
796
|
* itself. The shell does not own the submit: call {@link useAlertSubmit} and pass its `submit` and
|
|
797
797
|
* `isSaving`, so the footer button and any Enter handler in the body share one instance. Call that hook
|
|
798
|
-
* only once `useAlertingDialogContext().isLoading` is false — the state hooks throw
|
|
799
|
-
*
|
|
798
|
+
* only once `useAlertingDialogContext().isLoading` is first false — the state hooks throw until the
|
|
799
|
+
* dialog's data has first loaded (after that they stay available through a refresh) — and render the
|
|
800
|
+
* shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
|
|
800
801
|
*
|
|
801
802
|
* Needs an ambient `IntlProvider`; inside a `Dashboard` the dashboard's provider covers it.
|
|
802
803
|
*
|
|
@@ -804,7 +805,7 @@ export declare function AlertingDialogSensitivity(overrides: Partial<IAlertingDi
|
|
|
804
805
|
* ```tsx
|
|
805
806
|
* function MyAlertingDialog(props: IAlertingDialogProps) {
|
|
806
807
|
* const { isLoading } = useAlertingDialogContext();
|
|
807
|
-
* // the state hooks throw
|
|
808
|
+
* // the state hooks throw until the dialog's data has first loaded; the shell shows the skeleton
|
|
808
809
|
* if (isLoading) {
|
|
809
810
|
* return <AlertingDialogShell {...props} onSubmit={() => {}} isSaving={false} />;
|
|
810
811
|
* }
|
|
@@ -4541,8 +4542,9 @@ export declare const DEFAULT_TAB_ID = "defaultTabId";
|
|
|
4541
4542
|
* rendered within an `AutomationsContextProvider`, an `AlertingDialogContextProvider` (for the
|
|
4542
4543
|
* create/edit flow), and an `AlertingDialogStateProvider`. Inside a `Dashboard`, the alerting
|
|
4543
4544
|
* connector supplies the first two providers above the `AlertingDialogComponent` slot, and mounts
|
|
4544
|
-
* `AlertingDialogStateProvider` around the resolved slot component
|
|
4545
|
-
* `useAlertingDialogContext().isLoading` is false
|
|
4545
|
+
* `AlertingDialogStateProvider` around the resolved slot component — its state model establishes
|
|
4546
|
+
* itself once `useAlertingDialogContext().isLoading` is first false and stays mounted from then
|
|
4547
|
+
* on — so the default component, and any wholesale
|
|
4546
4548
|
* slot replacement, inherit all three contexts automatically and require no extra wiring.
|
|
4547
4549
|
*
|
|
4548
4550
|
* The providers are intentionally hoisted above the slot rather than built inside this component:
|
|
@@ -4961,7 +4963,8 @@ export declare function DefaultSaveButton({ isVisible, isEnabled, isSaving, butt
|
|
|
4961
4963
|
* export draft's state from those contexts rather than from the dashboard store. It must therefore
|
|
4962
4964
|
* be rendered within an `AutomationsContextProvider`, a `ScheduledEmailDialogContextProvider` (for
|
|
4963
4965
|
* the create/edit flow), and a `ScheduledEmailDialogStateProvider`, whose state model establishes
|
|
4964
|
-
* itself once `useScheduledEmailDialogContext().isLoading` is false
|
|
4966
|
+
* itself once `useScheduledEmailDialogContext().isLoading` is first false and stays mounted from
|
|
4967
|
+
* then on. Inside a `Dashboard`, the
|
|
4965
4968
|
* scheduled export connector supplies the first two providers above the
|
|
4966
4969
|
* `ScheduledEmailDialogComponent` slot and mounts `ScheduledEmailDialogStateProvider` around the
|
|
4967
4970
|
* resolved slot component — so the default component, and any wholesale slot replacement, inherit
|
|
@@ -7290,7 +7293,7 @@ export declare interface IAlertingDialogShellProps extends Pick<IAlertingDialogP
|
|
|
7290
7293
|
* The dialog's single submit — `submit` of the caller's {@link useAlertSubmit} instance. Drives the
|
|
7291
7294
|
* footer's submit button and the Enter key on it. The shell does not own the submit hook, so a
|
|
7292
7295
|
* caller's own Enter handler or button can share the same instance. Create the hook instance only
|
|
7293
|
-
* once the dialog
|
|
7296
|
+
* once the dialog's data has first loaded — the state hooks throw before then.
|
|
7294
7297
|
*/
|
|
7295
7298
|
onSubmit: () => void;
|
|
7296
7299
|
/**
|
|
@@ -19693,7 +19696,7 @@ export declare interface IScheduledEmailDialogShellProps extends Pick<IScheduled
|
|
|
19693
19696
|
* {@link useSaveScheduledEmailToBackend} instance. Drives the footer's submit button, the Enter key on
|
|
19694
19697
|
* it, and the header's Enter-to-submit. The shell does not own the save hook, so the caller's own Enter
|
|
19695
19698
|
* handlers — {@link useScheduledEmailSubmitOnEnter} — share the same instance. Create the hook instance
|
|
19696
|
-
* only once the dialog
|
|
19699
|
+
* only once the dialog's data has first loaded — the state hooks throw before then.
|
|
19697
19700
|
*/
|
|
19698
19701
|
onSubmit: () => void;
|
|
19699
19702
|
/**
|
|
@@ -26478,9 +26481,9 @@ export declare function ScheduledEmailDialogRecurrence(props: Partial<IScheduled
|
|
|
26478
26481
|
* shell itself. The shell does not own the save: call {@link useSaveScheduledEmailToBackend} and pass its
|
|
26479
26482
|
* `handleSaveScheduledEmail`, `isSavingScheduledEmail` and `savingErrorMessage`; build Enter handlers for
|
|
26480
26483
|
* the blocks you place with {@link useScheduledEmailSubmitOnEnter} over the same `handleSaveScheduledEmail`.
|
|
26481
|
-
* Call that hook only once `useScheduledEmailDialogContext().isLoading` is false — the state hooks
|
|
26482
|
-
*
|
|
26483
|
-
* the example does.
|
|
26484
|
+
* Call that hook only once `useScheduledEmailDialogContext().isLoading` is first false — the state hooks
|
|
26485
|
+
* throw until the dialog's data has first loaded (after that they stay available through a refresh) —
|
|
26486
|
+
* and render the shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
|
|
26484
26487
|
*
|
|
26485
26488
|
* Needs an ambient `IntlProvider`; inside a `Dashboard` the dashboard's provider covers it.
|
|
26486
26489
|
*
|
|
@@ -26488,7 +26491,7 @@ export declare function ScheduledEmailDialogRecurrence(props: Partial<IScheduled
|
|
|
26488
26491
|
* ```tsx
|
|
26489
26492
|
* function MyScheduledEmailDialog(props: IScheduledEmailDialogProps) {
|
|
26490
26493
|
* const { isLoading } = useScheduledEmailDialogContext();
|
|
26491
|
-
* // the state hooks throw
|
|
26494
|
+
* // the state hooks throw until the dialog's data has first loaded; the shell shows the skeleton
|
|
26492
26495
|
* if (isLoading) {
|
|
26493
26496
|
* return <ScheduledEmailDialogShell {...props} onSubmit={() => {}} isSaving={false} />;
|
|
26494
26497
|
* }
|
|
@@ -31757,10 +31760,11 @@ export declare function updateVisualizationsFromSwitcherWidgetContent(ref: ObjRe
|
|
|
31757
31760
|
/**
|
|
31758
31761
|
* Reads the alerting dialog's mutators.
|
|
31759
31762
|
*
|
|
31760
|
-
* Throws outside the alerting dialog's state providers, which mount
|
|
31761
|
-
* `useAlertingDialogContext().isLoading` is false
|
|
31762
|
-
* must check that flag before
|
|
31763
|
-
*
|
|
31763
|
+
* Throws outside the alerting dialog's state providers, which mount the state model on the first
|
|
31764
|
+
* render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
|
|
31765
|
+
* a replacement for `AlertingDialogComponent` must check that flag before reading state while the
|
|
31766
|
+
* dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
|
|
31767
|
+
* so the draft survives and this accessor keeps serving through it.
|
|
31764
31768
|
*
|
|
31765
31769
|
* @alpha
|
|
31766
31770
|
*/
|
|
@@ -31769,10 +31773,11 @@ export declare function useAlertActions(): IAlertActionsContextValue;
|
|
|
31769
31773
|
/**
|
|
31770
31774
|
* Reads the data the alerting dialog loads asynchronously.
|
|
31771
31775
|
*
|
|
31772
|
-
* Throws outside the alerting dialog's state providers, which mount
|
|
31773
|
-
* `useAlertingDialogContext().isLoading` is false
|
|
31774
|
-
* must check that flag before
|
|
31775
|
-
*
|
|
31776
|
+
* Throws outside the alerting dialog's state providers, which mount the state model on the first
|
|
31777
|
+
* render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
|
|
31778
|
+
* a replacement for `AlertingDialogComponent` must check that flag before reading state while the
|
|
31779
|
+
* dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
|
|
31780
|
+
* so the draft survives and this accessor keeps serving through it.
|
|
31776
31781
|
*
|
|
31777
31782
|
* @alpha
|
|
31778
31783
|
*/
|
|
@@ -31790,10 +31795,11 @@ export declare function useAlertDialogValidity(): IAlertDialogValidity;
|
|
|
31790
31795
|
/**
|
|
31791
31796
|
* Reads the alerting dialog's edit draft.
|
|
31792
31797
|
*
|
|
31793
|
-
* Throws outside the alerting dialog's state providers, which mount
|
|
31794
|
-
* `useAlertingDialogContext().isLoading` is false
|
|
31795
|
-
* must check that flag before
|
|
31796
|
-
*
|
|
31798
|
+
* Throws outside the alerting dialog's state providers, which mount the state model on the first
|
|
31799
|
+
* render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
|
|
31800
|
+
* a replacement for `AlertingDialogComponent` must check that flag before reading state while the
|
|
31801
|
+
* dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
|
|
31802
|
+
* so the draft survives and this accessor keeps serving through it.
|
|
31797
31803
|
*
|
|
31798
31804
|
* @alpha
|
|
31799
31805
|
*/
|
|
@@ -31802,10 +31808,11 @@ export declare function useAlertDraft(): IAlertDraftContextValue;
|
|
|
31802
31808
|
/**
|
|
31803
31809
|
* Reads the alerting dialog's filter and export-parameter model.
|
|
31804
31810
|
*
|
|
31805
|
-
* Throws outside the alerting dialog's state providers, which mount
|
|
31806
|
-
* `useAlertingDialogContext().isLoading` is false
|
|
31807
|
-
* must check that flag before
|
|
31808
|
-
*
|
|
31811
|
+
* Throws outside the alerting dialog's state providers, which mount the state model on the first
|
|
31812
|
+
* render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
|
|
31813
|
+
* a replacement for `AlertingDialogComponent` must check that flag before reading state while the
|
|
31814
|
+
* dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
|
|
31815
|
+
* so the draft survives and this accessor keeps serving through it.
|
|
31809
31816
|
*
|
|
31810
31817
|
* @alpha
|
|
31811
31818
|
*/
|
|
@@ -32660,10 +32667,12 @@ export declare function useScheduledEmailSubmitOnEnter({ onSubmit, isSaving, }:
|
|
|
32660
32667
|
/**
|
|
32661
32668
|
* Reads the scheduled-export dialog's draft mutators.
|
|
32662
32669
|
*
|
|
32663
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
32664
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
32665
|
-
*
|
|
32666
|
-
*
|
|
32670
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
32671
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
32672
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
32673
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
32674
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
32675
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
32667
32676
|
*
|
|
32668
32677
|
* @alpha
|
|
32669
32678
|
*/
|
|
@@ -32686,10 +32695,12 @@ export declare function useScheduledExportAttachments(): IScheduledExportAttachm
|
|
|
32686
32695
|
/**
|
|
32687
32696
|
* Reads the scheduled-export dialog's recipient defaults.
|
|
32688
32697
|
*
|
|
32689
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
32690
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
32691
|
-
*
|
|
32692
|
-
*
|
|
32698
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
32699
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
32700
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
32701
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
32702
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
32703
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
32693
32704
|
*
|
|
32694
32705
|
* @alpha
|
|
32695
32706
|
*/
|
|
@@ -32710,10 +32721,12 @@ export declare function useScheduledExportDialogValidity(): IScheduledExportDial
|
|
|
32710
32721
|
/**
|
|
32711
32722
|
* Reads the scheduled-export dialog's edit draft.
|
|
32712
32723
|
*
|
|
32713
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
32714
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
32715
|
-
*
|
|
32716
|
-
*
|
|
32724
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
32725
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
32726
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
32727
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
32728
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
32729
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
32717
32730
|
*
|
|
32718
32731
|
* @alpha
|
|
32719
32732
|
*/
|
|
@@ -32722,10 +32735,12 @@ export declare function useScheduledExportDraft(): IScheduledExportDraftContextV
|
|
|
32722
32735
|
/**
|
|
32723
32736
|
* Reads the scheduled-export dialog's filter and export-parameter model.
|
|
32724
32737
|
*
|
|
32725
|
-
* Throws outside the scheduled-export dialog's state providers, which mount
|
|
32726
|
-
* `useScheduledEmailDialogContext().isLoading` is false
|
|
32727
|
-
*
|
|
32728
|
-
*
|
|
32738
|
+
* Throws outside the scheduled-export dialog's state providers, which mount the state model on
|
|
32739
|
+
* the first render where `useScheduledEmailDialogContext().isLoading` is false and keep it
|
|
32740
|
+
* mounted from then on — a replacement for `ScheduledEmailDialogComponent` must check that flag
|
|
32741
|
+
* before reading state while the dialog first loads. That state is on the ordinary path here: a
|
|
32742
|
+
* widget export renders while its filters load. An automations refresh flips `isLoading` back
|
|
32743
|
+
* without unmounting the model, so the draft survives and this accessor keeps serving through it.
|
|
32729
32744
|
*
|
|
32730
32745
|
* @alpha
|
|
32731
32746
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-dashboard",
|
|
3
|
-
"version": "11.56.0-alpha.
|
|
3
|
+
"version": "11.56.0-alpha.6",
|
|
4
4
|
"description": "GoodData SDK - Dashboard Component",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -60,20 +60,20 @@
|
|
|
60
60
|
"ts-invariant": "0.10.3",
|
|
61
61
|
"tslib": "2.8.1",
|
|
62
62
|
"uuid": "11.1.1",
|
|
63
|
-
"@gooddata/sdk-backend-base": "11.56.0-alpha.
|
|
64
|
-
"@gooddata/sdk-backend-spi": "11.56.0-alpha.
|
|
65
|
-
"@gooddata/sdk-
|
|
66
|
-
"@gooddata/sdk-ui
|
|
67
|
-
"@gooddata/sdk-ui-ext": "11.56.0-alpha.
|
|
68
|
-
"@gooddata/sdk-
|
|
69
|
-
"@gooddata/sdk-ui-filters": "11.56.0-alpha.
|
|
70
|
-
"@gooddata/sdk-ui-
|
|
71
|
-
"@gooddata/sdk-ui-
|
|
72
|
-
"@gooddata/sdk-ui-pivot": "11.56.0-alpha.
|
|
73
|
-
"@gooddata/sdk-ui-
|
|
74
|
-
"@gooddata/sdk-ui-
|
|
75
|
-
"@gooddata/sdk-ui-vis-commons": "11.56.0-alpha.
|
|
76
|
-
"@gooddata/util": "11.56.0-alpha.
|
|
63
|
+
"@gooddata/sdk-backend-base": "11.56.0-alpha.6",
|
|
64
|
+
"@gooddata/sdk-backend-spi": "11.56.0-alpha.6",
|
|
65
|
+
"@gooddata/sdk-model": "11.56.0-alpha.6",
|
|
66
|
+
"@gooddata/sdk-ui": "11.56.0-alpha.6",
|
|
67
|
+
"@gooddata/sdk-ui-ext": "11.56.0-alpha.6",
|
|
68
|
+
"@gooddata/sdk-ui-charts": "11.56.0-alpha.6",
|
|
69
|
+
"@gooddata/sdk-ui-filters": "11.56.0-alpha.6",
|
|
70
|
+
"@gooddata/sdk-ui-kit": "11.56.0-alpha.6",
|
|
71
|
+
"@gooddata/sdk-ui-geo": "11.56.0-alpha.6",
|
|
72
|
+
"@gooddata/sdk-ui-pivot": "11.56.0-alpha.6",
|
|
73
|
+
"@gooddata/sdk-ui-semantic-search": "11.56.0-alpha.6",
|
|
74
|
+
"@gooddata/sdk-ui-theme-provider": "11.56.0-alpha.6",
|
|
75
|
+
"@gooddata/sdk-ui-vis-commons": "11.56.0-alpha.6",
|
|
76
|
+
"@gooddata/util": "11.56.0-alpha.6"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@microsoft/api-documenter": "7.30.10",
|
|
@@ -91,7 +91,6 @@
|
|
|
91
91
|
"@types/react-redux": "7.1.34",
|
|
92
92
|
"@typescript-eslint/eslint-plugin": "8.58.0",
|
|
93
93
|
"@typescript-eslint/parser": "8.58.0",
|
|
94
|
-
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
95
94
|
"dependency-cruiser": "17.3.10",
|
|
96
95
|
"eslint": "^9.39.2",
|
|
97
96
|
"eslint-plugin-headers": "1.3.3",
|
|
@@ -113,15 +112,15 @@
|
|
|
113
112
|
"sass": "1.80.0",
|
|
114
113
|
"stylelint": "16.26.1",
|
|
115
114
|
"svgo": "2.8.3",
|
|
116
|
-
"typescript": "
|
|
115
|
+
"typescript": "7.0.2",
|
|
117
116
|
"vitest": "4.1.8",
|
|
118
117
|
"vitest-dom": "0.1.1",
|
|
119
|
-
"@gooddata/eslint-config": "11.56.0-alpha.
|
|
120
|
-
"@gooddata/i18n-toolkit": "11.56.0-alpha.
|
|
121
|
-
"@gooddata/oxlint-config": "11.56.0-alpha.
|
|
122
|
-
"@gooddata/reference-workspace": "11.56.0-alpha.
|
|
123
|
-
"@gooddata/sdk-backend-mockingbird": "11.56.0-alpha.
|
|
124
|
-
"@gooddata/stylelint-config": "11.56.0-alpha.
|
|
118
|
+
"@gooddata/eslint-config": "11.56.0-alpha.6",
|
|
119
|
+
"@gooddata/i18n-toolkit": "11.56.0-alpha.6",
|
|
120
|
+
"@gooddata/oxlint-config": "11.56.0-alpha.6",
|
|
121
|
+
"@gooddata/reference-workspace": "11.56.0-alpha.6",
|
|
122
|
+
"@gooddata/sdk-backend-mockingbird": "11.56.0-alpha.6",
|
|
123
|
+
"@gooddata/stylelint-config": "11.56.0-alpha.6"
|
|
125
124
|
},
|
|
126
125
|
"peerDependencies": {
|
|
127
126
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -133,9 +132,9 @@
|
|
|
133
132
|
"_phase:validate": "npm run build-dynamic-files && npm run validate",
|
|
134
133
|
"api-extractor": "mkdir -p api && [ -z \"${CI}\" ] && (api-extractor run -l; exit 0) || (api-extractor run)",
|
|
135
134
|
"build": "bash scripts/build.sh",
|
|
136
|
-
"build-check": "
|
|
135
|
+
"build-check": "tsc",
|
|
137
136
|
"build-dynamic-files": "bash scripts/build.sh --genFilesOnly",
|
|
138
|
-
"build-ts": "
|
|
137
|
+
"build-ts": "tsc -p tsconfig.build.json",
|
|
139
138
|
"clean": "../../common/scripts/clean-command-state.sh && rm -rf ci dist esm coverage temp *.log styles/css tsconfig.tsbuildinfo",
|
|
140
139
|
"dep-cruiser": "depcruise --validate .dependency-cruiser.js --output-type err-long src/",
|
|
141
140
|
"format-check": "oxfmt --check .",
|