@onehat/ui 0.3.104 → 0.3.106
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/package.json +1 -1
- package/src/Components/Container/Container.js +70 -50
- package/src/Components/Hoc/withComponent.js +1 -1
- package/src/Components/Hoc/withEditor.js +1 -1
- package/src/Components/Hoc/withFilters.js +10 -7
- package/src/Components/Screens/DataMgt.js +38 -30
- package/src/Components/Screens/Manager.js +5 -5
- package/src/Components/Tab/TabBar.js +21 -13
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect,
|
|
1
|
+
import React, { useState, useEffect, } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Column,
|
|
4
4
|
Row,
|
|
@@ -35,7 +35,7 @@ function Container(props) {
|
|
|
35
35
|
isWestCollapsed,
|
|
36
36
|
setIsWestCollapsed,
|
|
37
37
|
} = props,
|
|
38
|
-
id =
|
|
38
|
+
id = props.id || props.self?.path,
|
|
39
39
|
canResize = CURRENT_MODE === UI_MODE_WEB,
|
|
40
40
|
[isReady, setIsReady] = useState(false),
|
|
41
41
|
[localIsNorthCollapsed, setLocalIsNorthCollapsedRaw] = useState(north ? north.props.startsCollapsed : false),
|
|
@@ -48,35 +48,52 @@ function Container(props) {
|
|
|
48
48
|
[westWidth, setWestWidthRaw] = useState(west ? west.props.w : 0),
|
|
49
49
|
setLocalIsNorthCollapsed = (bool) => {
|
|
50
50
|
setLocalIsNorthCollapsedRaw(bool);
|
|
51
|
-
|
|
51
|
+
|
|
52
|
+
if (id) {
|
|
53
|
+
setSaved(id + '-localIsNorthCollapsed', bool);
|
|
54
|
+
}
|
|
52
55
|
},
|
|
53
56
|
setLocalIsSouthCollapsed = (bool) => {
|
|
54
57
|
setLocalIsSouthCollapsedRaw(bool);
|
|
55
|
-
|
|
58
|
+
if (id) {
|
|
59
|
+
setSaved(id + '-localIsSouthCollapsed', bool);
|
|
60
|
+
}
|
|
56
61
|
},
|
|
57
62
|
setLocalIsEastCollapsed = (bool) => {
|
|
58
63
|
setLocalIsEastCollapsedRaw(bool);
|
|
59
|
-
|
|
64
|
+
if (id) {
|
|
65
|
+
setSaved(id + '-localIsEastCollapsed', bool);
|
|
66
|
+
}
|
|
60
67
|
},
|
|
61
68
|
setLocalIsWestCollapsed = (bool) => {
|
|
62
69
|
setLocalIsWestCollapsedRaw(bool);
|
|
63
|
-
|
|
70
|
+
if (id) {
|
|
71
|
+
setSaved(id + '-localIsWestCollapsed', bool);
|
|
72
|
+
}
|
|
64
73
|
},
|
|
65
74
|
setNorthHeight = (height) => {
|
|
66
75
|
setNorthHeightRaw(height);
|
|
67
|
-
|
|
76
|
+
if (id) {
|
|
77
|
+
setSaved(id + '-northHeight', height);
|
|
78
|
+
}
|
|
68
79
|
},
|
|
69
80
|
setSouthHeight = (height) => {
|
|
70
81
|
setSouthHeightRaw(height);
|
|
71
|
-
|
|
82
|
+
if (id) {
|
|
83
|
+
setSaved(id + '-southHeight', height);
|
|
84
|
+
}
|
|
72
85
|
},
|
|
73
86
|
setEastWidth = (width) => {
|
|
74
87
|
setEastWidthRaw(width);
|
|
75
|
-
|
|
88
|
+
if (id) {
|
|
89
|
+
setSaved(id + '-eastWidth', width);
|
|
90
|
+
}
|
|
76
91
|
},
|
|
77
92
|
setWestWidth = (width) => {
|
|
78
93
|
setWestWidthRaw(width);
|
|
79
|
-
|
|
94
|
+
if (id) {
|
|
95
|
+
setSaved(id + '-westWidth', width);
|
|
96
|
+
}
|
|
80
97
|
},
|
|
81
98
|
onNorthResize = (delta) => {
|
|
82
99
|
const newHeight = northHeight + delta;
|
|
@@ -98,53 +115,56 @@ function Container(props) {
|
|
|
98
115
|
useEffect(() => {
|
|
99
116
|
// Restore saved settings
|
|
100
117
|
(async () => {
|
|
101
|
-
let key, val;
|
|
102
|
-
key = id + '-localIsNorthCollapsed';
|
|
103
|
-
val = await getSaved(key);
|
|
104
|
-
if (!_.isNil(val)) {
|
|
105
|
-
setLocalIsNorthCollapsedRaw(val);
|
|
106
|
-
}
|
|
107
118
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
119
|
+
if (id) {
|
|
120
|
+
let key, val;
|
|
121
|
+
key = id + '-localIsNorthCollapsed';
|
|
122
|
+
val = await getSaved(key);
|
|
123
|
+
if (!_.isNil(val)) {
|
|
124
|
+
setLocalIsNorthCollapsedRaw(val);
|
|
125
|
+
}
|
|
113
126
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
127
|
+
key = id + '-localIsSouthCollapsed';
|
|
128
|
+
val = await getSaved(key);
|
|
129
|
+
if (!_.isNil(val)) {
|
|
130
|
+
setLocalIsSouthCollapsedRaw(val);
|
|
131
|
+
}
|
|
119
132
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
133
|
+
key = id + '-localIsEastCollapsed';
|
|
134
|
+
val = await getSaved(key);
|
|
135
|
+
if (!_.isNil(val)) {
|
|
136
|
+
setLocalIsEastCollapsedRaw(val);
|
|
137
|
+
}
|
|
125
138
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
139
|
+
key = id + '-localIsWestCollapsed';
|
|
140
|
+
val = await getSaved(key);
|
|
141
|
+
if (!_.isNil(val)) {
|
|
142
|
+
setLocalIsWestCollapsedRaw(val);
|
|
143
|
+
}
|
|
131
144
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
145
|
+
key = id + '-northHeight';
|
|
146
|
+
val = await getSaved(key);
|
|
147
|
+
if (!_.isNil(val)) {
|
|
148
|
+
setNorthHeightRaw(val);
|
|
149
|
+
}
|
|
137
150
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
151
|
+
key = id + '-southHeight';
|
|
152
|
+
val = await getSaved(key);
|
|
153
|
+
if (!_.isNil(val)) {
|
|
154
|
+
setSouthHeightRaw(val);
|
|
155
|
+
}
|
|
143
156
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
157
|
+
key = id + '-eastWidth';
|
|
158
|
+
val = await getSaved(key);
|
|
159
|
+
if (!_.isNil(val)) {
|
|
160
|
+
setEastWidthRaw(val);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
key = id + '-westWidth';
|
|
164
|
+
val = await getSaved(key);
|
|
165
|
+
if (!_.isNil(val)) {
|
|
166
|
+
setWestWidthRaw(val);
|
|
167
|
+
}
|
|
148
168
|
}
|
|
149
169
|
|
|
150
170
|
if (!isReady) {
|
|
@@ -20,7 +20,7 @@ export default function withComponent(WrappedComponent) {
|
|
|
20
20
|
selfRef = useRef({
|
|
21
21
|
parent,
|
|
22
22
|
reference,
|
|
23
|
-
path: (parent?.path || '' ) + '/' + reference,
|
|
23
|
+
path: reference ? (parent?.path || '' ) + '/' + reference : null,
|
|
24
24
|
hasChild: (childRef) => {
|
|
25
25
|
const {
|
|
26
26
|
reference,
|
|
@@ -87,7 +87,7 @@ export default function withEditor(WrappedComponent, isTree = false) {
|
|
|
87
87
|
getNewEntityDisplayValue = () => {
|
|
88
88
|
return newEntityDisplayValueRef.current;
|
|
89
89
|
},
|
|
90
|
-
onAdd = async (values) => {
|
|
90
|
+
onAdd = async (e, values) => {
|
|
91
91
|
const defaultValues = Repository.getSchema().getDefaultValues();
|
|
92
92
|
let addValues = values || _.clone(defaultValues);
|
|
93
93
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { useState, useEffect,
|
|
1
|
+
import { useState, useEffect, useRef, } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Column,
|
|
4
4
|
Modal,
|
|
5
5
|
Row,
|
|
6
|
+
ScrollView,
|
|
6
7
|
Text,
|
|
7
8
|
} from 'native-base';
|
|
8
9
|
import {
|
|
@@ -62,7 +63,7 @@ export default function withFilters(WrappedComponent) {
|
|
|
62
63
|
defaultFilters: modelDefaultFilters,
|
|
63
64
|
ancillaryFilters: modelAncillaryFilters,
|
|
64
65
|
} = Repository.getSchema().model,
|
|
65
|
-
id = props.id || props.path
|
|
66
|
+
id = props.id || props.self?.path,
|
|
66
67
|
|
|
67
68
|
// determine the starting filters
|
|
68
69
|
startingFilters = !_.isEmpty(customFilters) ? customFilters : // custom filters override component filters
|
|
@@ -188,7 +189,7 @@ export default function withFilters(WrappedComponent) {
|
|
|
188
189
|
}
|
|
189
190
|
setSlots(newSlots);
|
|
190
191
|
}
|
|
191
|
-
if (save) {
|
|
192
|
+
if (save && id) {
|
|
192
193
|
setSaved(id + '-filters', filters);
|
|
193
194
|
}
|
|
194
195
|
},
|
|
@@ -325,9 +326,9 @@ export default function withFilters(WrappedComponent) {
|
|
|
325
326
|
const newRepoFilters = [];
|
|
326
327
|
let filtersToUse = filters
|
|
327
328
|
|
|
328
|
-
if (!isReady) {
|
|
329
|
+
if (!isReady && id && !isUsingCustomFilters) { // can't save custom filters bc we can't save JS fns in Repository (e.g. getRepoFilters)
|
|
329
330
|
const savedFilters = await getSaved(id + '-filters');
|
|
330
|
-
if (!_.isEmpty(savedFilters)
|
|
331
|
+
if (!_.isEmpty(savedFilters)) {
|
|
331
332
|
// load saved filters
|
|
332
333
|
filtersToUse = savedFilters;
|
|
333
334
|
setFilters(savedFilters, true, false); // false to skip save
|
|
@@ -411,8 +412,10 @@ export default function withFilters(WrappedComponent) {
|
|
|
411
412
|
hasFilters = !!renderedFilters.length;
|
|
412
413
|
topToolbar = <Toolbar>
|
|
413
414
|
<Row flex={1} alignItems="center">
|
|
414
|
-
<
|
|
415
|
-
|
|
415
|
+
<ScrollView horizontal={true} contentContainerStyle={{ alignItems: 'center' }}>
|
|
416
|
+
<Text fontStyle="italic" pr={2} userSelect="none">Filters:{hasFilters ? '' : ' None'}</Text>
|
|
417
|
+
{renderedFilters}
|
|
418
|
+
</ScrollView>
|
|
416
419
|
</Row>
|
|
417
420
|
<Row flex={hasFilters ? null : 1} alignItems="center" alignSelf="flex-end">
|
|
418
421
|
<IconButton
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect, useMemo,
|
|
1
|
+
import React, { useState, useEffect, useMemo, } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
HORIZONTAL,
|
|
4
4
|
VERTICAL,
|
|
@@ -42,7 +42,7 @@ export default function DataMgt(props) {
|
|
|
42
42
|
} = props;
|
|
43
43
|
|
|
44
44
|
const
|
|
45
|
-
id =
|
|
45
|
+
id = props.id || props.self?.path,
|
|
46
46
|
// westRef = useRef(),
|
|
47
47
|
[isReady, setIsReady] = useState(false),
|
|
48
48
|
[isWestCollapsed, setIsWestCollapsedRaw] = useState(westStartsCollapsed),
|
|
@@ -52,15 +52,21 @@ export default function DataMgt(props) {
|
|
|
52
52
|
[centerSelected, setCenterSelected] = useState(),
|
|
53
53
|
setIsWestCollapsed = (bool) => {
|
|
54
54
|
setIsWestCollapsedRaw(bool);
|
|
55
|
-
|
|
55
|
+
if (id) {
|
|
56
|
+
setSaved(id + '-isWestCollapsed', bool);
|
|
57
|
+
}
|
|
56
58
|
},
|
|
57
59
|
setIsEastCollapsed = (bool) => {
|
|
58
60
|
setIsEastCollapsedRaw(bool);
|
|
59
|
-
|
|
61
|
+
if (id) {
|
|
62
|
+
setSaved(id + '-isEastCollapsed', bool);
|
|
63
|
+
}
|
|
60
64
|
},
|
|
61
65
|
setIsFullscreen = (bool) => {
|
|
62
66
|
setIsFullscreenRaw(bool);
|
|
63
|
-
|
|
67
|
+
if (id) {
|
|
68
|
+
setSaved(id + '-isFullscreen', isFullscreen);
|
|
69
|
+
}
|
|
64
70
|
},
|
|
65
71
|
setWestSelected = (selected) => {
|
|
66
72
|
setWestSelectedRaw(selected);
|
|
@@ -110,35 +116,37 @@ export default function DataMgt(props) {
|
|
|
110
116
|
// Restore saved settings
|
|
111
117
|
(async () => {
|
|
112
118
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
+
if (id) {
|
|
120
|
+
let key, val;
|
|
121
|
+
key = id + '-isWestCollapsed';
|
|
122
|
+
val = await getSaved(key);
|
|
123
|
+
if (!_.isNil(val)) {
|
|
124
|
+
setIsWestCollapsedRaw(val);
|
|
125
|
+
}
|
|
119
126
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
key = id + '-isEastCollapsed';
|
|
128
|
+
val = await getSaved(key);
|
|
129
|
+
if (!_.isNil(val)) {
|
|
130
|
+
setIsEastCollapsedRaw(val);
|
|
131
|
+
}
|
|
125
132
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
133
|
+
key = id + '-isFullscreen';
|
|
134
|
+
val = await getSaved(key);
|
|
135
|
+
if (!_.isNil(val)) {
|
|
136
|
+
setIsFullscreenRaw(val);
|
|
137
|
+
}
|
|
131
138
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
139
|
+
key = id + '-westSelected';
|
|
140
|
+
val = await getSaved(key);
|
|
141
|
+
if (!_.isNil(val)) {
|
|
142
|
+
setWestSelectedRaw(val);
|
|
143
|
+
}
|
|
137
144
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
145
|
+
key = id + '-centerSelected';
|
|
146
|
+
val = await getSaved(key);
|
|
147
|
+
if (!_.isNil(val)) {
|
|
148
|
+
setCenterSelectedRaw(val);
|
|
149
|
+
}
|
|
142
150
|
}
|
|
143
151
|
|
|
144
152
|
if (!isReady) {
|
|
@@ -22,9 +22,9 @@ function ManagerScreen(props) {
|
|
|
22
22
|
title,
|
|
23
23
|
sideModeComponent,
|
|
24
24
|
fullModeComponent,
|
|
25
|
-
reference,
|
|
26
25
|
} = props,
|
|
27
26
|
styles = UiGlobals.styles,
|
|
27
|
+
id = props.id || props.self?.path,
|
|
28
28
|
[isReady, setIsReady] = useState(false),
|
|
29
29
|
[mode, setModeRaw] = useState(MODE_FULL),
|
|
30
30
|
setMode = (newMode) => {
|
|
@@ -32,8 +32,8 @@ function ManagerScreen(props) {
|
|
|
32
32
|
return; // no change
|
|
33
33
|
}
|
|
34
34
|
setModeRaw(newMode);
|
|
35
|
-
if (
|
|
36
|
-
setSaved(
|
|
35
|
+
if (id) {
|
|
36
|
+
setSaved(id + '-mode', newMode);
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
|
|
@@ -41,9 +41,9 @@ function ManagerScreen(props) {
|
|
|
41
41
|
// Restore saved settings
|
|
42
42
|
(async () => {
|
|
43
43
|
|
|
44
|
-
if (
|
|
44
|
+
if (id) {
|
|
45
45
|
const
|
|
46
|
-
key =
|
|
46
|
+
key = id + '-mode',
|
|
47
47
|
val = await getSaved(key);
|
|
48
48
|
if (!_.isNil(val)) {
|
|
49
49
|
setMode(val);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect,
|
|
1
|
+
import React, { useState, useEffect, } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Button,
|
|
4
4
|
Column,
|
|
@@ -43,7 +43,7 @@ function TabBar(props) {
|
|
|
43
43
|
...propsToPass
|
|
44
44
|
} = props,
|
|
45
45
|
styles = UiGlobals.styles,
|
|
46
|
-
id =
|
|
46
|
+
id = props.id || props.self?.path,
|
|
47
47
|
useLocal = _.isNil(currentTabIx),
|
|
48
48
|
[isReady, setIsReady] = useState(false),
|
|
49
49
|
[currentTabIxLocal, setCurrentTabIxLocal] = useState(initialTabIx),
|
|
@@ -53,7 +53,9 @@ function TabBar(props) {
|
|
|
53
53
|
if (onChangeIsCollapsed) {
|
|
54
54
|
onChangeIsCollapsed(isCollapsed);
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
if (id) {
|
|
57
|
+
setSaved(id + '-isCollapsed', isCollapsed);
|
|
58
|
+
}
|
|
57
59
|
},
|
|
58
60
|
getCurrentTab = () => {
|
|
59
61
|
if (useLocal) {
|
|
@@ -70,7 +72,10 @@ function TabBar(props) {
|
|
|
70
72
|
}
|
|
71
73
|
if (useLocal) {
|
|
72
74
|
setCurrentTabIxLocal(ix);
|
|
73
|
-
|
|
75
|
+
|
|
76
|
+
if (id) {
|
|
77
|
+
setSaved(id + '-currentTabIx', ix);
|
|
78
|
+
}
|
|
74
79
|
}
|
|
75
80
|
if (onChangeCurrentTab) {
|
|
76
81
|
onChangeCurrentTab(ix);
|
|
@@ -361,18 +366,21 @@ function TabBar(props) {
|
|
|
361
366
|
useEffect(() => {
|
|
362
367
|
// Restore saved settings
|
|
363
368
|
(async () => {
|
|
364
|
-
let key, val;
|
|
365
|
-
key = id + '-isCollapsed';
|
|
366
|
-
val = await getSaved(key);
|
|
367
|
-
if (!_.isNil(val)) {
|
|
368
|
-
setIsCollapsed(val);
|
|
369
|
-
}
|
|
370
369
|
|
|
371
|
-
if (
|
|
372
|
-
key
|
|
370
|
+
if (id) {
|
|
371
|
+
let key, val;
|
|
372
|
+
key = id + '-isCollapsed';
|
|
373
373
|
val = await getSaved(key);
|
|
374
374
|
if (!_.isNil(val)) {
|
|
375
|
-
|
|
375
|
+
setIsCollapsed(val);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
if (useLocal) {
|
|
379
|
+
key = id + '-currentTabIx';
|
|
380
|
+
val = await getSaved(key);
|
|
381
|
+
if (!_.isNil(val)) {
|
|
382
|
+
setCurrentTab(val);
|
|
383
|
+
}
|
|
376
384
|
}
|
|
377
385
|
}
|
|
378
386
|
|