cozy-bar 29.3.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 +31 -51
- package/dist/components/Bar.spec.jsx +18 -37
- package/dist/components/BarComponent.js +5 -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 +4 -12
- 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,54 +21,46 @@ 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,
|
|
39
39
|
barSearch = _ref.barSearch,
|
|
40
40
|
onLogOut = _ref.onLogOut,
|
|
41
41
|
userActionRequired = _ref.userActionRequired,
|
|
42
|
+
appIcon = _ref.appIcon,
|
|
43
|
+
appTextIcon = _ref.appTextIcon,
|
|
42
44
|
searchOptions = _ref.searchOptions,
|
|
43
45
|
isInvertedTheme = _ref.isInvertedTheme,
|
|
44
46
|
appSlug = _ref.appSlug,
|
|
45
|
-
hasFetchedApps = _ref.hasFetchedApps,
|
|
46
|
-
homeApp = _ref.homeApp,
|
|
47
47
|
componentsProps = _ref.componentsProps;
|
|
48
|
-
var client = (0, _cozyClient.useClient)();
|
|
49
48
|
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
|
|
50
49
|
isMobile = _useBreakpoints.isMobile;
|
|
51
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;
|
|
52
63
|
var isSearchEnabled = searchOptions.enabled && !isPublic;
|
|
53
|
-
var fetchInitialData = (0, _react.useCallback)(function () {
|
|
54
|
-
if (!isPublic) {
|
|
55
|
-
fetchContext();
|
|
56
|
-
fetchSettingsData(false);
|
|
57
|
-
if (!hasFetchedApps) {
|
|
58
|
-
fetchApps();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}, [fetchApps, fetchContext, fetchSettingsData, hasFetchedApps, isPublic]);
|
|
62
|
-
(0, _react.useEffect)(function () {
|
|
63
|
-
var handleTokenRefreshed = function handleTokenRefreshed() {
|
|
64
|
-
fetchInitialData();
|
|
65
|
-
};
|
|
66
|
-
fetchInitialData();
|
|
67
|
-
client.on('tokenRefreshed', handleTokenRefreshed);
|
|
68
|
-
return function () {
|
|
69
|
-
client.removeListener('tokenRefreshed', handleTokenRefreshed);
|
|
70
|
-
};
|
|
71
|
-
}, [client, fetchInitialData]);
|
|
72
64
|
var renderCenter = function renderCenter() {
|
|
73
65
|
return null;
|
|
74
66
|
};
|
|
@@ -96,7 +88,8 @@ var Bar = exports.Bar = function Bar(_ref) {
|
|
|
96
88
|
className: "u-mr-half",
|
|
97
89
|
flexItem: true
|
|
98
90
|
})), /*#__PURE__*/_react.default.createElement(_AppTitle.default, {
|
|
99
|
-
|
|
91
|
+
appIcon: appIcon,
|
|
92
|
+
appTextIcon: appTextIcon
|
|
100
93
|
}));
|
|
101
94
|
};
|
|
102
95
|
var renderTwakeRight = function renderTwakeRight() {
|
|
@@ -110,9 +103,13 @@ var Bar = exports.Bar = function Bar(_ref) {
|
|
|
110
103
|
// to remove this special case
|
|
111
104
|
if (appSlug === 'drive' && isMobile && barSearch) return null;
|
|
112
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,
|
|
113
109
|
shortcuts: shortcuts
|
|
114
110
|
}), /*#__PURE__*/_react.default.createElement(_UserMenu.default, {
|
|
115
|
-
onLogOut: onLogOut
|
|
111
|
+
onLogOut: onLogOut,
|
|
112
|
+
isSettingsAppInstalled: isSettingsAppInstalled
|
|
116
113
|
}));
|
|
117
114
|
};
|
|
118
115
|
var renderSearch = function renderSearch() {
|
|
@@ -129,6 +126,8 @@ var Bar = exports.Bar = function Bar(_ref) {
|
|
|
129
126
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, componentsProps === null || componentsProps === void 0 ? void 0 : componentsProps.Wrapper, {
|
|
130
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),
|
|
131
128
|
"data-testid": "coz-bar-wrapper"
|
|
129
|
+
}), !isPublic && /*#__PURE__*/_react.default.createElement(_cozyClient.RealTimeQueries, {
|
|
130
|
+
doctype: "io.cozy.apps"
|
|
132
131
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
133
132
|
id: "cozy-bar-modal-dom-place"
|
|
134
133
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -149,23 +148,4 @@ Bar.propTypes = {
|
|
|
149
148
|
})
|
|
150
149
|
})
|
|
151
150
|
};
|
|
152
|
-
var
|
|
153
|
-
return {
|
|
154
|
-
hasFetchedApps: (0, _reducers.hasFetched)(state),
|
|
155
|
-
homeApp: (0, _reducers.getHomeApp)(state)
|
|
156
|
-
};
|
|
157
|
-
};
|
|
158
|
-
var mapDispatchToProps = exports.mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
159
|
-
return {
|
|
160
|
-
fetchApps: function fetchApps() {
|
|
161
|
-
return dispatch((0, _reducers.fetchApps)());
|
|
162
|
-
},
|
|
163
|
-
fetchContext: function fetchContext() {
|
|
164
|
-
return dispatch((0, _reducers.fetchContext)());
|
|
165
|
-
},
|
|
166
|
-
fetchSettingsData: function fetchSettingsData(displayBusy) {
|
|
167
|
-
return dispatch((0, _reducers.fetchSettingsData)(displayBusy));
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
};
|
|
171
|
-
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,8 @@ 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
|
-
|
|
84
|
-
|
|
80
|
+
appIcon = _ref2.appIcon,
|
|
81
|
+
appTextIcon = _ref2.appTextIcon,
|
|
85
82
|
_ref2$searchOptions = _ref2.searchOptions,
|
|
86
83
|
searchOptions = _ref2$searchOptions === void 0 ? {
|
|
87
84
|
enabled: true
|
|
@@ -103,25 +100,6 @@ var BarComponent = exports.BarComponent = function BarComponent(_ref2) {
|
|
|
103
100
|
|
|
104
101
|
// Force public mode in `/public` URLs
|
|
105
102
|
var isPublicForce = !isPublic && /^\/public/.test(window.location.pathname);
|
|
106
|
-
var getOrCreateStore = require("../lib/store").default;
|
|
107
|
-
var store;
|
|
108
|
-
if (disableInternalStore) {
|
|
109
|
-
store = cozyClient.store;
|
|
110
|
-
} else {
|
|
111
|
-
store = getOrCreateStore();
|
|
112
|
-
}
|
|
113
|
-
(0, _react.useEffect)(function () {
|
|
114
|
-
store.dispatch((0, _reducers.setInfos)(appName, appNamePrefix, appSlug));
|
|
115
|
-
_stack.default.init({
|
|
116
|
-
cozyClient: cozyClient,
|
|
117
|
-
onCreate: function onCreate(data) {
|
|
118
|
-
return store.dispatch((0, _reducers.onRealtimeCreate)(data));
|
|
119
|
-
},
|
|
120
|
-
onDelete: function onDelete(data) {
|
|
121
|
-
return store.dispatch((0, _reducers.onRealtimeDelete)(data));
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
}, [appName, appNamePrefix, appSlug, cozyClient, store]);
|
|
125
103
|
var options = {
|
|
126
104
|
appName: appName,
|
|
127
105
|
isInvertedTheme: isInvertedTheme,
|
|
@@ -132,6 +110,8 @@ var BarComponent = exports.BarComponent = function BarComponent(_ref2) {
|
|
|
132
110
|
isPublic: isPublicForce || isPublic,
|
|
133
111
|
onLogOut: onLogOut,
|
|
134
112
|
userActionRequired: (0, _dom.getUserActionRequired)(),
|
|
113
|
+
appIcon: appIcon,
|
|
114
|
+
appTextIcon: appTextIcon,
|
|
135
115
|
searchOptions: searchOptions,
|
|
136
116
|
componentsProps: componentsProps,
|
|
137
117
|
onDrawer: function onDrawer(visible) {
|
|
@@ -144,17 +124,10 @@ var BarComponent = exports.BarComponent = function BarComponent(_ref2) {
|
|
|
144
124
|
}, /*#__PURE__*/_react.default.createElement(_CozyTheme.default, {
|
|
145
125
|
variant: themeVariant,
|
|
146
126
|
ignoreCozySettings: options.isPublic
|
|
147
|
-
}, disableInternalStore ? /*#__PURE__*/_react.default.createElement(_Bar.default, (0, _extends2.default)({}, options, {
|
|
148
|
-
barSearch: barSearch,
|
|
149
|
-
barLeft: barLeft,
|
|
150
|
-
barCenter: barCenter,
|
|
151
|
-
barRight: barRight
|
|
152
|
-
})) : /*#__PURE__*/_react.default.createElement(_reactRedux.Provider, {
|
|
153
|
-
store: store
|
|
154
127
|
}, /*#__PURE__*/_react.default.createElement(_Bar.default, (0, _extends2.default)({}, options, {
|
|
155
128
|
barSearch: barSearch,
|
|
156
129
|
barLeft: barLeft,
|
|
157
130
|
barCenter: barCenter,
|
|
158
131
|
barRight: barRight
|
|
159
|
-
}))))
|
|
132
|
+
}))));
|
|
160
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,11 +54,10 @@
|
|
|
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",
|
|
61
|
-
"cozy-ui": "^
|
|
60
|
+
"cozy-ui": "^137.0.0",
|
|
62
61
|
"cozy-ui-plus": "^4.0.0",
|
|
63
62
|
"eslint-config-cozy-app": "2.0.0",
|
|
64
63
|
"identity-obj-proxy": "3.0.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,10 +83,9 @@
|
|
|
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
|
-
"cozy-ui": ">=
|
|
88
|
+
"cozy-ui": ">=137.0.0",
|
|
97
89
|
"cozy-ui-plus": ">=4.0.0",
|
|
98
90
|
"react": ">=16.10.1",
|
|
99
91
|
"react-dom": ">=16.10.1",
|