@itwin/appui-react 3.4.5 → 3.4.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/CHANGELOG.md +8 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +25 -19
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +25 -19
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/package.json +32 -32
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# Change Log - @itwin/appui-react
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Tue, 22 Nov 2022 14:24:19 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 3.4.6
|
|
6
|
+
Tue, 22 Nov 2022 14:24:19 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- Maintain widget panel location after frontstage is changed.
|
|
4
11
|
|
|
5
12
|
## 3.4.5
|
|
6
13
|
Thu, 17 Nov 2022 21:32:49 GMT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -729,9 +729,9 @@ function packNineZoneState(state) {
|
|
|
729
729
|
return packed;
|
|
730
730
|
}
|
|
731
731
|
exports.packNineZoneState = packNineZoneState;
|
|
732
|
-
// TODO: clean-up of saved widgets.
|
|
733
732
|
// istanbul ignore next
|
|
734
|
-
function packSavedWidgets(
|
|
733
|
+
function packSavedWidgets(frontstageDef) {
|
|
734
|
+
let savedWidgets = [];
|
|
735
735
|
for (const widgetDef of frontstageDef.widgetDefs) {
|
|
736
736
|
const id = widgetDef.id;
|
|
737
737
|
const initialWidget = {
|
|
@@ -747,17 +747,25 @@ function packSavedWidgets(savedWidgets, frontstageDef) {
|
|
|
747
747
|
});
|
|
748
748
|
if (widget === initialWidget)
|
|
749
749
|
continue;
|
|
750
|
-
savedWidgets
|
|
751
|
-
|
|
752
|
-
|
|
750
|
+
savedWidgets.push(widget);
|
|
751
|
+
}
|
|
752
|
+
// Add previously saved widgets.
|
|
753
|
+
const prevSavedWidgets = frontstageDef.savedWidgetDefs || [];
|
|
754
|
+
for (const prevWidget of prevSavedWidgets) {
|
|
755
|
+
if (savedWidgets.find((w) => w.id === prevWidget.id))
|
|
756
|
+
continue;
|
|
757
|
+
savedWidgets.push(prevWidget);
|
|
753
758
|
}
|
|
759
|
+
// Limit number of saved widgets.
|
|
760
|
+
const maxWidgets = 100;
|
|
761
|
+
if (savedWidgets.length > maxWidgets)
|
|
762
|
+
savedWidgets = savedWidgets.slice(0, maxWidgets);
|
|
754
763
|
return savedWidgets;
|
|
755
764
|
}
|
|
756
765
|
// istanbul ignore next
|
|
757
|
-
function restoreSavedWidgets(
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
const savedWidget = savedWidgets[i];
|
|
766
|
+
function restoreSavedWidgets(frontstage) {
|
|
767
|
+
const savedWidgets = frontstage.savedWidgetDefs || [];
|
|
768
|
+
for (const savedWidget of savedWidgets) {
|
|
761
769
|
const widgetId = savedWidget.id;
|
|
762
770
|
const widgetDef = frontstage.findWidgetDef(widgetId);
|
|
763
771
|
if (!widgetDef)
|
|
@@ -768,11 +776,7 @@ function restoreSavedWidgets(savedWidgets, frontstage) {
|
|
|
768
776
|
if (savedWidget.popoutBounds) {
|
|
769
777
|
widgetDef.popoutBounds = core_react_1.Rectangle.create(savedWidget.popoutBounds);
|
|
770
778
|
}
|
|
771
|
-
savedWidgets = (0, immer_1.default)(savedWidgets, (draft) => {
|
|
772
|
-
draft.splice(i, 1);
|
|
773
|
-
});
|
|
774
779
|
}
|
|
775
|
-
return savedWidgets;
|
|
776
780
|
}
|
|
777
781
|
/** @internal */
|
|
778
782
|
function isPanelCollapsed(zoneStates, panelStates) {
|
|
@@ -988,12 +992,12 @@ function useSavedFrontstageState(frontstageDef) {
|
|
|
988
992
|
const setting = settingResult.setting;
|
|
989
993
|
if (setting.version >= version && setting.stateVersion >= stateVersion) {
|
|
990
994
|
const restored = restoreNineZoneState(frontstageDef, setting.nineZone);
|
|
991
|
-
|
|
995
|
+
frontstageDef.savedWidgetDefs = setting.widgets;
|
|
996
|
+
restoreSavedWidgets(frontstageDef);
|
|
992
997
|
let state = addMissingWidgets(frontstageDef, restored);
|
|
993
998
|
state = hideWidgets(state, frontstageDef);
|
|
994
999
|
state = processPopoutWidgets(state, frontstageDef);
|
|
995
1000
|
frontstageDef.nineZoneState = state;
|
|
996
|
-
frontstageDef.savedWidgetDefs = savedWidgets;
|
|
997
1001
|
return;
|
|
998
1002
|
}
|
|
999
1003
|
}
|
|
@@ -1008,14 +1012,16 @@ function useSaveFrontstageSettings(frontstageDef) {
|
|
|
1008
1012
|
const nineZone = useNineZoneState(frontstageDef);
|
|
1009
1013
|
const uiSettingsStorage = (0, useUiStateStorage_1.useUiStateStorageHandler)();
|
|
1010
1014
|
const saveSetting = React.useMemo(() => {
|
|
1011
|
-
return debounce(async (frontstage, state
|
|
1015
|
+
return debounce(async (frontstage, state) => {
|
|
1012
1016
|
const id = frontstage.id;
|
|
1017
|
+
const widgets = packSavedWidgets(frontstage);
|
|
1018
|
+
frontstage.savedWidgetDefs = widgets;
|
|
1013
1019
|
const setting = {
|
|
1014
1020
|
id,
|
|
1015
1021
|
version: frontstage.version,
|
|
1016
1022
|
stateVersion,
|
|
1017
1023
|
nineZone: packNineZoneState(state),
|
|
1018
|
-
widgets
|
|
1024
|
+
widgets,
|
|
1019
1025
|
};
|
|
1020
1026
|
await uiSettingsStorage.saveSetting(exports.FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id), setting);
|
|
1021
1027
|
}, 1000);
|
|
@@ -1028,8 +1034,7 @@ function useSaveFrontstageSettings(frontstageDef) {
|
|
|
1028
1034
|
React.useEffect(() => {
|
|
1029
1035
|
if (!nineZone || nineZone.draggedTab)
|
|
1030
1036
|
return;
|
|
1031
|
-
|
|
1032
|
-
saveSetting(frontstageDef, nineZone, savedWidgets);
|
|
1037
|
+
saveSetting(frontstageDef, nineZone);
|
|
1033
1038
|
}, [frontstageDef, nineZone, saveSetting]);
|
|
1034
1039
|
}
|
|
1035
1040
|
exports.useSaveFrontstageSettings = useSaveFrontstageSettings;
|
|
@@ -1161,6 +1166,7 @@ function useItemsManager(frontstageDef) {
|
|
|
1161
1166
|
const refreshNineZoneState = (def) => {
|
|
1162
1167
|
// Fired for both registered/unregistered. Update definitions and remove/add missing widgets.
|
|
1163
1168
|
def.updateWidgetDefs();
|
|
1169
|
+
restoreSavedWidgets(def);
|
|
1164
1170
|
let state = def.nineZoneState;
|
|
1165
1171
|
if (!state)
|
|
1166
1172
|
return;
|