@availity/mui-avatar 0.1.19 → 0.2.1

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/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.2.1](https://github.com/Availity/element/compare/@availity/mui-avatar@0.2.0...@availity/mui-avatar@0.2.1) (2024-08-05)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `mui-icon` updated to version `0.2.0`
10
+ ## [0.2.0](https://github.com/Availity/element/compare/@availity/mui-avatar@0.1.19...@availity/mui-avatar@0.2.0) (2024-08-01)
11
+
12
+
13
+ ### Features
14
+
15
+ * **mui-avatar:** get the user's avatar by default ([3a3e2e7](https://github.com/Availity/element/commit/3a3e2e7da6912d2e9e7d69f676a3e16a8838bfc7))
16
+
5
17
  ## [0.1.19](https://github.com/Availity/element/compare/@availity/mui-avatar@0.1.18...@availity/mui-avatar@0.1.19) (2024-07-22)
6
18
 
7
19
  ### Dependency Updates
package/dist/index.d.mts CHANGED
@@ -5,6 +5,6 @@ interface AvatarProps extends Omit<AvatarProps$1, 'variant'> {
5
5
  * @default xl */
6
6
  size?: 'xs' | 's' | 'm' | 'l' | 'xl';
7
7
  }
8
- declare const Avatar: ({ children, size, sx, ...rest }: AvatarProps) => JSX.Element;
8
+ declare const Avatar: ({ children, size, src, sx, ...rest }: AvatarProps) => JSX.Element;
9
9
 
10
10
  export { Avatar, type AvatarProps };
package/dist/index.d.ts CHANGED
@@ -5,6 +5,6 @@ interface AvatarProps extends Omit<AvatarProps$1, 'variant'> {
5
5
  * @default xl */
6
6
  size?: 'xs' | 's' | 'm' | 'l' | 'xl';
7
7
  }
8
- declare const Avatar: ({ children, size, sx, ...rest }: AvatarProps) => JSX.Element;
8
+ declare const Avatar: ({ children, size, src, sx, ...rest }: AvatarProps) => JSX.Element;
9
9
 
10
10
  export { Avatar, type AvatarProps };
package/dist/index.js CHANGED
@@ -55,6 +55,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
55
55
  mod
56
56
  ));
57
57
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
+ var __async = (__this, __arguments, generator) => {
59
+ return new Promise((resolve, reject) => {
60
+ var fulfilled = (value) => {
61
+ try {
62
+ step(generator.next(value));
63
+ } catch (e) {
64
+ reject(e);
65
+ }
66
+ };
67
+ var rejected = (value) => {
68
+ try {
69
+ step(generator.throw(value));
70
+ } catch (e) {
71
+ reject(e);
72
+ }
73
+ };
74
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
75
+ step((generator = generator.apply(__this, __arguments)).next());
76
+ });
77
+ };
58
78
 
59
79
  // src/index.ts
60
80
  var src_exports = {};
@@ -65,7 +85,10 @@ module.exports = __toCommonJS(src_exports);
65
85
 
66
86
  // src/lib/Avatar.tsx
67
87
  var import_Avatar = __toESM(require("@mui/material/Avatar"));
88
+ var import_react = __toESM(require("react"));
68
89
  var import_design_tokens = require("@availity/design-tokens");
90
+ var import_api_axios = require("@availity/api-axios");
91
+ var import_mui_icon = require("@availity/mui-icon");
69
92
  var import_jsx_runtime = require("react/jsx-runtime");
