cozy-bar 17.1.0 → 18.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/Apps/ButtonCozyHome.js +9 -0
- package/dist/components/Apps/ButtonCozyHome.spec.jsx +16 -3
- package/dist/components/Apps/IconCozyHome.js +15 -0
- package/dist/components/AppsMenu/AppsMenuContent.js +115 -0
- package/dist/components/AppsMenu/components/AppItem.js +77 -0
- package/dist/components/AppsMenu/components/AppItemPlaceholder.js +25 -0
- package/dist/components/AppsMenu/index.js +74 -0
- package/dist/components/Bar.js +45 -5
- package/dist/components/HelpLink/index.js +33 -0
- package/dist/components/UserMenu/UserMenuContent.js +154 -0
- package/dist/components/UserMenu/components/AvatarMyself.js +52 -0
- package/dist/components/UserMenu/helpers.js +99 -0
- package/dist/components/UserMenu/index.js +89 -0
- package/dist/index.js +1 -1
- package/dist/lib/queries.js +21 -0
- package/dist/locales/en.json +8 -0
- package/dist/locales/fr.json +8 -0
- package/dist/styles/apps-menu.styl +20 -0
- package/dist/styles/user-menu.styl +10 -0
- package/dist/stylesheet.css +36 -0
- package/package.json +6 -6
|
@@ -17,12 +17,18 @@ var _cozyDeviceHelper = require("cozy-device-helper");
|
|
|
17
17
|
|
|
18
18
|
var _cozyIntent = require("cozy-intent");
|
|
19
19
|
|
|
20
|
+
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
21
|
+
|
|
20
22
|
var _IconCozyHome = _interopRequireDefault(require("./IconCozyHome"));
|
|
21
23
|
|
|
22
24
|
var ButtonCozyHome = function ButtonCozyHome(_ref) {
|
|
23
25
|
var homeHref = _ref.homeHref,
|
|
24
26
|
isInvertedTheme = _ref.isInvertedTheme;
|
|
25
27
|
var webviewIntent = (0, _cozyIntent.useWebviewIntent)();
|
|
28
|
+
|
|
29
|
+
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
|
|
30
|
+
isMobile = _useBreakpoints.isMobile;
|
|
31
|
+
|
|
26
32
|
if ((0, _cozyDeviceHelper.isFlagshipApp)() || (0, _cozyFlags.default)('flagship.debug')) return /*#__PURE__*/_react.default.createElement("a", {
|
|
27
33
|
onClick: function onClick() {
|
|
28
34
|
webviewIntent.call('backToHome');
|
|
@@ -31,6 +37,7 @@ var ButtonCozyHome = function ButtonCozyHome(_ref) {
|
|
|
31
37
|
"data-testid": "buttonCozyHome"
|
|
32
38
|
}, /*#__PURE__*/_react.default.createElement(_IconCozyHome.default, {
|
|
33
39
|
className: "coz-nav-apps-btns-home-svg",
|
|
40
|
+
isMobile: isMobile,
|
|
34
41
|
isInvertedTheme: isInvertedTheme
|
|
35
42
|
}));
|
|
36
43
|
|
|
@@ -40,6 +47,7 @@ var ButtonCozyHome = function ButtonCozyHome(_ref) {
|
|
|
40
47
|
className: "coz-nav-apps-btns-home"
|
|
41
48
|
}, /*#__PURE__*/_react.default.createElement(_IconCozyHome.default, {
|
|
42
49
|
className: "coz-nav-apps-btns-home-svg",
|
|
50
|
+
isMobile: isMobile,
|
|
43
51
|
isInvertedTheme: isInvertedTheme
|
|
44
52
|
}));
|
|
45
53
|
}
|
|
@@ -48,6 +56,7 @@ var ButtonCozyHome = function ButtonCozyHome(_ref) {
|
|
|
48
56
|
className: "coz-nav-apps-btns-home"
|
|
49
57
|
}, /*#__PURE__*/_react.default.createElement(_IconCozyHome.default, {
|
|
50
58
|
className: "coz-nav-apps-btns-home-svg",
|
|
59
|
+
isMobile: isMobile,
|
|
51
60
|
isInvertedTheme: isInvertedTheme
|
|
52
61
|
}));
|
|
53
62
|
};
|
|
@@ -3,6 +3,7 @@ import { render, fireEvent } from '@testing-library/react'
|
|
|
3
3
|
import { ButtonCozyHome } from './ButtonCozyHome'
|
|
4
4
|
import { isFlagshipApp } from 'cozy-device-helper'
|
|
5
5
|
import { useWebviewIntent } from 'cozy-intent'
|
|
6
|
+
import { BarLike } from 'test/lib/BarLike'
|
|
6
7
|
|
|
7
8
|
jest.mock('cozy-device-helper')
|
|
8
9
|
jest.mock('cozy-intent', () => ({
|
|
@@ -19,7 +20,11 @@ describe('ButtonCozyHome', () => {
|
|
|
19
20
|
// We need to use a testid because
|
|
20
21
|
// - the a tag has no text to query it (just an icon)
|
|
21
22
|
// - an "a" tag without href is not seen as a link by queryByRole
|
|
22
|
-
const { getByTestId } = render(
|
|
23
|
+
const { getByTestId } = render(
|
|
24
|
+
<BarLike>
|
|
25
|
+
<ButtonCozyHome />
|
|
26
|
+
</BarLike>
|
|
27
|
+
)
|
|
23
28
|
const linkElement = getByTestId('buttonCozyHome')
|
|
24
29
|
|
|
25
30
|
fireEvent.click(linkElement)
|
|
@@ -30,7 +35,11 @@ describe('ButtonCozyHome', () => {
|
|
|
30
35
|
it('renders a link with homeHref for non-flagship apps with homeHref', () => {
|
|
31
36
|
isFlagshipApp.mockReturnValue(false)
|
|
32
37
|
|
|
33
|
-
const { queryByRole } = render(
|
|
38
|
+
const { queryByRole } = render(
|
|
39
|
+
<BarLike>
|
|
40
|
+
<ButtonCozyHome homeHref="/home" />
|
|
41
|
+
</BarLike>
|
|
42
|
+
)
|
|
34
43
|
const linkElement = queryByRole('link')
|
|
35
44
|
|
|
36
45
|
expect(linkElement).toHaveAttribute('href', '/home')
|
|
@@ -39,7 +48,11 @@ describe('ButtonCozyHome', () => {
|
|
|
39
48
|
it('renders a span without href for non-flagship apps without homeHref', () => {
|
|
40
49
|
isFlagshipApp.mockReturnValue(false)
|
|
41
50
|
|
|
42
|
-
const { queryByRole } = render(
|
|
51
|
+
const { queryByRole } = render(
|
|
52
|
+
<BarLike>
|
|
53
|
+
<ButtonCozyHome />
|
|
54
|
+
</BarLike>
|
|
55
|
+
)
|
|
43
56
|
const linkElement = queryByRole('link')
|
|
44
57
|
|
|
45
58
|
expect(linkElement).toBeNull()
|
|
@@ -17,6 +17,12 @@ var _AppIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/AppIcon"
|
|
|
17
17
|
|
|
18
18
|
var _stack = _interopRequireDefault(require("../../lib/stack"));
|
|
19
19
|
|
|
20
|
+
var _isTwakeTheme = require("cozy-ui/transpiled/react/helpers/isTwakeTheme");
|
|
21
|
+
|
|
22
|
+
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
23
|
+
|
|
24
|
+
var _TwakeWorkplace = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/TwakeWorkplace"));
|
|
25
|
+
|
|
20
26
|
/* Generated with node_modules/.bin/svgr src/assets/sprites/icon-cozy-home.svg */
|
|
21
27
|
function SvgIconCozyHome(props) {
|
|
22
28
|
return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
|
|
@@ -39,8 +45,17 @@ function SvgIconCozyHome(props) {
|
|
|
39
45
|
|
|
40
46
|
var IconCozyHome = function IconCozyHome(_ref) {
|
|
41
47
|
var className = _ref.className,
|
|
48
|
+
isMobile = _ref.isMobile,
|
|
42
49
|
isInvertedTheme = _ref.isInvertedTheme;
|
|
43
50
|
|
|
51
|
+
if ((0, _isTwakeTheme.isTwakeTheme)()) {
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
53
|
+
icon: _TwakeWorkplace.default,
|
|
54
|
+
size: isMobile ? 28 : 32,
|
|
55
|
+
className: isMobile ? 'u-ml-half' : undefined
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
44
59
|
var fetchIcon = function fetchIcon() {
|
|
45
60
|
if (isInvertedTheme) {
|
|
46
61
|
return "".concat(_stack.default.get.cozyURL(), "/assets/images/icon-cozy-home-inverted.svg");
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.AppsMenuContent = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _reactRedux = require("react-redux");
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
17
|
+
|
|
18
|
+
var _AppItem = _interopRequireDefault(require("./components/AppItem"));
|
|
19
|
+
|
|
20
|
+
var _AppItemPlaceholder = _interopRequireDefault(require("./components/AppItemPlaceholder"));
|
|
21
|
+
|
|
22
|
+
var _useI18n2 = _interopRequireDefault(require("../useI18n"));
|
|
23
|
+
|
|
24
|
+
var _reducers = require("../../lib/reducers");
|
|
25
|
+
|
|
26
|
+
var styles = {
|
|
27
|
+
"apps-menu-grid": "apps-menu-grid",
|
|
28
|
+
"apps-menu-grid-item-wrapper": "apps-menu-grid-item-wrapper",
|
|
29
|
+
"apps-menu-grid-item": "apps-menu-grid-item"
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var sorter = function sorter(fn) {
|
|
33
|
+
return function (itemA, itemB) {
|
|
34
|
+
return fn(itemA) > fn(itemB);
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var AppsMenuContent = function AppsMenuContent(_ref) {
|
|
39
|
+
var isFetchingApps = _ref.isFetchingApps,
|
|
40
|
+
apps = _ref.apps,
|
|
41
|
+
homeApp = _ref.homeApp;
|
|
42
|
+
|
|
43
|
+
var _useI18n = (0, _useI18n2.default)(),
|
|
44
|
+
t = _useI18n.t;
|
|
45
|
+
|
|
46
|
+
var translateAppWithLocales = translateApp(t);
|
|
47
|
+
|
|
48
|
+
if (!isFetchingApps && (!apps || !apps.length)) {
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
50
|
+
className: "u-mh-half",
|
|
51
|
+
color: "error"
|
|
52
|
+
}, t('no_apps'));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (isFetchingApps) {
|
|
56
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
57
|
+
className: styles['apps-menu-grid']
|
|
58
|
+
}, /*#__PURE__*/_react.default.createElement(_AppItemPlaceholder.default, {
|
|
59
|
+
key: "1"
|
|
60
|
+
}), /*#__PURE__*/_react.default.createElement(_AppItemPlaceholder.default, {
|
|
61
|
+
key: "2"
|
|
62
|
+
}), /*#__PURE__*/_react.default.createElement(_AppItemPlaceholder.default, {
|
|
63
|
+
key: "3"
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
var homeSlug = homeApp && homeApp.slug;
|
|
68
|
+
var displayedApps = apps.filter(function (app) {
|
|
69
|
+
return app.slug !== homeSlug;
|
|
70
|
+
}).sort(sorter(translateAppWithLocales));
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
className: styles['apps-menu-grid']
|
|
73
|
+
}, displayedApps.map(function (app, index) {
|
|
74
|
+
return /*#__PURE__*/_react.default.createElement(_AppItem.default, {
|
|
75
|
+
key: index,
|
|
76
|
+
app: app
|
|
77
|
+
});
|
|
78
|
+
}));
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
exports.AppsMenuContent = AppsMenuContent;
|
|
82
|
+
AppsMenuContent.propTypes = {
|
|
83
|
+
apps: _propTypes.default.array,
|
|
84
|
+
isFetchingApps: _propTypes.default.bool.isRequired,
|
|
85
|
+
homeApp: _propTypes.default.shape({
|
|
86
|
+
isCurrentApp: _propTypes.default.bool,
|
|
87
|
+
slug: _propTypes.default.string,
|
|
88
|
+
href: _propTypes.default.string
|
|
89
|
+
}),
|
|
90
|
+
className: _propTypes.default.string
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var translateApp = function translateApp(t) {
|
|
94
|
+
return function (app) {
|
|
95
|
+
var namePrefix = app.namePrefix ? t("".concat(app.slug, ".namePrefix"), {
|
|
96
|
+
_: app.namePrefix
|
|
97
|
+
}) : null;
|
|
98
|
+
var name = t("".concat(app.slug, ".name"), {
|
|
99
|
+
_: app.name
|
|
100
|
+
});
|
|
101
|
+
return namePrefix ? "".concat(namePrefix, " ").concat(name) : "".concat(name);
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
var mapStateToProps = function mapStateToProps(state) {
|
|
106
|
+
return {
|
|
107
|
+
isFetchingApps: (0, _reducers.isFetchingApps)(state),
|
|
108
|
+
apps: (0, _reducers.getApps)(state),
|
|
109
|
+
homeApp: (0, _reducers.getHomeApp)(state)
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var _default = (0, _reactRedux.connect)(mapStateToProps)(AppsMenuContent);
|
|
114
|
+
|
|
115
|
+
exports.default = _default;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.AppItem = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
15
|
+
|
|
16
|
+
var _cozyClient = require("cozy-client");
|
|
17
|
+
|
|
18
|
+
var _Buttons = _interopRequireDefault(require("cozy-ui/transpiled/react/Buttons"));
|
|
19
|
+
|
|
20
|
+
var _AppIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/AppIcon"));
|
|
21
|
+
|
|
22
|
+
var _AppLinker = _interopRequireDefault(require("cozy-ui/transpiled/react/AppLinker"));
|
|
23
|
+
|
|
24
|
+
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
25
|
+
|
|
26
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
+
|
|
28
|
+
var _proptypes = require("../../../proptypes");
|
|
29
|
+
|
|
30
|
+
var _stack = _interopRequireDefault(require("../../../lib/stack"));
|
|
31
|
+
|
|
32
|
+
var styles = {
|
|
33
|
+
"apps-menu-grid": "apps-menu-grid",
|
|
34
|
+
"apps-menu-grid-item-wrapper": "apps-menu-grid-item-wrapper",
|
|
35
|
+
"apps-menu-grid-item": "apps-menu-grid-item"
|
|
36
|
+
};
|
|
37
|
+
var getAppDisplayName = (0, _get.default)(_cozyClient.models, 'applications.getAppDisplayName', function (app) {
|
|
38
|
+
return app.namePrefix && app.namePrefix.toLowerCase() !== 'cozy' ? "".concat(app.namePrefix, " ").concat(app.name) : app.name;
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
var AppItem = function AppItem(_ref) {
|
|
42
|
+
var app = _ref.app;
|
|
43
|
+
var appName = getAppDisplayName(app);
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement(_AppLinker.default, {
|
|
45
|
+
href: app.href || '',
|
|
46
|
+
app: app
|
|
47
|
+
}, function (_ref2) {
|
|
48
|
+
var onClick = _ref2.onClick,
|
|
49
|
+
href = _ref2.href;
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(_Buttons.default, {
|
|
51
|
+
height: "auto",
|
|
52
|
+
component: "a",
|
|
53
|
+
variant: "text",
|
|
54
|
+
href: href,
|
|
55
|
+
title: appName,
|
|
56
|
+
onClick: onClick,
|
|
57
|
+
className: (0, _classnames.default)(styles['apps-menu-grid-item-wrapper'], 'u-bdrs-5'),
|
|
58
|
+
label: /*#__PURE__*/_react.default.createElement("div", {
|
|
59
|
+
className: styles['apps-menu-grid-item']
|
|
60
|
+
}, /*#__PURE__*/_react.default.createElement(_AppIcon.default, (0, _extends2.default)({
|
|
61
|
+
app: app,
|
|
62
|
+
key: app.slug
|
|
63
|
+
}, _stack.default.get.iconProps())), /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
64
|
+
variant: "caption",
|
|
65
|
+
noWrap: true,
|
|
66
|
+
className: "u-mt-half"
|
|
67
|
+
}, appName))
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
exports.AppItem = AppItem;
|
|
73
|
+
AppItem.propTypes = {
|
|
74
|
+
app: _proptypes.appShape.isRequired
|
|
75
|
+
};
|
|
76
|
+
var _default = AppItem;
|
|
77
|
+
exports.default = _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.AppItemPlaceholder = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _Skeleton = _interopRequireDefault(require("cozy-ui/transpiled/react/Skeleton"));
|
|
13
|
+
|
|
14
|
+
var AppItemPlaceholder = function AppItemPlaceholder() {
|
|
15
|
+
return /*#__PURE__*/_react.default.createElement(_Skeleton.default, {
|
|
16
|
+
variant: "rect",
|
|
17
|
+
width: 48,
|
|
18
|
+
height: 48,
|
|
19
|
+
className: "u-m-1 u-bdrs-5"
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.AppItemPlaceholder = AppItemPlaceholder;
|
|
24
|
+
var _default = AppItemPlaceholder;
|
|
25
|
+
exports.default = _default;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _AppsMenuContent = _interopRequireDefault(require("./AppsMenuContent"));
|
|
17
|
+
|
|
18
|
+
var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
|
|
19
|
+
|
|
20
|
+
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
21
|
+
|
|
22
|
+
var _Menu = _interopRequireDefault(require("cozy-ui/transpiled/react/Menu"));
|
|
23
|
+
|
|
24
|
+
var _Mosaic = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Mosaic"));
|
|
25
|
+
|
|
26
|
+
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
27
|
+
|
|
28
|
+
var _CozyDialogs = require("cozy-ui/transpiled/react/CozyDialogs");
|
|
29
|
+
|
|
30
|
+
var AppsMenu = function AppsMenu() {
|
|
31
|
+
var _useState = (0, _react.useState)(false),
|
|
32
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
33
|
+
isOpen = _useState2[0],
|
|
34
|
+
setOpen = _useState2[1];
|
|
35
|
+
|
|
36
|
+
var buttonRef = (0, _react.useRef)();
|
|
37
|
+
|
|
38
|
+
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
|
|
39
|
+
isMobile = _useBreakpoints.isMobile;
|
|
40
|
+
|
|
41
|
+
var toggleMenu = function toggleMenu() {
|
|
42
|
+
setOpen(!isOpen);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement("nav", null, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
46
|
+
ref: buttonRef,
|
|
47
|
+
onClick: toggleMenu,
|
|
48
|
+
className: "u-p-half"
|
|
49
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
50
|
+
icon: _Mosaic.default,
|
|
51
|
+
size: "18"
|
|
52
|
+
})), isMobile ? /*#__PURE__*/_react.default.createElement(_CozyDialogs.Dialog, {
|
|
53
|
+
open: isOpen,
|
|
54
|
+
size: "small",
|
|
55
|
+
onClose: toggleMenu,
|
|
56
|
+
content: /*#__PURE__*/_react.default.createElement(_AppsMenuContent.default, null)
|
|
57
|
+
}) : /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
58
|
+
open: isOpen,
|
|
59
|
+
anchorEl: buttonRef.current,
|
|
60
|
+
container: buttonRef.current,
|
|
61
|
+
getContentAnchorEl: null,
|
|
62
|
+
onClose: toggleMenu,
|
|
63
|
+
anchorOrigin: {
|
|
64
|
+
vertical: 'bottom',
|
|
65
|
+
horizontal: 'left'
|
|
66
|
+
},
|
|
67
|
+
transformOrigin: {
|
|
68
|
+
vertical: -10
|
|
69
|
+
}
|
|
70
|
+
}, /*#__PURE__*/_react.default.createElement(_AppsMenuContent.default, null)));
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var _default = AppsMenu;
|
|
74
|
+
exports.default = _default;
|
package/dist/components/Bar.js
CHANGED
|
@@ -23,10 +23,14 @@ var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
|
23
23
|
|
|
24
24
|
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
25
25
|
|
|
26
|
+
var _AppTitle = _interopRequireDefault(require("cozy-ui/transpiled/react/AppTitle"));
|
|
27
|
+
|
|
26
28
|
var _cozyDeviceHelper = require("cozy-device-helper");
|
|
27
29
|
|
|
28
30
|
var _cozyFlags = _interopRequireDefault(require("cozy-flags"));
|
|
29
31
|
|
|
32
|
+
var _isTwakeTheme = require("cozy-ui/transpiled/react/helpers/isTwakeTheme");
|
|
33
|
+
|
|
30
34
|
var _ButtonCozyHome = require("./Apps/ButtonCozyHome");
|
|
31
35
|
|
|
32
36
|
var _Banner = _interopRequireDefault(require("./Banner"));
|
|
@@ -37,6 +41,12 @@ var _Settings = _interopRequireDefault(require("./Settings"));
|
|
|
37
41
|
|
|
38
42
|
var _Apps = _interopRequireDefault(require("./Apps"));
|
|
39
43
|
|
|
44
|
+
var _AppsMenu = _interopRequireDefault(require("./AppsMenu"));
|
|
45
|
+
|
|
46
|
+
var _UserMenu = _interopRequireDefault(require("./UserMenu"));
|
|
47
|
+
|
|
48
|
+
var _HelpLink = _interopRequireDefault(require("./HelpLink"));
|
|
49
|
+
|
|
40
50
|
var _reducers = require("../lib/reducers");
|
|
41
51
|
|
|
42
52
|
var _useI18n2 = _interopRequireDefault(require("./useI18n"));
|
|
@@ -76,7 +86,8 @@ var Bar = function Bar(_ref) {
|
|
|
76
86
|
appNamePrefix = _ref.appNamePrefix,
|
|
77
87
|
appSlug = _ref.appSlug,
|
|
78
88
|
iconPath = _ref.iconPath,
|
|
79
|
-
hasFetchedApps = _ref.hasFetchedApps
|
|
89
|
+
hasFetchedApps = _ref.hasFetchedApps,
|
|
90
|
+
homeApp = _ref.homeApp;
|
|
80
91
|
var client = (0, _cozyClient.useClient)();
|
|
81
92
|
|
|
82
93
|
var _useI18n = (0, _useI18n2.default)(),
|
|
@@ -90,7 +101,7 @@ var Bar = function Bar(_ref) {
|
|
|
90
101
|
drawerVisible = _useState2[0],
|
|
91
102
|
setDrawerVisible = _useState2[1];
|
|
92
103
|
|
|
93
|
-
var showDrawerAndBurger = !isPublic && isMobile;
|
|
104
|
+
var showDrawerAndBurger = !isPublic && isMobile && !(0, _isTwakeTheme.isTwakeTheme)();
|
|
94
105
|
var showSettings = !isPublic && !isMobile;
|
|
95
106
|
var fetchInitialData = (0, _react.useCallback)(function () {
|
|
96
107
|
if (!isPublic) {
|
|
@@ -125,7 +136,7 @@ var Bar = function Bar(_ref) {
|
|
|
125
136
|
};
|
|
126
137
|
|
|
127
138
|
var renderCenter = function renderCenter() {
|
|
128
|
-
return /*#__PURE__*/_react.default.createElement(_Apps.default, {
|
|
139
|
+
return (0, _isTwakeTheme.isTwakeTheme)() ? null : /*#__PURE__*/_react.default.createElement(_Apps.default, {
|
|
129
140
|
appName: appName,
|
|
130
141
|
appNamePrefix: appNamePrefix,
|
|
131
142
|
appSlug: appSlug,
|
|
@@ -140,6 +151,24 @@ var Bar = function Bar(_ref) {
|
|
|
140
151
|
return /*#__PURE__*/_react.default.createElement(_ButtonCozyHome.ButtonCozyHome, {
|
|
141
152
|
isInvertedTheme: isInvertedTheme
|
|
142
153
|
});
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if ((0, _isTwakeTheme.isTwakeTheme)()) {
|
|
157
|
+
var homeHref = !isPublic && homeApp && homeApp.href;
|
|
158
|
+
|
|
159
|
+
if (isMobile) {
|
|
160
|
+
return /*#__PURE__*/_react.default.createElement(_ButtonCozyHome.ButtonCozyHome, {
|
|
161
|
+
homeHref: homeHref
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ButtonCozyHome.ButtonCozyHome, {
|
|
166
|
+
homeHref: homeHref
|
|
167
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
168
|
+
className: "coz-nav-apps-btns-sep u-mr-half"
|
|
169
|
+
}), /*#__PURE__*/_react.default.createElement(_AppTitle.default, {
|
|
170
|
+
slug: appSlug
|
|
171
|
+
}));
|
|
143
172
|
} // data-tutorial attribute allows to be targeted in an application tutorial
|
|
144
173
|
|
|
145
174
|
|
|
@@ -164,6 +193,16 @@ var Bar = function Bar(_ref) {
|
|
|
164
193
|
}) : null;
|
|
165
194
|
};
|
|
166
195
|
|
|
196
|
+
var renderTwakeRight = function renderTwakeRight() {
|
|
197
|
+
// Special case because search on Drive still rely on old search UI
|
|
198
|
+
// that modifies the cozy-bar
|
|
199
|
+
// Can be removed when https://github.com/cozy/cozy-drive/pull/3320 is merged
|
|
200
|
+
if (appSlug === 'drive' && isMobile && barSearch) return null;
|
|
201
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_HelpLink.default, null), /*#__PURE__*/_react.default.createElement(_AppsMenu.default, null), /*#__PURE__*/_react.default.createElement(_UserMenu.default, {
|
|
202
|
+
onLogOut: onLogOut
|
|
203
|
+
}));
|
|
204
|
+
};
|
|
205
|
+
|
|
167
206
|
var renderSearch = function renderSearch() {
|
|
168
207
|
return searchOptions.enabled && !isMobile ? /*#__PURE__*/_react.default.createElement("div", {
|
|
169
208
|
className: "u-flex-grow u-mh-2"
|
|
@@ -185,7 +224,7 @@ var Bar = function Bar(_ref) {
|
|
|
185
224
|
className: "coz-bar-container"
|
|
186
225
|
}, barLeft || renderLeft(), barCenter || renderCenter(), /*#__PURE__*/_react.default.createElement("div", {
|
|
187
226
|
className: "u-flex-grow"
|
|
188
|
-
}, barSearch || renderSearch()), searchOptions.enabled && isMobile ? /*#__PURE__*/_react.default.createElement(_SearchButton.default, null) : null, barRight || renderRight(), showDrawerAndBurger ? /*#__PURE__*/_react.default.createElement(_Drawer.default, {
|
|
227
|
+
}, barSearch || renderSearch()), searchOptions.enabled && isMobile ? /*#__PURE__*/_react.default.createElement(_SearchButton.default, null) : null, (0, _isTwakeTheme.isTwakeTheme)() ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, barRight, renderTwakeRight()) : barRight || renderRight(), showDrawerAndBurger ? /*#__PURE__*/_react.default.createElement(_Drawer.default, {
|
|
189
228
|
visible: drawerVisible,
|
|
190
229
|
onClose: toggleDrawer,
|
|
191
230
|
drawerListener: function drawerListener() {
|
|
@@ -211,7 +250,8 @@ Bar.propTypes = {
|
|
|
211
250
|
|
|
212
251
|
var mapStateToProps = function mapStateToProps(state) {
|
|
213
252
|
return {
|
|
214
|
-
hasFetchedApps: (0, _reducers.hasFetched)(state)
|
|
253
|
+
hasFetchedApps: (0, _reducers.hasFetched)(state),
|
|
254
|
+
homeApp: (0, _reducers.getHomeApp)(state)
|
|
215
255
|
};
|
|
216
256
|
};
|
|
217
257
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
|
|
13
|
+
|
|
14
|
+
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
15
|
+
|
|
16
|
+
var _HelpOutlined = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/HelpOutlined"));
|
|
17
|
+
|
|
18
|
+
var openHelpLink = function openHelpLink() {
|
|
19
|
+
window.open('https://support.cozy.io/', '_blank', 'noopener, noreferrer');
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var HelpLink = function HelpLink() {
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
24
|
+
onClick: openHelpLink,
|
|
25
|
+
className: "u-p-half"
|
|
26
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
27
|
+
icon: _HelpOutlined.default,
|
|
28
|
+
size: "18"
|
|
29
|
+
}));
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var _default = HelpLink;
|
|
33
|
+
exports.default = _default;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.UserMenuContent = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
|
|
14
|
+
var _cozyFlags = _interopRequireDefault(require("cozy-flags"));
|
|
15
|
+
|
|
16
|
+
var _cozyIntent = require("cozy-intent");
|
|
17
|
+
|
|
18
|
+
var _cozyClient = require("cozy-client");
|
|
19
|
+
|
|
20
|
+
var _instance = require("cozy-client/dist/models/instance");
|
|
21
|
+
|
|
22
|
+
var _List = _interopRequireDefault(require("cozy-ui/transpiled/react/List"));
|
|
23
|
+
|
|
24
|
+
var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
|
|
25
|
+
|
|
26
|
+
var _ListItemIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemIcon"));
|
|
27
|
+
|
|
28
|
+
var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
|
|
29
|
+
|
|
30
|
+
var _PersonAdd = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/PersonAdd"));
|
|
31
|
+
|
|
32
|
+
var _FromUser = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FromUser"));
|
|
33
|
+
|
|
34
|
+
var _Logout = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Logout"));
|
|
35
|
+
|
|
36
|
+
var _Cloud = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Cloud"));
|
|
37
|
+
|
|
38
|
+
var _Company = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Company"));
|
|
39
|
+
|
|
40
|
+
var _Right = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Right"));
|
|
41
|
+
|
|
42
|
+
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
43
|
+
|
|
44
|
+
var _Divider = _interopRequireDefault(require("cozy-ui/transpiled/react/Divider"));
|
|
45
|
+
|
|
46
|
+
var _Buttons = _interopRequireDefault(require("cozy-ui/transpiled/react/Buttons"));
|
|
47
|
+
|
|
48
|
+
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
49
|
+
|
|
50
|
+
var _useI18n2 = _interopRequireDefault(require("../useI18n"));
|
|
51
|
+
|
|
52
|
+
var _AvatarMyself = _interopRequireDefault(require("./components/AvatarMyself"));
|
|
53
|
+
|
|
54
|
+
var _helpers = require("./helpers");
|
|
55
|
+
|
|
56
|
+
var styles = {
|
|
57
|
+
"user-menu-content": "user-menu-content",
|
|
58
|
+
"user-menu-content-add-account": "user-menu-content-add-account"
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var UserMenuContent = function UserMenuContent(_ref) {
|
|
62
|
+
var onLogOut = _ref.onLogOut,
|
|
63
|
+
instance = _ref.instance,
|
|
64
|
+
diskUsage = _ref.diskUsage;
|
|
65
|
+
var webviewIntent = (0, _cozyIntent.useWebviewIntent)();
|
|
66
|
+
var client = (0, _cozyClient.useClient)();
|
|
67
|
+
|
|
68
|
+
var _useI18n = (0, _useI18n2.default)(),
|
|
69
|
+
t = _useI18n.t;
|
|
70
|
+
|
|
71
|
+
var _instance$data = instance.data,
|
|
72
|
+
public_name = _instance$data.public_name,
|
|
73
|
+
email = _instance$data.email;
|
|
74
|
+
|
|
75
|
+
var _makeDiskInfos = (0, _instance.makeDiskInfos)(diskUsage.data.used, diskUsage.data.quota),
|
|
76
|
+
humanDiskQuota = _makeDiskInfos.humanDiskQuota,
|
|
77
|
+
humanDiskUsage = _makeDiskInfos.humanDiskUsage;
|
|
78
|
+
|
|
79
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
80
|
+
className: (0, _classnames.default)(styles['user-menu-content'], 'u-flex u-flex-column')
|
|
81
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
82
|
+
className: "u-flex u-flex-column u-flex-items-center u-mt-half"
|
|
83
|
+
}, /*#__PURE__*/_react.default.createElement(_AvatarMyself.default, {
|
|
84
|
+
className: "u-mb-half"
|
|
85
|
+
}), /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
86
|
+
variant: "h4"
|
|
87
|
+
}, public_name), /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
88
|
+
variant: "body2"
|
|
89
|
+
}, email), (0, _cozyFlags.default)('cozy.b2b.enabled') && /*#__PURE__*/_react.default.createElement(_Buttons.default, {
|
|
90
|
+
label: t('userMenu.addAccount'),
|
|
91
|
+
variant: "secondary",
|
|
92
|
+
startIcon: /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
93
|
+
icon: _PersonAdd.default
|
|
94
|
+
}),
|
|
95
|
+
className: (0, _classnames.default)(styles['user-menu-content-add-account'], 'u-mt-1')
|
|
96
|
+
})), /*#__PURE__*/_react.default.createElement(_List.default, {
|
|
97
|
+
className: "u-pb-0"
|
|
98
|
+
}, /*#__PURE__*/_react.default.createElement(_ListItem.default, {
|
|
99
|
+
button: true,
|
|
100
|
+
size: "small",
|
|
101
|
+
onClick: function onClick() {
|
|
102
|
+
return (0, _helpers.openProfileLink)({
|
|
103
|
+
client: client
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
107
|
+
icon: _FromUser.default
|
|
108
|
+
})), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
|
|
109
|
+
primary: t('userMenu.manageProfile')
|
|
110
|
+
})), (0, _cozyFlags.default)('cozy.b2b.enabled') && /*#__PURE__*/_react.default.createElement(_ListItem.default, {
|
|
111
|
+
button: true,
|
|
112
|
+
size: "small"
|
|
113
|
+
}, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
114
|
+
icon: _Company.default
|
|
115
|
+
})), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
|
|
116
|
+
primary: t('userMenu.createBusinessAccount')
|
|
117
|
+
})), /*#__PURE__*/_react.default.createElement(_ListItem.default, {
|
|
118
|
+
button: true,
|
|
119
|
+
size: "small",
|
|
120
|
+
onClick: function onClick() {
|
|
121
|
+
return (0, _helpers.openStorageLink)({
|
|
122
|
+
client: client
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
126
|
+
icon: _Cloud.default
|
|
127
|
+
})), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
|
|
128
|
+
primary: t('userMenu.storage'),
|
|
129
|
+
secondary: t('userMenu.storageAvailable', humanDiskQuota - humanDiskUsage)
|
|
130
|
+
}), /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
131
|
+
icon: _Right.default
|
|
132
|
+
}))), /*#__PURE__*/_react.default.createElement(_Divider.default, {
|
|
133
|
+
component: "li",
|
|
134
|
+
variant: "inset"
|
|
135
|
+
}), /*#__PURE__*/_react.default.createElement(_ListItem.default, {
|
|
136
|
+
button: true,
|
|
137
|
+
size: "small",
|
|
138
|
+
onClick: function onClick() {
|
|
139
|
+
return (0, _helpers.logOut)({
|
|
140
|
+
client: client,
|
|
141
|
+
webviewIntent: webviewIntent,
|
|
142
|
+
onLogOut: onLogOut
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
146
|
+
icon: _Logout.default
|
|
147
|
+
})), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
|
|
148
|
+
primary: t('userMenu.logOut')
|
|
149
|
+
}))));
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
exports.UserMenuContent = UserMenuContent;
|
|
153
|
+
var _default = UserMenuContent;
|
|
154
|
+
exports.default = _default;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _cozyClient = require("cozy-client");
|
|
13
|
+
|
|
14
|
+
var _Avatar = _interopRequireDefault(require("cozy-ui/transpiled/react/Avatar"));
|
|
15
|
+
|
|
16
|
+
var _Skeleton = _interopRequireDefault(require("cozy-ui/transpiled/react/Skeleton"));
|
|
17
|
+
|
|
18
|
+
var _queries = require("../../../lib/queries");
|
|
19
|
+
|
|
20
|
+
var getInitials = _cozyClient.models.contact.getInitials;
|
|
21
|
+
|
|
22
|
+
var AvatarMyself = function AvatarMyself(_ref) {
|
|
23
|
+
var className = _ref.className,
|
|
24
|
+
_ref$size = _ref.size,
|
|
25
|
+
size = _ref$size === void 0 ? 'm' : _ref$size;
|
|
26
|
+
var myselfQuery = (0, _queries.buildMyselfQuery)();
|
|
27
|
+
|
|
28
|
+
var _useQuery = (0, _cozyClient.useQuery)(myselfQuery.definition, myselfQuery.options),
|
|
29
|
+
fetchStatus = _useQuery.fetchStatus,
|
|
30
|
+
data = _useQuery.data;
|
|
31
|
+
|
|
32
|
+
if (fetchStatus !== 'loaded') {
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_Skeleton.default, {
|
|
34
|
+
variant: "circle",
|
|
35
|
+
width: 32,
|
|
36
|
+
height: 32
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
var me = data[0];
|
|
41
|
+
|
|
42
|
+
if (me) {
|
|
43
|
+
var initials = getInitials(me);
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement(_Avatar.default, {
|
|
45
|
+
className: className,
|
|
46
|
+
size: size
|
|
47
|
+
}, initials);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var _default = AvatarMyself;
|
|
52
|
+
exports.default = _default;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.logOut = exports.openStorageLink = exports.openProfileLink = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _cozyClient = require("cozy-client");
|
|
15
|
+
|
|
16
|
+
var _cozyDeviceHelper = require("cozy-device-helper");
|
|
17
|
+
|
|
18
|
+
var getSettingsLink = function getSettingsLink(_ref) {
|
|
19
|
+
var client = _ref.client,
|
|
20
|
+
hash = _ref.hash;
|
|
21
|
+
return (0, _cozyClient.generateWebLink)({
|
|
22
|
+
cozyUrl: client.getStackClient().uri,
|
|
23
|
+
slug: 'settings',
|
|
24
|
+
hash: hash,
|
|
25
|
+
subDomainType: client.getInstanceOptions().subdomain
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
var openProfileLink = function openProfileLink(_ref2) {
|
|
30
|
+
var client = _ref2.client;
|
|
31
|
+
var link = getSettingsLink({
|
|
32
|
+
client: client,
|
|
33
|
+
hash: 'profile'
|
|
34
|
+
});
|
|
35
|
+
window.open(link, '_self');
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.openProfileLink = openProfileLink;
|
|
39
|
+
|
|
40
|
+
var openStorageLink = function openStorageLink(_ref3) {
|
|
41
|
+
var client = _ref3.client;
|
|
42
|
+
var link = getSettingsLink({
|
|
43
|
+
client: client,
|
|
44
|
+
hash: 'storage'
|
|
45
|
+
});
|
|
46
|
+
window.open(link, '_self');
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
exports.openStorageLink = openStorageLink;
|
|
50
|
+
|
|
51
|
+
var logOut = /*#__PURE__*/function () {
|
|
52
|
+
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref4) {
|
|
53
|
+
var client, webviewIntent, onLogOut, res;
|
|
54
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
55
|
+
while (1) {
|
|
56
|
+
switch (_context.prev = _context.next) {
|
|
57
|
+
case 0:
|
|
58
|
+
client = _ref4.client, webviewIntent = _ref4.webviewIntent, onLogOut = _ref4.onLogOut;
|
|
59
|
+
|
|
60
|
+
if (!(onLogOut && typeof onLogOut === 'function')) {
|
|
61
|
+
_context.next = 8;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
res = onLogOut();
|
|
66
|
+
|
|
67
|
+
if (!(res instanceof Promise)) {
|
|
68
|
+
_context.next = 6;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
_context.next = 6;
|
|
73
|
+
return res;
|
|
74
|
+
|
|
75
|
+
case 6:
|
|
76
|
+
_context.next = 11;
|
|
77
|
+
break;
|
|
78
|
+
|
|
79
|
+
case 8:
|
|
80
|
+
_context.next = 10;
|
|
81
|
+
return client.logout();
|
|
82
|
+
|
|
83
|
+
case 10:
|
|
84
|
+
return _context.abrupt("return", (0, _cozyDeviceHelper.isFlagshipApp)() && webviewIntent ? webviewIntent.call('logout') : window.location.reload());
|
|
85
|
+
|
|
86
|
+
case 11:
|
|
87
|
+
case "end":
|
|
88
|
+
return _context.stop();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}, _callee);
|
|
92
|
+
}));
|
|
93
|
+
|
|
94
|
+
return function logOut(_x) {
|
|
95
|
+
return _ref5.apply(this, arguments);
|
|
96
|
+
};
|
|
97
|
+
}();
|
|
98
|
+
|
|
99
|
+
exports.logOut = logOut;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
|
|
17
|
+
|
|
18
|
+
var _Menu = _interopRequireDefault(require("cozy-ui/transpiled/react/Menu"));
|
|
19
|
+
|
|
20
|
+
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
21
|
+
|
|
22
|
+
var _CozyDialogs = require("cozy-ui/transpiled/react/CozyDialogs");
|
|
23
|
+
|
|
24
|
+
var _cozyClient = require("cozy-client");
|
|
25
|
+
|
|
26
|
+
var _UserMenuContent = _interopRequireDefault(require("./UserMenuContent"));
|
|
27
|
+
|
|
28
|
+
var _AvatarMyself = _interopRequireDefault(require("./components/AvatarMyself"));
|
|
29
|
+
|
|
30
|
+
var UserMenu = function UserMenu(_ref) {
|
|
31
|
+
var onLogOut = _ref.onLogOut;
|
|
32
|
+
|
|
33
|
+
var _useState = (0, _react.useState)(false),
|
|
34
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
35
|
+
isOpen = _useState2[0],
|
|
36
|
+
setOpen = _useState2[1];
|
|
37
|
+
|
|
38
|
+
var buttonRef = (0, _react.useRef)();
|
|
39
|
+
|
|
40
|
+
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
|
|
41
|
+
isMobile = _useBreakpoints.isMobile;
|
|
42
|
+
|
|
43
|
+
var _useInstanceInfo = (0, _cozyClient.useInstanceInfo)(),
|
|
44
|
+
isLoaded = _useInstanceInfo.isLoaded,
|
|
45
|
+
instance = _useInstanceInfo.instance,
|
|
46
|
+
diskUsage = _useInstanceInfo.diskUsage;
|
|
47
|
+
|
|
48
|
+
var toggleMenu = function toggleMenu() {
|
|
49
|
+
setOpen(!isOpen);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement("nav", null, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
53
|
+
ref: buttonRef,
|
|
54
|
+
onClick: toggleMenu,
|
|
55
|
+
disabled: !isLoaded,
|
|
56
|
+
className: "u-p-0 u-ml-half"
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement(_AvatarMyself.default, {
|
|
58
|
+
size: isMobile ? 's' : 'm'
|
|
59
|
+
})), isMobile ? /*#__PURE__*/_react.default.createElement(_CozyDialogs.Dialog, {
|
|
60
|
+
open: isOpen,
|
|
61
|
+
size: "small",
|
|
62
|
+
onClose: toggleMenu,
|
|
63
|
+
content: /*#__PURE__*/_react.default.createElement(_UserMenuContent.default, {
|
|
64
|
+
onLogOut: onLogOut,
|
|
65
|
+
instance: instance,
|
|
66
|
+
diskUsage: diskUsage
|
|
67
|
+
})
|
|
68
|
+
}) : /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
69
|
+
open: isOpen,
|
|
70
|
+
anchorEl: buttonRef.current,
|
|
71
|
+
container: buttonRef.current,
|
|
72
|
+
getContentAnchorEl: null,
|
|
73
|
+
onClose: toggleMenu,
|
|
74
|
+
anchorOrigin: {
|
|
75
|
+
vertical: 'bottom',
|
|
76
|
+
horizontal: 'left'
|
|
77
|
+
},
|
|
78
|
+
transformOrigin: {
|
|
79
|
+
vertical: -10
|
|
80
|
+
}
|
|
81
|
+
}, /*#__PURE__*/_react.default.createElement(_UserMenuContent.default, {
|
|
82
|
+
onLogOut: onLogOut,
|
|
83
|
+
instance: instance,
|
|
84
|
+
diskUsage: diskUsage
|
|
85
|
+
})));
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
var _default = UserMenu;
|
|
89
|
+
exports.default = _default;
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildMyselfQuery = void 0;
|
|
7
|
+
|
|
8
|
+
var _cozyClient = require("cozy-client");
|
|
9
|
+
|
|
10
|
+
var buildMyselfQuery = function buildMyselfQuery() {
|
|
11
|
+
return {
|
|
12
|
+
definition: (0, _cozyClient.Q)('io.cozy.contacts').where({
|
|
13
|
+
me: true
|
|
14
|
+
}),
|
|
15
|
+
options: {
|
|
16
|
+
as: 'io.cozy.contacts/myself'
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.buildMyselfQuery = buildMyselfQuery;
|
package/dist/locales/en.json
CHANGED
|
@@ -49,5 +49,13 @@
|
|
|
49
49
|
"moved": {
|
|
50
50
|
"description": "The Cozy has been moved to a new address"
|
|
51
51
|
}
|
|
52
|
+
},
|
|
53
|
+
"userMenu": {
|
|
54
|
+
"addAccount": "Add account",
|
|
55
|
+
"manageProfile": "Manage profile",
|
|
56
|
+
"createBusinessAccount": "Create business account",
|
|
57
|
+
"storage": "Storage",
|
|
58
|
+
"storageAvailable": "%{smart_count} GB available",
|
|
59
|
+
"logOut": "Log out"
|
|
52
60
|
}
|
|
53
61
|
}
|
package/dist/locales/fr.json
CHANGED
|
@@ -49,5 +49,13 @@
|
|
|
49
49
|
"moved": {
|
|
50
50
|
"description": "Ce Cozy a été déplacé vers une nouvelle adresse"
|
|
51
51
|
}
|
|
52
|
+
},
|
|
53
|
+
"userMenu": {
|
|
54
|
+
"addAccount": "Ajouter un compte",
|
|
55
|
+
"manageProfile": "Gérer mon profil",
|
|
56
|
+
"createBusinessAccount": "Créer un compte entreprise",
|
|
57
|
+
"storage": "Stockage",
|
|
58
|
+
"storageAvailable": "%{smart_count} Go disponible",
|
|
59
|
+
"logOut": "Se déconnecter"
|
|
52
60
|
}
|
|
53
61
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.apps-menu-grid
|
|
2
|
+
display: flex
|
|
3
|
+
flex-wrap: wrap
|
|
4
|
+
width: 100%
|
|
5
|
+
box-sizing: border-box
|
|
6
|
+
padding-left: 0.5rem
|
|
7
|
+
padding-right: 0.5rem
|
|
8
|
+
|
|
9
|
+
.apps-menu-grid-item-wrapper
|
|
10
|
+
width: 33%
|
|
11
|
+
aspect-ratio: 1
|
|
12
|
+
|
|
13
|
+
.apps-menu-grid-item
|
|
14
|
+
display: flex
|
|
15
|
+
flex-direction: column
|
|
16
|
+
justify-content: center
|
|
17
|
+
align-items: center
|
|
18
|
+
text-decoration: none
|
|
19
|
+
width: 60%
|
|
20
|
+
min-width: 48px
|
package/dist/stylesheet.css
CHANGED
|
@@ -1,3 +1,39 @@
|
|
|
1
|
+
/* imported from apps-menu.styl */
|
|
2
|
+
|
|
3
|
+
.apps-menu-grid {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-wrap: wrap;
|
|
6
|
+
width: 100%;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
padding-left: 0.5rem;
|
|
9
|
+
padding-right: 0.5rem;
|
|
10
|
+
}
|
|
11
|
+
.apps-menu-grid-item-wrapper {
|
|
12
|
+
width: 33%;
|
|
13
|
+
aspect-ratio: 1;
|
|
14
|
+
}
|
|
15
|
+
.apps-menu-grid-item {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
text-decoration: none;
|
|
21
|
+
width: 60%;
|
|
22
|
+
min-width: 48px;
|
|
23
|
+
}
|
|
24
|
+
/* imported from user-menu.styl */
|
|
25
|
+
|
|
26
|
+
.user-menu-content {
|
|
27
|
+
width: 320px;
|
|
28
|
+
}
|
|
29
|
+
@media (max-width: 48rem) {
|
|
30
|
+
.user-menu-content {
|
|
31
|
+
width: auto;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
.user-menu-content-add-account {
|
|
35
|
+
width: calc(100% - 32px);
|
|
36
|
+
}
|
|
1
37
|
/* imported from index.styl */
|
|
2
38
|
|
|
3
39
|
[role=banner] .coz-sep-flex {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cozy-bar",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "18.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/)",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"babel-plugin-module-resolver": "^4.0.0",
|
|
42
42
|
"babel-plugin-transform-define": "^2.0.0",
|
|
43
43
|
"babel-preset-cozy-app": "^1.9.0",
|
|
44
|
-
"cozy-client": "^
|
|
44
|
+
"cozy-client": "^52.1.0",
|
|
45
45
|
"cozy-dataproxy-lib": "^4.1.0",
|
|
46
46
|
"cozy-device-helper": "2.6.0",
|
|
47
47
|
"cozy-flags": "^4.6.1",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cozy-interapp": "0.4.9",
|
|
50
50
|
"cozy-logger": "1.9.1",
|
|
51
51
|
"cozy-realtime": "^4.0.5",
|
|
52
|
-
"cozy-ui": "^
|
|
52
|
+
"cozy-ui": "^121.8.0",
|
|
53
53
|
"eslint-config-cozy-app": "2.0.0",
|
|
54
54
|
"identity-obj-proxy": "3.0.0",
|
|
55
55
|
"jest": "24.9.0",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"stylus": "0.57.0"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"cozy-search": "0.
|
|
64
|
+
"cozy-search": "0.2.0",
|
|
65
65
|
"hammerjs": "2.0.8",
|
|
66
66
|
"lodash.debounce": "4.0.8",
|
|
67
67
|
"lodash.set": "^4.3.2",
|
|
@@ -75,14 +75,14 @@
|
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
77
|
"@cozy/minilog": ">=1.0.0",
|
|
78
|
-
"cozy-client": ">=
|
|
78
|
+
"cozy-client": ">=52.1.0",
|
|
79
79
|
"cozy-dataproxy-lib": ">=4.1.0",
|
|
80
80
|
"cozy-device-helper": ">=2.6.0",
|
|
81
81
|
"cozy-flags": ">=4.6.1",
|
|
82
82
|
"cozy-intent": ">=2.29.1",
|
|
83
83
|
"cozy-interapp": ">=0.4.9",
|
|
84
84
|
"cozy-realtime": ">=4.0.5",
|
|
85
|
-
"cozy-ui": ">=
|
|
85
|
+
"cozy-ui": ">=121.8.0",
|
|
86
86
|
"react": ">=16.10.1",
|
|
87
87
|
"react-dom": ">=16.10.1",
|
|
88
88
|
"react-router-dom": ">=6.14.2"
|