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.
@@ -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 mapStateToProps = function mapStateToProps(state) {
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
- }, _stack.default.get.iconProps()))), /*#__PURE__*/_react.default.createElement(_Typography.default, {
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
  })));
@@ -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.mapStateToProps = exports.mapDispatchToProps = exports.default = exports.Bar = void 0;
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 fetchContext = _ref.fetchContext,
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 mapStateToProps = exports.mapStateToProps = function mapStateToProps(state) {
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 mockFetchContext = jest.fn().mockResolvedValue({})
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 fetch data when mounted', () => {
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 data if public', () => {
85
+ it('should not fetch apps if public', () => {
96
86
  setup({ isPublic: true })
97
-
98
- expect(mockFetchContext).not.toHaveBeenCalled()
99
- expect(mockFetchApps).not.toHaveBeenCalled()
100
- expect(mockFetchSettingsData).not.toHaveBeenCalled()
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 mapStateToProps = function mapStateToProps(state) {
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 _reducers = require("../../lib/reducers");
14
- var HelpLink = function HelpLink(_ref) {
15
- var helpLink = _ref.helpLink;
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 mapStateToProps = function mapStateToProps(state) {
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 = "\"30.0.0\"";
67
+ var version = exports.version = "\"31.0.0\"";
@@ -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
@@ -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": "30.0.0",
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
- "lodash.unionwith": "4.6.0",
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",
@@ -1,4 +0,0 @@
1
- [
2
- "apps",
3
- "context"
4
- ]