70
93
  var sizeStyling = {
71
94
  xs: { width: 18, height: 18, fontSize: import_design_tokens.tokens.fontSizesCaption },
@@ -87,13 +110,27 @@ var formatChildren = (children, size) => {
87
110
  return children;
88
111
  };
89
112
  var Avatar = (_a) => {
90
- var _b = _a, { children, size = "xl", sx } = _b, rest = __objRest(_b, ["children", "size", "sx"]);
113
+ var _b = _a, { children, size = "xl", src, sx } = _b, rest = __objRest(_b, ["children", "size", "src", "sx"]);
114
+ const [avatar, setAvatar] = import_react.default.useState();
115
+ (0, import_react.useEffect)(() => {
116
+ const fetchAvatar = () => __async(void 0, null, function* () {
117
+ if (src) {
118
+ setAvatar(src);
119
+ } else {
120
+ const resp = yield import_api_axios.avSettingsApi.getApplication("AVATAR");
121
+ const avi = resp.data.settings[0].avatar;
122
+ setAvatar(avi);
123
+ }
124
+ });
125
+ fetchAvatar();
126
+ }, [src]);
91
127
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
128
  import_Avatar.default,
93
129
  __spreadProps(__spreadValues({}, rest), {
94
130
  variant: "circular",
131
+ src: children ? void 0 : avatar,
95
132
  sx: __spreadValues(__spreadValues({}, sx), sizeStyling[size] || sizeStyling.xl),
96
- children: formatChildren(children, size)
133
+ children: children ? formatChildren(children, size) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_icon.UserIcon, {})
97
134
  })
98
135
  );
99
136
  };
package/dist/index.mjs CHANGED
@@ -29,10 +29,33 @@ var __objRest = (source, exclude) => {
29
29
  }
30
30
  return target;
31
31
  };
32
+ var __async = (__this, __arguments, generator) => {
33
+ return new Promise((resolve, reject) => {
34
+ var fulfilled = (value) => {
35
+ try {
36
+ step(generator.next(value));
37
+ } catch (e) {
38
+ reject(e);
39
+ }
40
+ };
41
+ var rejected = (value) => {
42
+ try {
43
+ step(generator.throw(value));
44
+ } catch (e) {
45
+ reject(e);
46
+ }
47
+ };
48
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
49
+ step((generator = generator.apply(__this, __arguments)).next());
50
+ });
51
+ };
32
52
 
33
53
  // src/lib/Avatar.tsx
34
54
  import { default as MuiAvatar } from "@mui/material/Avatar";
55
+ import React, { useEffect } from "react";
35
56
  import { tokens } from "@availity/design-tokens";
57
+ import { avSettingsApi } from "@availity/api-axios";
58
+ import { UserIcon } from "@availity/mui-icon";
36
59
  import { jsx } from "react/jsx-runtime";
37
60
  var sizeStyling = {
38
61
  xs: { width: 18, height: 18, fontSize: tokens.fontSizesCaption },
@@ -54,13 +77,27 @@ var formatChildren = (children, size) => {
54
77
  return children;
55
78
  };
56
79
  var Avatar = (_a) => {
57
- var _b = _a, { children, size = "xl", sx } = _b, rest = __objRest(_b, ["children", "size", "sx"]);
80
+ var _b = _a, { children, size = "xl", src, sx } = _b, rest = __objRest(_b, ["children", "size", "src", "sx"]);
81
+ const [avatar, setAvatar] = React.useState();
82
+ useEffect(() => {
83
+ const fetchAvatar = () => __async(void 0, null, function* () {
84
+ if (src) {
85
+ setAvatar(src);
86
+ } else {
87
+ const resp = yield avSettingsApi.getApplication("AVATAR");
88
+ const avi = resp.data.settings[0].avatar;
89
+ setAvatar(avi);
90
+ }
91
+ });
92
+ fetchAvatar();
93
+ }, [src]);
58
94
  return /* @__PURE__ */ jsx(
59
95
  MuiAvatar,
60
96
  __spreadProps(__spreadValues({}, rest), {
61
97
  variant: "circular",
98
+ src: children ? void 0 : avatar,
62
99
  sx: __spreadValues(__spreadValues({}, sx), sizeStyling[size] || sizeStyling.xl),
63
- children: formatChildren(children, size)
100
+ children: children ? formatChildren(children, size) : /* @__PURE__ */ jsx(UserIcon, {})
64
101
  })
65
102
  );
66
103
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@availity/mui-avatar",
3
- "version": "0.1.19",
3
+ "version": "0.2.1",
4
4
  "description": "Availity MUI Avatar Component - part of the @availity/element design system",
5
5
  "keywords": [
6
6
  "react",
@@ -32,7 +32,7 @@
32
32
  "publish:canary": "yarn npm publish --access public --tag canary"
33
33
  },
34
34
  "devDependencies": {
35
- "@availity/mui-icon": "^0.9.0",
35
+ "@availity/mui-icon": "^0.10.0",
36
36
  "@mui/material": "^5.15.15",
37
37
  "react": "18.2.0",
38
38
  "react-dom": "18.2.0",
@@ -40,6 +40,7 @@
40
40
  "typescript": "^5.4.5"
41
41
  },
42
42
  "peerDependencies": {
43
+ "@availity/mui-icon": "^0.10.0",
43
44
  "@mui/material": "^5.11.9",
44
45
  "react": ">=16.3.0"
45
46
  },
@@ -47,6 +48,7 @@
47
48
  "access": "public"
48
49
  },
49
50
  "dependencies": {
51
+ "@availity/api-axios": "^9.0.0",
50
52
  "@availity/design-tokens": "^0.13.2"
51
53
  }
52
54
  }
