cozy-bar 30.0.0 → 31.0.0
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/components/AppsMenu/AppsMenuContent.js +1 -10
- package/dist/components/AppsMenu/components/AppItem.js +8 -2
- package/dist/components/AppsMenu/index.js +10 -1
- package/dist/components/Bar.js +27 -50
- package/dist/components/Bar.spec.jsx +18 -37
- package/dist/components/BarComponent.js +1 -32
- package/dist/components/UserMenu/UserMenuContent.js +1 -8
- package/dist/components/UserMenu/index.js +4 -1
- package/dist/components/helpers.js +40 -0
- package/dist/components/utils/HelpLink.js +8 -10
- package/dist/index.js +1 -8
- package/dist/index.spec.jsx +12 -0
- package/dist/queries.js +21 -0
- package/package.json +2 -10
- package/dist/config/persistWhitelist.json +0 -4
- package/dist/lib/exceptions.js +0 -98
- package/dist/lib/realtime.js +0 -72
- package/dist/lib/reducers/apps.js +0 -285
- package/dist/lib/reducers/apps.spec.js +0 -51
- package/dist/lib/reducers/context.js +0 -109
- package/dist/lib/reducers/index.js +0 -50
- package/dist/lib/reducers/settings.js +0 -173
- package/dist/lib/stack-client.js +0 -356
- package/dist/lib/stack.js +0 -111
- package/dist/lib/store/index.js +0 -45
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _reactRedux = require("react-redux");
|
|
10
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
10
|
var _cozyFlags = _interopRequireDefault(require("cozy-flags"));
|
|
12
11
|
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
@@ -16,7 +15,6 @@ var _ShortcutItem = _interopRequireDefault(require("./components/ShortcutItem"))
|
|
|
16
15
|
var _EntrypointItem = _interopRequireDefault(require("./components/EntrypointItem"));
|
|
17
16
|
var _AppItemPlaceholder = _interopRequireDefault(require("./components/AppItemPlaceholder"));
|
|
18
17
|
var _useI18n2 = _interopRequireDefault(require("../useI18n"));
|
|
19
|
-
var _reducers = require("../../lib/reducers");
|
|
20
18
|
var _helper = require("./helper");
|
|
21
19
|
var styles = {
|
|
22
20
|
"apps-menu-grid": "apps-menu-grid",
|
|
@@ -85,11 +83,4 @@ AppsMenuContent.propTypes = {
|
|
|
85
83
|
}),
|
|
86
84
|
closeMenu: _propTypes.default.func
|
|
87
85
|
};
|
|
88
|
-
var
|
|
89
|
-
return {
|
|
90
|
-
isFetchingApps: (0, _reducers.isFetchingApps)(state),
|
|
91
|
-
apps: (0, _reducers.getApps)(state),
|
|
92
|
-
homeApp: (0, _reducers.getHomeApp)(state)
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps)(AppsMenuContent);
|
|
86
|
+
var _default = exports.default = AppsMenuContent;
|
|
@@ -8,6 +8,7 @@ exports.default = exports.AppItem = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _applications = require("cozy-client/dist/models/applications");
|
|
11
|
+
var _cozyClient = require("cozy-client");
|
|
11
12
|
var _styles = require("cozy-ui/transpiled/react/styles");
|
|
12
13
|
var _Buttons = _interopRequireDefault(require("cozy-ui/transpiled/react/Buttons"));
|
|
13
14
|
var _AppIcon = _interopRequireDefault(require("cozy-ui-plus/dist/AppIcon"));
|
|
@@ -15,7 +16,6 @@ var _AppLinker = _interopRequireDefault(require("cozy-ui-plus/dist/AppLinker"));
|
|
|
15
16
|
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
16
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
18
|
var _proptypes = require("../../../proptypes");
|
|
18
|
-
var _stack = _interopRequireDefault(require("../../../lib/stack"));
|
|
19
19
|
var styles = {
|
|
20
20
|
"apps-menu-grid": "apps-menu-grid",
|
|
21
21
|
"apps-menu-grid-item-wrapper": "apps-menu-grid-item-wrapper",
|
|
@@ -34,6 +34,12 @@ var useStyles = (0, _styles.makeStyles)(function () {
|
|
|
34
34
|
var AppItem = exports.AppItem = function AppItem(_ref) {
|
|
35
35
|
var app = _ref.app,
|
|
36
36
|
onAppSwitch = _ref.onAppSwitch;
|
|
37
|
+
var client = (0, _cozyClient.useClient)();
|
|
38
|
+
var cozyURL = new URL(client.getStackClient().uri);
|
|
39
|
+
var iconProps = {
|
|
40
|
+
domain: cozyURL.host,
|
|
41
|
+
secure: cozyURL.protocol === 'https:'
|
|
42
|
+
};
|
|
37
43
|
var appName = (0, _applications.getAppDisplayName)(app);
|
|
38
44
|
var classes = useStyles();
|
|
39
45
|
return /*#__PURE__*/_react.default.createElement(_AppLinker.default, {
|
|
@@ -59,7 +65,7 @@ var AppItem = exports.AppItem = function AppItem(_ref) {
|
|
|
59
65
|
}, /*#__PURE__*/_react.default.createElement(_AppIcon.default, (0, _extends2.default)({
|
|
60
66
|
app: app,
|
|
61
67
|
key: app.slug
|
|
62
|
-
},
|
|
68
|
+
}, iconProps))), /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
63
69
|
noWrap: true,
|
|
64
70
|
align: "center",
|
|
65
71
|
className: "u-w-100 ".concat(classes.text)
|
|
@@ -27,7 +27,10 @@ var useStyles = (0, _styles.makeStyles)({
|
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
var AppsMenu = function AppsMenu(_ref) {
|
|
30
|
-
var shortcuts = _ref.shortcuts
|
|
30
|
+
var shortcuts = _ref.shortcuts,
|
|
31
|
+
apps = _ref.apps,
|
|
32
|
+
homeApp = _ref.homeApp,
|
|
33
|
+
isFetchingApps = _ref.isFetchingApps;
|
|
31
34
|
var _useState = (0, _react.useState)(false),
|
|
32
35
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
33
36
|
isOpen = _useState2[0],
|
|
@@ -53,6 +56,9 @@ var AppsMenu = function AppsMenu(_ref) {
|
|
|
53
56
|
open: isOpen,
|
|
54
57
|
onClose: toggleMenu,
|
|
55
58
|
content: /*#__PURE__*/_react.default.createElement(_AppsMenuContent.default, {
|
|
59
|
+
apps: apps,
|
|
60
|
+
homeApp: homeApp,
|
|
61
|
+
isFetchingApps: isFetchingApps,
|
|
56
62
|
shortcuts: shortcuts,
|
|
57
63
|
closeMenu: toggleMenu
|
|
58
64
|
}),
|
|
@@ -82,6 +88,9 @@ var AppsMenu = function AppsMenu(_ref) {
|
|
|
82
88
|
paper: 'u-bdrs-7'
|
|
83
89
|
}
|
|
84
90
|
}, /*#__PURE__*/_react.default.createElement(_AppsMenuContent.default, {
|
|
91
|
+
apps: apps,
|
|
92
|
+
homeApp: homeApp,
|
|
93
|
+
isFetchingApps: isFetchingApps,
|
|
85
94
|
shortcuts: shortcuts,
|
|
86
95
|
closeMenu: toggleMenu
|
|
87
96
|
})));
|
package/dist/components/Bar.js
CHANGED
|
@@ -4,10 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.default = exports.Bar = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _reactRedux = require("react-redux");
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _Grid = _interopRequireDefault(require("cozy-ui/transpiled/react/Grid"));
|
|
13
13
|
var _Divider = _interopRequireDefault(require("cozy-ui/transpiled/react/Divider"));
|
|
@@ -21,18 +21,18 @@ var _UserMenu = _interopRequireDefault(require("./UserMenu"));
|
|
|
21
21
|
var _ButtonCozyHome = _interopRequireDefault(require("./utils/ButtonCozyHome"));
|
|
22
22
|
var _SearchButton = _interopRequireDefault(require("./utils/SearchButton"));
|
|
23
23
|
var _HelpLink = _interopRequireDefault(require("./utils/HelpLink"));
|
|
24
|
-
var _reducers = require("../lib/reducers");
|
|
25
24
|
var _cozyClient = require("cozy-client");
|
|
26
25
|
var _cozySearch = require("cozy-search");
|
|
27
26
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
+
var _queries = require("../queries");
|
|
28
|
+
var _helpers = require("./helpers");
|
|
28
29
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
29
30
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
31
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
32
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
30
33
|
var Bar = exports.Bar = function Bar(_ref) {
|
|
31
34
|
var _componentsProps$Wrap;
|
|
32
|
-
var
|
|
33
|
-
fetchSettingsData = _ref.fetchSettingsData,
|
|
34
|
-
fetchApps = _ref.fetchApps,
|
|
35
|
-
isPublic = _ref.isPublic,
|
|
35
|
+
var isPublic = _ref.isPublic,
|
|
36
36
|
barLeft = _ref.barLeft,
|
|
37
37
|
barRight = _ref.barRight,
|
|
38
38
|
barCenter = _ref.barCenter,
|
|
@@ -44,33 +44,23 @@ var Bar = exports.Bar = function Bar(_ref) {
|
|
|
44
44
|
searchOptions = _ref.searchOptions,
|
|
45
45
|
isInvertedTheme = _ref.isInvertedTheme,
|
|
46
46
|
appSlug = _ref.appSlug,
|
|
47
|
-
hasFetchedApps = _ref.hasFetchedApps,
|
|
48
|
-
homeApp = _ref.homeApp,
|
|
49
47
|
componentsProps = _ref.componentsProps;
|
|
50
|
-
var client = (0, _cozyClient.useClient)();
|
|
51
48
|
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
|
|
52
49
|
isMobile = _useBreakpoints.isMobile;
|
|
53
50
|
var shortcuts = (0, _cozyClient.useFetchHomeShortcuts)();
|
|
51
|
+
var appsQuery = (0, _queries.buildAppsQuery)();
|
|
52
|
+
var appsResult = (0, _cozyClient.useQuery)(appsQuery.definition, _objectSpread(_objectSpread({}, appsQuery.options), {}, {
|
|
53
|
+
enabled: !isPublic
|
|
54
|
+
}));
|
|
55
|
+
var rawApps = appsResult.data || [];
|
|
56
|
+
var isFetchingApps = appsResult.fetchStatus === 'loading';
|
|
57
|
+
var _useMemo = (0, _react.useMemo)(function () {
|
|
58
|
+
return (0, _helpers.getAppsData)(rawApps, appSlug);
|
|
59
|
+
}, [rawApps, appSlug]),
|
|
60
|
+
apps = _useMemo.apps,
|
|
61
|
+
homeApp = _useMemo.homeApp,
|
|
62
|
+
isSettingsAppInstalled = _useMemo.isSettingsAppInstalled;
|
|
54
63
|
var isSearchEnabled = searchOptions.enabled && !isPublic;
|
|
55
|
-
var fetchInitialData = (0, _react.useCallback)(function () {
|
|
56
|
-
if (!isPublic) {
|
|
57
|
-
fetchContext();
|
|
58
|
-
fetchSettingsData(false);
|
|
59
|
-
if (!hasFetchedApps) {
|
|
60
|
-
fetchApps();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}, [fetchApps, fetchContext, fetchSettingsData, hasFetchedApps, isPublic]);
|
|
64
|
-
(0, _react.useEffect)(function () {
|
|
65
|
-
var handleTokenRefreshed = function handleTokenRefreshed() {
|
|
66
|
-
fetchInitialData();
|
|
67
|
-
};
|
|
68
|
-
fetchInitialData();
|
|
69
|
-
client.on('tokenRefreshed', handleTokenRefreshed);
|
|
70
|
-
return function () {
|
|
71
|
-
client.removeListener('tokenRefreshed', handleTokenRefreshed);
|
|
72
|
-
};
|
|
73
|
-
}, [client, fetchInitialData]);
|
|
74
64
|
var renderCenter = function renderCenter() {
|
|
75
65
|
return null;
|
|
76
66
|
};
|
|
@@ -113,9 +103,13 @@ var Bar = exports.Bar = function Bar(_ref) {
|
|
|
113
103
|
// to remove this special case
|
|
114
104
|
if (appSlug === 'drive' && isMobile && barSearch) return null;
|
|
115
105
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_HelpLink.default, null), /*#__PURE__*/_react.default.createElement(_AppsMenu.default, {
|
|
106
|
+
apps: apps,
|
|
107
|
+
homeApp: homeApp,
|
|
108
|
+
isFetchingApps: isFetchingApps,
|
|
116
109
|
shortcuts: shortcuts
|
|
117
110
|
}), /*#__PURE__*/_react.default.createElement(_UserMenu.default, {
|
|
118
|
-
onLogOut: onLogOut
|
|
111
|
+
onLogOut: onLogOut,
|
|
112
|
+
isSettingsAppInstalled: isSettingsAppInstalled
|
|
119
113
|
}));
|
|
120
114
|
};
|
|
121
115
|
var renderSearch = function renderSearch() {
|
|
@@ -132,6 +126,8 @@ var Bar = exports.Bar = function Bar(_ref) {
|
|
|
132
126
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, componentsProps === null || componentsProps === void 0 ? void 0 : componentsProps.Wrapper, {
|
|
133
127
|
className: (0, _classnames.default)('coz-bar-wrapper', componentsProps === null || componentsProps === void 0 || (_componentsProps$Wrap = componentsProps.Wrapper) === null || _componentsProps$Wrap === void 0 ? void 0 : _componentsProps$Wrap.className),
|
|
134
128
|
"data-testid": "coz-bar-wrapper"
|
|
129
|
+
}), !isPublic && /*#__PURE__*/_react.default.createElement(_cozyClient.RealTimeQueries, {
|
|
130
|
+
doctype: "io.cozy.apps"
|
|
135
131
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
136
132
|
id: "cozy-bar-modal-dom-place"
|
|
137
133
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -152,23 +148,4 @@ Bar.propTypes = {
|
|
|
152
148
|
})
|
|
153
149
|
})
|
|
154
150
|
};
|
|
155
|
-
var
|
|
156
|
-
return {
|
|
157
|
-
hasFetchedApps: (0, _reducers.hasFetched)(state),
|
|
158
|
-
homeApp: (0, _reducers.getHomeApp)(state)
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
var mapDispatchToProps = exports.mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
162
|
-
return {
|
|
163
|
-
fetchApps: function fetchApps() {
|
|
164
|
-
return dispatch((0, _reducers.fetchApps)());
|
|
165
|
-
},
|
|
166
|
-
fetchContext: function fetchContext() {
|
|
167
|
-
return dispatch((0, _reducers.fetchContext)());
|
|
168
|
-
},
|
|
169
|
-
fetchSettingsData: function fetchSettingsData(displayBusy) {
|
|
170
|
-
return dispatch((0, _reducers.fetchSettingsData)(displayBusy));
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
};
|
|
174
|
-
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Bar);
|
|
151
|
+
var _default = exports.default = Bar;
|
|
@@ -7,7 +7,7 @@ import { render } from '@testing-library/react'
|
|
|
7
7
|
import { createMockClient } from 'cozy-client'
|
|
8
8
|
import { useBreakpoints } from 'cozy-ui/transpiled/react/providers/Breakpoints'
|
|
9
9
|
|
|
10
|
-
import { useInstanceInfo } from 'cozy-client'
|
|
10
|
+
import { useInstanceInfo, useQuery } from 'cozy-client'
|
|
11
11
|
import { shouldDisplayOffers } from 'cozy-client/dist/models/instance'
|
|
12
12
|
|
|
13
13
|
jest.mock('cozy-device-helper', () => ({
|
|
@@ -17,7 +17,9 @@ jest.mock('cozy-device-helper', () => ({
|
|
|
17
17
|
|
|
18
18
|
jest.mock('cozy-client', () => ({
|
|
19
19
|
...require.requireActual('cozy-client'),
|
|
20
|
-
useInstanceInfo: jest.fn()
|
|
20
|
+
useInstanceInfo: jest.fn(),
|
|
21
|
+
useQuery: jest.fn(),
|
|
22
|
+
RealTimeQueries: () => null
|
|
21
23
|
}))
|
|
22
24
|
|
|
23
25
|
jest.mock('cozy-client/dist/models/instance', () => ({
|
|
@@ -39,7 +41,12 @@ describe('Bar', () => {
|
|
|
39
41
|
useInstanceInfo.mockReturnValue({
|
|
40
42
|
isLoaded: true,
|
|
41
43
|
diskUsage: { data: { used: 0 } },
|
|
42
|
-
instance: { data: {} }
|
|
44
|
+
instance: { data: {} },
|
|
45
|
+
context: { data: {} }
|
|
46
|
+
})
|
|
47
|
+
useQuery.mockReturnValue({
|
|
48
|
+
data: [],
|
|
49
|
+
fetchStatus: 'loaded'
|
|
43
50
|
})
|
|
44
51
|
})
|
|
45
52
|
|
|
@@ -47,17 +54,7 @@ describe('Bar', () => {
|
|
|
47
54
|
isFlagshipApp.mockClear()
|
|
48
55
|
})
|
|
49
56
|
|
|
50
|
-
const
|
|
51
|
-
const mockFetchApps = jest.fn().mockResolvedValue([])
|
|
52
|
-
const mockFetchSettingsData = jest.fn().mockResolvedValue({})
|
|
53
|
-
|
|
54
|
-
const setup = ({
|
|
55
|
-
fetchContext = mockFetchContext,
|
|
56
|
-
fetchApps = mockFetchApps,
|
|
57
|
-
fetchSettingsData = mockFetchSettingsData,
|
|
58
|
-
isPublic = false,
|
|
59
|
-
hasFetchedApps = false
|
|
60
|
-
} = {}) => {
|
|
57
|
+
const setup = ({ isPublic = false } = {}) => {
|
|
61
58
|
const mockClient = createMockClient({
|
|
62
59
|
clientOptions: {
|
|
63
60
|
uri: 'http://cozy.localhost:8080'
|
|
@@ -67,11 +64,7 @@ describe('Bar', () => {
|
|
|
67
64
|
const result = render(
|
|
68
65
|
<BarLike client={mockClient}>
|
|
69
66
|
<Bar
|
|
70
|
-
fetchContext={fetchContext}
|
|
71
|
-
fetchApps={fetchApps}
|
|
72
|
-
fetchSettingsData={fetchSettingsData}
|
|
73
67
|
isPublic={isPublic}
|
|
74
|
-
hasFetchedApps={hasFetchedApps}
|
|
75
68
|
onDrawer={jest.fn()}
|
|
76
69
|
searchOptions={{ enabled: false }}
|
|
77
70
|
/>
|
|
@@ -84,28 +77,16 @@ describe('Bar', () => {
|
|
|
84
77
|
}
|
|
85
78
|
}
|
|
86
79
|
|
|
87
|
-
it('should
|
|
80
|
+
it('should render the bar', () => {
|
|
88
81
|
setup()
|
|
89
|
-
|
|
90
|
-
expect(mockFetchContext).toHaveBeenCalled()
|
|
91
|
-
expect(mockFetchApps).toHaveBeenCalled()
|
|
92
|
-
expect(mockFetchSettingsData).toHaveBeenCalled()
|
|
82
|
+
expect(useQuery).toHaveBeenCalled()
|
|
93
83
|
})
|
|
94
84
|
|
|
95
|
-
it('should not fetch
|
|
85
|
+
it('should not fetch apps if public', () => {
|
|
96
86
|
setup({ isPublic: true })
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
it('should call re-fetch data when token is refreshed', () => {
|
|
104
|
-
const { client } = setup()
|
|
105
|
-
client.emit('tokenRefreshed')
|
|
106
|
-
|
|
107
|
-
expect(mockFetchContext).toHaveBeenCalledTimes(2)
|
|
108
|
-
expect(mockFetchApps).toHaveBeenCalledTimes(2)
|
|
109
|
-
expect(mockFetchSettingsData).toHaveBeenCalledTimes(2)
|
|
87
|
+
expect(useQuery).toHaveBeenCalledWith(
|
|
88
|
+
expect.anything(),
|
|
89
|
+
expect.objectContaining({ enabled: false })
|
|
90
|
+
)
|
|
110
91
|
})
|
|
111
92
|
})
|
|
@@ -9,13 +9,10 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _reactDom = require("react-dom");
|
|
12
|
-
var _reducers = require("../lib/reducers");
|
|
13
12
|
var _dom = require("../dom");
|
|
14
13
|
var _Bar = _interopRequireDefault(require("./Bar"));
|
|
15
|
-
var _reactRedux = require("react-redux");
|
|
16
14
|
var _cozyClient = require("cozy-client");
|
|
17
15
|
var _CozyTheme = _interopRequireDefault(require("cozy-ui-plus/dist/providers/CozyTheme"));
|
|
18
|
-
var _stack = _interopRequireDefault(require("../lib/stack"));
|
|
19
16
|
var _BarProvider = require("./BarProvider");
|
|
20
17
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
18
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -80,8 +77,6 @@ var BarComponent = exports.BarComponent = function BarComponent(_ref2) {
|
|
|
80
77
|
_ref2$isPublic = _ref2.isPublic,
|
|
81
78
|
isPublic = _ref2$isPublic === void 0 ? false : _ref2$isPublic,
|
|
82
79
|
onLogOut = _ref2.onLogOut,
|
|
83
|
-
_ref2$disableInternal = _ref2.disableInternalStore,
|
|
84
|
-
disableInternalStore = _ref2$disableInternal === void 0 ? false : _ref2$disableInternal,
|
|
85
80
|
appIcon = _ref2.appIcon,
|
|
86
81
|
appTextIcon = _ref2.appTextIcon,
|
|
87
82
|
_ref2$searchOptions = _ref2.searchOptions,
|
|
@@ -105,25 +100,6 @@ var BarComponent = exports.BarComponent = function BarComponent(_ref2) {
|
|
|
105
100
|
|
|
106
101
|
// Force public mode in `/public` URLs
|
|
107
102
|
var isPublicForce = !isPublic && /^\/public/.test(window.location.pathname);
|
|
108
|
-
var getOrCreateStore = require("../lib/store").default;
|
|
109
|
-
var store;
|
|
110
|
-
if (disableInternalStore) {
|
|
111
|
-
store = cozyClient.store;
|
|
112
|
-
} else {
|
|
113
|
-
store = getOrCreateStore();
|
|
114
|
-
}
|
|
115
|
-
(0, _react.useEffect)(function () {
|
|
116
|
-
store.dispatch((0, _reducers.setInfos)(appName, appNamePrefix, appSlug));
|
|
117
|
-
_stack.default.init({
|
|
118
|
-
cozyClient: cozyClient,
|
|
119
|
-
onCreate: function onCreate(data) {
|
|
120
|
-
return store.dispatch((0, _reducers.onRealtimeCreate)(data));
|
|
121
|
-
},
|
|
122
|
-
onDelete: function onDelete(data) {
|
|
123
|
-
return store.dispatch((0, _reducers.onRealtimeDelete)(data));
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
}, [appName, appNamePrefix, appSlug, cozyClient, store]);
|
|
127
103
|
var options = {
|
|
128
104
|
appName: appName,
|
|
129
105
|
isInvertedTheme: isInvertedTheme,
|
|
@@ -148,17 +124,10 @@ var BarComponent = exports.BarComponent = function BarComponent(_ref2) {
|
|
|
148
124
|
}, /*#__PURE__*/_react.default.createElement(_CozyTheme.default, {
|
|
149
125
|
variant: themeVariant,
|
|
150
126
|
ignoreCozySettings: options.isPublic
|
|
151
|
-
}, disableInternalStore ? /*#__PURE__*/_react.default.createElement(_Bar.default, (0, _extends2.default)({}, options, {
|
|
152
|
-
barSearch: barSearch,
|
|
153
|
-
barLeft: barLeft,
|
|
154
|
-
barCenter: barCenter,
|
|
155
|
-
barRight: barRight
|
|
156
|
-
})) : /*#__PURE__*/_react.default.createElement(_reactRedux.Provider, {
|
|
157
|
-
store: store
|
|
158
127
|
}, /*#__PURE__*/_react.default.createElement(_Bar.default, (0, _extends2.default)({}, options, {
|
|
159
128
|
barSearch: barSearch,
|
|
160
129
|
barLeft: barLeft,
|
|
161
130
|
barCenter: barCenter,
|
|
162
131
|
barRight: barRight
|
|
163
|
-
}))))
|
|
132
|
+
}))));
|
|
164
133
|
};
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
-
var _reactRedux = require("react-redux");
|
|
11
10
|
var _cozyFlags = _interopRequireDefault(require("cozy-flags"));
|
|
12
11
|
var _cozyIntent = require("cozy-intent");
|
|
13
12
|
var _cozyClient = require("cozy-client");
|
|
@@ -25,7 +24,6 @@ var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
|
25
24
|
var _Divider = _interopRequireDefault(require("cozy-ui/transpiled/react/Divider"));
|
|
26
25
|
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
27
26
|
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
28
|
-
var _reducers = require("../../lib/reducers");
|
|
29
27
|
var _useI18n2 = _interopRequireDefault(require("../useI18n"));
|
|
30
28
|
var _AvatarMyself = _interopRequireDefault(require("./components/AvatarMyself"));
|
|
31
29
|
var _helpers = require("./helpers");
|
|
@@ -128,9 +126,4 @@ var UserMenuContent = function UserMenuContent(_ref) {
|
|
|
128
126
|
primary: t('userMenu.logOut')
|
|
129
127
|
}))));
|
|
130
128
|
};
|
|
131
|
-
var
|
|
132
|
-
return {
|
|
133
|
-
isSettingsAppInstalled: (0, _reducers.getIsSettingsAppInstalled)(state)
|
|
134
|
-
};
|
|
135
|
-
};
|
|
136
|
-
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps)(UserMenuContent);
|
|
129
|
+
var _default = exports.default = UserMenuContent;
|
|
@@ -27,7 +27,8 @@ var useStyles = (0, _styles.makeStyles)({
|
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
var UserMenu = function UserMenu(_ref) {
|
|
30
|
-
var onLogOut = _ref.onLogOut
|
|
30
|
+
var onLogOut = _ref.onLogOut,
|
|
31
|
+
isSettingsAppInstalled = _ref.isSettingsAppInstalled;
|
|
31
32
|
var _useState = (0, _react.useState)(false),
|
|
32
33
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
33
34
|
isOpen = _useState2[0],
|
|
@@ -60,6 +61,7 @@ var UserMenu = function UserMenu(_ref) {
|
|
|
60
61
|
onLogOut: onLogOut,
|
|
61
62
|
instance: instance,
|
|
62
63
|
diskUsage: diskUsage,
|
|
64
|
+
isSettingsAppInstalled: isSettingsAppInstalled,
|
|
63
65
|
closeMenu: toggleMenu
|
|
64
66
|
}),
|
|
65
67
|
componentsProps: {
|
|
@@ -91,6 +93,7 @@ var UserMenu = function UserMenu(_ref) {
|
|
|
91
93
|
onLogOut: onLogOut,
|
|
92
94
|
instance: instance,
|
|
93
95
|
diskUsage: diskUsage,
|
|
96
|
+
isSettingsAppInstalled: isSettingsAppInstalled,
|
|
94
97
|
closeMenu: toggleMenu
|
|
95
98
|
})));
|
|
96
99
|
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getAppsData = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _cozyFlags = _interopRequireDefault(require("cozy-flags"));
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
// cozy-client's useQuery normalizes JSON:API responses — attributes are
|
|
13
|
+
// spread to the top level (e.g. app.slug, app.name exist directly).
|
|
14
|
+
// We only ensure `href` is derived from `links.related` for AppLinker.
|
|
15
|
+
var mapApp = function mapApp(app) {
|
|
16
|
+
return _objectSpread(_objectSpread({}, app), {}, {
|
|
17
|
+
href: app.links && app.links.related || app.href
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
var getAppsData = exports.getAppsData = function getAppsData(rawApps, appSlug) {
|
|
21
|
+
var excludedApps = (0, _cozyFlags.default)('apps.hidden') || [];
|
|
22
|
+
var apps = rawApps.map(mapApp).filter(function (app) {
|
|
23
|
+
return !excludedApps.includes(app.slug);
|
|
24
|
+
}).map(function (app) {
|
|
25
|
+
return _objectSpread(_objectSpread({}, app), {}, {
|
|
26
|
+
isCurrentApp: app.slug === appSlug
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
var homeApp = apps.find(function (app) {
|
|
30
|
+
return app.slug === 'home';
|
|
31
|
+
}) || null;
|
|
32
|
+
var isSettingsAppInstalled = rawApps.some(function (app) {
|
|
33
|
+
return app.slug === 'settings';
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
apps: apps,
|
|
37
|
+
homeApp: homeApp,
|
|
38
|
+
isSettingsAppInstalled: isSettingsAppInstalled
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -6,13 +6,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _reactRedux = require("react-redux");
|
|
10
9
|
var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
|
|
11
10
|
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
12
11
|
var _HelpOutlined = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/HelpOutlined"));
|
|
13
|
-
var
|
|
14
|
-
var HelpLink = function HelpLink(
|
|
15
|
-
var
|
|
12
|
+
var _cozyClient = require("cozy-client");
|
|
13
|
+
var HelpLink = function HelpLink() {
|
|
14
|
+
var _context$data;
|
|
15
|
+
var _useInstanceInfo = (0, _cozyClient.useInstanceInfo)(),
|
|
16
|
+
context = _useInstanceInfo.context;
|
|
17
|
+
var helpLink = ((_context$data = context.data) === null || _context$data === void 0 || (_context$data = _context$data.attributes) === null || _context$data === void 0 ? void 0 : _context$data.help_link) || null;
|
|
18
|
+
if (!helpLink) return null;
|
|
16
19
|
return /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
17
20
|
component: "a",
|
|
18
21
|
href: helpLink,
|
|
@@ -24,9 +27,4 @@ var HelpLink = function HelpLink(_ref) {
|
|
|
24
27
|
size: "18"
|
|
25
28
|
}));
|
|
26
29
|
};
|
|
27
|
-
var
|
|
28
|
-
return {
|
|
29
|
-
helpLink: (0, _reducers.getHelpLink)(state)
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps)(HelpLink);
|
|
30
|
+
var _default = exports.default = HelpLink;
|
package/dist/index.js
CHANGED
|
@@ -52,12 +52,6 @@ Object.defineProperty(exports, "BarTheme", {
|
|
|
52
52
|
return _BarTheme.BarTheme;
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
|
-
Object.defineProperty(exports, "barReducers", {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
get: function get() {
|
|
58
|
-
return _reducers.reducers;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
55
|
exports.version = void 0;
|
|
62
56
|
require("cozy-search/dist/stylesheet.css");
|
|
63
57
|
var _BarComponent = require("./components/BarComponent");
|
|
@@ -68,7 +62,6 @@ var _BarTheme = require("./components/BarTheme");
|
|
|
68
62
|
var _BarSearch = require("./components/BarSearch");
|
|
69
63
|
var _BarRoutes = require("./components/BarRoutes");
|
|
70
64
|
var _BarProvider = _interopRequireDefault(require("./components/BarProvider"));
|
|
71
|
-
var _reducers = require("./lib/reducers");
|
|
72
65
|
/* global __VERSION__ */
|
|
73
66
|
|
|
74
|
-
var version = exports.version = "\"
|
|
67
|
+
var version = exports.version = "\"31.0.0\"";
|
package/dist/index.spec.jsx
CHANGED
|
@@ -4,6 +4,18 @@ import { render, screen } from '@testing-library/react'
|
|
|
4
4
|
import { BarComponent, BarProvider, BarLeft } from './index'
|
|
5
5
|
import { BarLike } from '../test/lib/BarLike'
|
|
6
6
|
|
|
7
|
+
jest.mock('cozy-client', () => ({
|
|
8
|
+
...require.requireActual('cozy-client'),
|
|
9
|
+
useQuery: jest.fn().mockReturnValue({ data: [], fetchStatus: 'loaded' }),
|
|
10
|
+
RealTimeQueries: () => null,
|
|
11
|
+
useInstanceInfo: jest.fn().mockReturnValue({
|
|
12
|
+
isLoaded: true,
|
|
13
|
+
diskUsage: { data: { used: 0 } },
|
|
14
|
+
instance: { data: {} },
|
|
15
|
+
context: { data: {} }
|
|
16
|
+
})
|
|
17
|
+
}))
|
|
18
|
+
|
|
7
19
|
describe('The bar library', function() {
|
|
8
20
|
beforeEach(() => {
|
|
9
21
|
// Set up our document body
|
package/dist/queries.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildAppsQuery = void 0;
|
|
7
|
+
var _cozyClient = _interopRequireWildcard(require("cozy-client"));
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
var defaultFetchPolicy = _cozyClient.default.fetchPolicies.olderThan(60 * 60 * 1000);
|
|
11
|
+
var buildAppsQuery = exports.buildAppsQuery = function buildAppsQuery() {
|
|
12
|
+
return {
|
|
13
|
+
definition: function definition() {
|
|
14
|
+
return (0, _cozyClient.Q)('io.cozy.apps');
|
|
15
|
+
},
|
|
16
|
+
options: {
|
|
17
|
+
as: "io.cozy.apps",
|
|
18
|
+
fetchPolicy: defaultFetchPolicy
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cozy-bar",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "31.0.0",
|
|
4
4
|
"description": "cozy-bar.js library, a small lib provided by cozy-stack to inject the Cozy-bar component into each app",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"author": "Cozy Cloud <contact@cozycloud.cc> (https://cozy.io/)",
|
|
@@ -54,7 +54,6 @@
|
|
|
54
54
|
"cozy-device-helper": "2.6.0",
|
|
55
55
|
"cozy-flags": "^4.6.1",
|
|
56
56
|
"cozy-intent": "^2.29.1",
|
|
57
|
-
"cozy-interapp": "0.4.9",
|
|
58
57
|
"cozy-logger": "1.9.1",
|
|
59
58
|
"cozy-realtime": "^4.0.5",
|
|
60
59
|
"cozy-search": "^0.14.0",
|
|
@@ -75,13 +74,7 @@
|
|
|
75
74
|
},
|
|
76
75
|
"dependencies": {
|
|
77
76
|
"lodash.set": "^4.3.2",
|
|
78
|
-
"
|
|
79
|
-
"prop-types": "15.7.2",
|
|
80
|
-
"react-redux": "5.1.1",
|
|
81
|
-
"redux": "4.1.2",
|
|
82
|
-
"redux-logger": "3.0.6",
|
|
83
|
-
"redux-persist": "5.10.0",
|
|
84
|
-
"redux-thunk": "2.3.0"
|
|
77
|
+
"prop-types": "15.7.2"
|
|
85
78
|
},
|
|
86
79
|
"peerDependencies": {
|
|
87
80
|
"@cozy/minilog": ">=1.0.0",
|
|
@@ -90,7 +83,6 @@
|
|
|
90
83
|
"cozy-device-helper": ">=2.6.0",
|
|
91
84
|
"cozy-flags": ">=4.6.1",
|
|
92
85
|
"cozy-intent": ">=2.29.1",
|
|
93
|
-
"cozy-interapp": ">=0.4.9",
|
|
94
86
|
"cozy-realtime": ">=4.0.5",
|
|
95
87
|
"cozy-search": ">=0.14.0",
|
|
96
88
|
"cozy-ui": ">=137.0.0",
|