@@ -20,12 +20,16 @@ export default meta;
20
20
 
21
21
  export const _Avatar: StoryObj<typeof Avatar> = {
22
22
  render: (args: AvatarProps) => <Avatar {...args} />,
23
+ };
24
+
25
+ export const _TextAvatar: StoryObj<typeof Avatar> = {
26
+ render: (args: AvatarProps) => <Avatar {...args} />,
23
27
  args: {
24
28
  children: 'John Doe',
25
29
  },
26
30
  };
27
31
 
28
- export const _ImageAvatar: StoryObj<typeof Avatar> = {
32
+ export const _CustomSrcAvatar: StoryObj<typeof Avatar> = {
29
33
  render: (args: AvatarProps) => <Avatar {...args} />,
30
34
  args: {
31
35
  src: 'https://avatars.githubusercontent.com/u/329985?s=100',
@@ -1,6 +1,8 @@
1
1
  import { default as MuiAvatar, AvatarProps as MuiAvatarProps } from '@mui/material/Avatar';
2
- import React from 'react';
2
+ import React, { useEffect } from 'react';
3
3
  import { tokens } from '@availity/design-tokens';
4
+ import { avSettingsApi } from '@availity/api-axios';
5
+ import { UserIcon } from '@availity/mui-icon';
4
6
 
5
7
  export interface AvatarProps extends Omit<MuiAvatarProps, 'variant'> {
6
8
  /** The size of the component.
@@ -32,17 +34,36 @@ const formatChildren = (children: React.ReactNode, size: 'xs' | 's' | 'm' | 'l'
32
34
  return children;
33
35
  };
34
36
 
35
- export const Avatar = ({ children, size = 'xl', sx, ...rest }: AvatarProps): JSX.Element => {
37
+ export const Avatar = ({ children, size = 'xl', src, sx, ...rest }: AvatarProps): JSX.Element => {
38
+ const [avatar, setAvatar] = React.useState<string>();
39
+
40
+ useEffect(() => {
41
+ const fetchAvatar = async () => {
42
+ if (src) {
43
+ setAvatar(src);
44
+ } else {
45
+ const resp = await avSettingsApi.getApplication('AVATAR');
46
+
47
+ const avi = resp.data.settings[0].avatar;
48
+
49
+ setAvatar(avi);
50
+ }
51
+ };
52
+
53
+ fetchAvatar();
54
+ }, [src]);
55
+
36
56
  return (
37
57
  <MuiAvatar
38
58
  {...rest}
39
59
  variant="circular"
60
+ src={children ? undefined : avatar}
40
61
  sx={{
41
62
  ...sx,
42
63
  ...(sizeStyling[size] || sizeStyling.xl),
43
64
  }}
44
65
  >
45
- {formatChildren(children, size)}
66
+ {children ? formatChildren(children, size) : <UserIcon />}
46
67
  </MuiAvatar>
47
68
  );
48
69
  };