@tamagui/avatar 1.0.1-beta.99 → 1.0.1-rc.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.
@@ -1,38 +1,10 @@
1
+ "use strict";
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
6
  var __getProtoOf = Object.getPrototypeOf;
9
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __objRest = (source, exclude) => {
25
- var target = {};
26
- for (var prop in source)
27
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
- target[prop] = source[prop];
29
- if (source != null && __getOwnPropSymbols)
30
- for (var prop of __getOwnPropSymbols(source)) {
31
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
- target[prop] = source[prop];
33
- }
34
- return target;
35
- };
36
8
  var __export = (target, all) => {
37
9
  for (var name in all)
38
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -45,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
45
17
  }
46
18
  return to;
47
19
  };
48
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
49
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
50
25
  var Avatar_exports = {};
51
26
  __export(Avatar_exports, {
@@ -57,6 +32,7 @@ __export(Avatar_exports, {
57
32
  createAvatarScope: () => createAvatarScope
58
33
  });
59
34
  module.exports = __toCommonJS(Avatar_exports);
35
+ var import_jsx_runtime = require("react/jsx-runtime");
60
36
  var import_core = require("@tamagui/core");
61
37
  var import_create_context = require("@tamagui/create-context");
62
38
  var import_image = require("@tamagui/image");
@@ -67,40 +43,44 @@ const AVATAR_NAME = "Avatar";
67
43
  const [createAvatarContext, createAvatarScope] = (0, import_create_context.createContextScope)(AVATAR_NAME);
68
44
  const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
69
45
  const IMAGE_NAME = "AvatarImage";
70
- const AvatarImage = React.forwardRef((props, forwardedRef) => {
71
- var _b;
72
- const _a = props, { __scopeAvatar, src, onLoadingStatusChange = () => {
73
- } } = _a, imageProps = __objRest(_a, ["__scopeAvatar", "src", "onLoadingStatusChange"]);
74
- const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
75
- const [status, setStatus] = React.useState("idle");
76
- const extras = (0, import_core.getVariantExtras)(props);
77
- const shapeSize = (0, import_core.getVariableValue)((_b = (0, import_shapes.getShapeSize)(context.size, extras)) == null ? void 0 : _b.width);
78
- React.useEffect(() => {
79
- setStatus("idle");
80
- }, [JSON.stringify(src)]);
81
- React.useEffect(() => {
82
- onLoadingStatusChange(status);
83
- context.onImageLoadingStatusChange(status);
84
- }, [status]);
85
- return /* @__PURE__ */ React.createElement(import_stacks.YStack, {
86
- fullscreen: true,
87
- zIndex: 1
88
- }, /* @__PURE__ */ React.createElement(import_image.Image, __spreadProps(__spreadValues(__spreadValues({
89
- fullscreen: true
90
- }, typeof shapeSize === "number" && !isNaN(shapeSize) && {
91
- width: shapeSize,
92
- height: shapeSize
93
- }), imageProps), {
94
- ref: forwardedRef,
95
- src,
96
- onError: () => {
97
- setStatus("error");
98
- },
99
- onLoad: () => {
100
- setStatus("loaded");
101
- }
102
- })));
103
- });
46
+ const AvatarImage = React.forwardRef(
47
+ (props, forwardedRef) => {
48
+ var _a;
49
+ const { __scopeAvatar, src, onLoadingStatusChange = () => {
50
+ }, ...imageProps } = props;
51
+ const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
52
+ const [status, setStatus] = React.useState("idle");
53
+ const extras = (0, import_core.getVariantExtras)(props);
54
+ const shapeSize = (0, import_core.getVariableValue)((_a = (0, import_shapes.getShapeSize)(context.size, extras)) == null ? void 0 : _a.width);
55
+ React.useEffect(() => {
56
+ setStatus("idle");
57
+ }, [JSON.stringify(src)]);
58
+ React.useEffect(() => {
59
+ onLoadingStatusChange(status);
60
+ context.onImageLoadingStatusChange(status);
61
+ }, [status]);
62
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
63
+ fullscreen: true,
64
+ zIndex: 1,
65
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_image.Image, {
66
+ fullscreen: true,
67
+ ...typeof shapeSize === "number" && !isNaN(shapeSize) && {
68
+ width: shapeSize,
69
+ height: shapeSize
70
+ },
71
+ ...imageProps,
72
+ ref: forwardedRef,
73
+ src,
74
+ onError: () => {
75
+ setStatus("error");
76
+ },
77
+ onLoad: () => {
78
+ setStatus("loaded");
79
+ }
80
+ })
81
+ });
82
+ }
83
+ );
104
84
  AvatarImage.displayName = IMAGE_NAME;
105
85
  const FALLBACK_NAME = "AvatarFallback";
106
86
  const AvatarFallbackFrame = (0, import_core.styled)(import_stacks.YStack, {
@@ -109,43 +89,52 @@ const AvatarFallbackFrame = (0, import_core.styled)(import_stacks.YStack, {
109
89
  fullscreen: true,
110
90
  zIndex: 0
111
91
  });
112
- const AvatarFallback = AvatarFallbackFrame.extractable(React.forwardRef((props, forwardedRef) => {
113
- const _a = props, { __scopeAvatar, delayMs } = _a, fallbackProps = __objRest(_a, ["__scopeAvatar", "delayMs"]);
114
- const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
115
- const [canRender, setCanRender] = React.useState(delayMs === void 0);
116
- React.useEffect(() => {
117
- if (delayMs !== void 0) {
118
- const timerId = setTimeout(() => setCanRender(true), delayMs);
119
- return () => clearTimeout(timerId);
92
+ const AvatarFallback = AvatarFallbackFrame.extractable(
93
+ React.forwardRef(
94
+ (props, forwardedRef) => {
95
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
96
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
97
+ const [canRender, setCanRender] = React.useState(delayMs === void 0);
98
+ React.useEffect(() => {
99
+ if (delayMs !== void 0) {
100
+ const timerId = setTimeout(() => setCanRender(true), delayMs);
101
+ return () => clearTimeout(timerId);
102
+ }
103
+ }, [delayMs]);
104
+ return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarFallbackFrame, {
105
+ ...fallbackProps,
106
+ ref: forwardedRef
107
+ }) : null;
120
108
  }
121
- }, [delayMs]);
122
- return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ React.createElement(AvatarFallbackFrame, __spreadProps(__spreadValues({}, fallbackProps), {
123
- ref: forwardedRef
124
- })) : null;
125
- }));
109
+ )
110
+ );
126
111
  AvatarFallback.displayName = FALLBACK_NAME;
127
112
  const AvatarFrame = (0, import_core.styled)(import_shapes.Square, {
128
113
  name: AVATAR_NAME,
129
114
  position: "relative",
130
115
  overflow: "hidden"
131
116
  });
132
- const Avatar = (0, import_core.withStaticProperties)(React.forwardRef((props, forwardedRef) => {
133
- const _a = props, { __scopeAvatar, size = "$4" } = _a, avatarProps = __objRest(_a, ["__scopeAvatar", "size"]);
134
- const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
135
- return /* @__PURE__ */ React.createElement(AvatarProvider, {
136
- size,
137
- scope: __scopeAvatar,
138
- imageLoadingStatus,
139
- onImageLoadingStatusChange: setImageLoadingStatus
140
- }, /* @__PURE__ */ React.createElement(AvatarFrame, __spreadProps(__spreadValues({
141
- size
142
- }, avatarProps), {
143
- ref: forwardedRef
144
- })));
145
- }), {
146
- Image: AvatarImage,
147
- Fallback: AvatarFallback
148
- });
117
+ const Avatar = (0, import_core.withStaticProperties)(
118
+ React.forwardRef((props, forwardedRef) => {
119
+ const { __scopeAvatar, size = "$4", ...avatarProps } = props;
120
+ const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
121
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarProvider, {
122
+ size,
123
+ scope: __scopeAvatar,
124
+ imageLoadingStatus,
125
+ onImageLoadingStatusChange: setImageLoadingStatus,
126
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarFrame, {
127
+ size,
128
+ ...avatarProps,
129
+ ref: forwardedRef
130
+ })
131
+ });
132
+ }),
133
+ {
134
+ Image: AvatarImage,
135
+ Fallback: AvatarFallback
136
+ }
137
+ );
149
138
  Avatar.displayName = AVATAR_NAME;
150
139
  // Annotate the CommonJS export names for ESM import in node:
151
140
  0 && (module.exports = {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/Avatar.tsx"],
4
4
  "sourcesContent": ["// forked from radix https://github.com/radix-ui/primitives/blob/main/packages/react/avatar/src/Avatar.tsx\n\nimport {\n GetProps,\n SizeTokens,\n TamaguiElement,\n getVariableValue,\n getVariantExtras,\n styled,\n withStaticProperties,\n} from '@tamagui/core'\nimport { Scope, createContextScope } from '@tamagui/create-context'\nimport { Image, ImageProps } from '@tamagui/image'\nimport { Square, getShapeSize } from '@tamagui/shapes'\nimport { YStack } from '@tamagui/stacks'\nimport * as React from 'react'\n\nconst AVATAR_NAME = 'Avatar'\n\ntype ScopedProps<P> = P & { __scopeAvatar?: Scope }\nconst [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME)\n\ntype ImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error'\n\ntype AvatarContextValue = {\n size: SizeTokens\n imageLoadingStatus: ImageLoadingStatus\n onImageLoadingStatusChange(status: ImageLoadingStatus): void\n}\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext<AvatarContextValue>(AVATAR_NAME)\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarImage\n * -----------------------------------------------------------------------------------------------*/\n\nconst IMAGE_NAME = 'AvatarImage'\n\ntype AvatarImageProps = Partial<ImageProps> & {\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void\n}\n\nconst AvatarImage = React.forwardRef<TamaguiElement, AvatarImageProps>(\n (props: ScopedProps<AvatarImageProps>, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {}, ...imageProps } = props\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar)\n const [status, setStatus] = React.useState<ImageLoadingStatus>('idle')\n const extras = getVariantExtras(props)\n const shapeSize = getVariableValue(getShapeSize(context.size, extras)?.width) as number\n\n React.useEffect(() => {\n setStatus('idle')\n }, [JSON.stringify(src)])\n\n React.useEffect(() => {\n onLoadingStatusChange(status)\n context.onImageLoadingStatusChange(status)\n }, [status])\n\n return (\n <YStack fullscreen zIndex={1}>\n <Image\n fullscreen\n {...(typeof shapeSize === 'number' &&\n !isNaN(shapeSize) && {\n width: shapeSize,\n height: shapeSize,\n })}\n {...imageProps}\n // @ts-ignore\n ref={forwardedRef}\n // @ts-ignore\n src={src}\n // onLoadStart={() => {\n // // setStatus('loading')\n // }}\n onError={() => {\n setStatus('error')\n }}\n onLoad={() => {\n setStatus('loaded')\n }}\n />\n </YStack>\n )\n }\n)\n\nAvatarImage.displayName = IMAGE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarFallback\n * -----------------------------------------------------------------------------------------------*/\n\nconst FALLBACK_NAME = 'AvatarFallback'\n\nexport const AvatarFallbackFrame = styled(YStack, {\n name: FALLBACK_NAME,\n position: 'absolute',\n fullscreen: true,\n zIndex: 0,\n})\n\ntype AvatarFallbackProps = GetProps<typeof AvatarFallbackFrame> & {\n delayMs?: number\n}\n\nconst AvatarFallback = AvatarFallbackFrame.extractable(\n React.forwardRef<TamaguiElement, AvatarFallbackProps>(\n (props: ScopedProps<AvatarFallbackProps>, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar)\n const [canRender, setCanRender] = React.useState(delayMs === undefined)\n\n React.useEffect(() => {\n if (delayMs !== undefined) {\n const timerId = setTimeout(() => setCanRender(true), delayMs)\n return () => clearTimeout(timerId)\n }\n }, [delayMs])\n\n return canRender && context.imageLoadingStatus !== 'loaded' ? (\n <AvatarFallbackFrame {...fallbackProps} ref={forwardedRef} />\n ) : null\n }\n )\n)\n\nAvatarFallback.displayName = FALLBACK_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * Avatar\n * -----------------------------------------------------------------------------------------------*/\n\nexport const AvatarFrame = styled(Square, {\n name: AVATAR_NAME,\n position: 'relative',\n overflow: 'hidden',\n})\n\ntype AvatarProps = GetProps<typeof AvatarFrame>\n\nconst Avatar = withStaticProperties(\n React.forwardRef<TamaguiElement, AvatarProps>((props: ScopedProps<AvatarProps>, forwardedRef) => {\n const { __scopeAvatar, size = '$4', ...avatarProps } = props\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState<ImageLoadingStatus>('idle')\n return (\n <AvatarProvider\n size={size}\n scope={__scopeAvatar}\n imageLoadingStatus={imageLoadingStatus}\n onImageLoadingStatusChange={setImageLoadingStatus}\n >\n <AvatarFrame size={size} {...avatarProps} ref={forwardedRef} />\n </AvatarProvider>\n )\n }),\n {\n Image: AvatarImage,\n Fallback: AvatarFallback,\n }\n)\n\nAvatar.displayName = AVATAR_NAME\n\nexport { createAvatarScope, Avatar, AvatarImage, AvatarFallback }\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps }\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './Avatar'\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,qBAAd;",
5
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,qBAAd;",
6
6
  "names": []
7
7
  }
@@ -1,34 +1,4 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
1
+ import { jsx } from "react/jsx-runtime";
32
2
  import {
33
3
  getVariableValue,
34
4
  getVariantExtras,
@@ -44,40 +14,44 @@ const AVATAR_NAME = "Avatar";
44
14
  const [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);
45
15
  const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
46
16
  const IMAGE_NAME = "AvatarImage";
47
- const AvatarImage = React.forwardRef((props, forwardedRef) => {
48
- var _b;
49
- const _a = props, { __scopeAvatar, src, onLoadingStatusChange = () => {
50
- } } = _a, imageProps = __objRest(_a, ["__scopeAvatar", "src", "onLoadingStatusChange"]);
51
- const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
52
- const [status, setStatus] = React.useState("idle");
53
- const extras = getVariantExtras(props);
54
- const shapeSize = getVariableValue((_b = getShapeSize(context.size, extras)) == null ? void 0 : _b.width);
55
- React.useEffect(() => {
56
- setStatus("idle");
57
- }, [JSON.stringify(src)]);
58
- React.useEffect(() => {
59
- onLoadingStatusChange(status);
60
- context.onImageLoadingStatusChange(status);
61
- }, [status]);
62
- return /* @__PURE__ */ React.createElement(YStack, {
63
- fullscreen: true,
64
- zIndex: 1
65
- }, /* @__PURE__ */ React.createElement(Image, __spreadProps(__spreadValues(__spreadValues({
66
- fullscreen: true
67
- }, typeof shapeSize === "number" && !isNaN(shapeSize) && {
68
- width: shapeSize,
69
- height: shapeSize
70
- }), imageProps), {
71
- ref: forwardedRef,
72
- src,
73
- onError: () => {
74
- setStatus("error");
75
- },
76
- onLoad: () => {
77
- setStatus("loaded");
78
- }
79
- })));
80
- });
17
+ const AvatarImage = React.forwardRef(
18
+ (props, forwardedRef) => {
19
+ var _a;
20
+ const { __scopeAvatar, src, onLoadingStatusChange = () => {
21
+ }, ...imageProps } = props;
22
+ const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
23
+ const [status, setStatus] = React.useState("idle");
24
+ const extras = getVariantExtras(props);
25
+ const shapeSize = getVariableValue((_a = getShapeSize(context.size, extras)) == null ? void 0 : _a.width);
26
+ React.useEffect(() => {
27
+ setStatus("idle");
28
+ }, [JSON.stringify(src)]);
29
+ React.useEffect(() => {
30
+ onLoadingStatusChange(status);
31
+ context.onImageLoadingStatusChange(status);
32
+ }, [status]);
33
+ return /* @__PURE__ */ jsx(YStack, {
34
+ fullscreen: true,
35
+ zIndex: 1,
36
+ children: /* @__PURE__ */ jsx(Image, {
37
+ fullscreen: true,
38
+ ...typeof shapeSize === "number" && !isNaN(shapeSize) && {
39
+ width: shapeSize,
40
+ height: shapeSize
41
+ },
42
+ ...imageProps,
43
+ ref: forwardedRef,
44
+ src,
45
+ onError: () => {
46
+ setStatus("error");
47
+ },
48
+ onLoad: () => {
49
+ setStatus("loaded");
50
+ }
51
+ })
52
+ });
53
+ }
54
+ );
81
55
  AvatarImage.displayName = IMAGE_NAME;
82
56
  const FALLBACK_NAME = "AvatarFallback";
83
57
  const AvatarFallbackFrame = styled(YStack, {
@@ -86,43 +60,52 @@ const AvatarFallbackFrame = styled(YStack, {
86
60
  fullscreen: true,
87
61
  zIndex: 0
88
62
  });
89
- const AvatarFallback = AvatarFallbackFrame.extractable(React.forwardRef((props, forwardedRef) => {
90
- const _a = props, { __scopeAvatar, delayMs } = _a, fallbackProps = __objRest(_a, ["__scopeAvatar", "delayMs"]);
91
- const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
92
- const [canRender, setCanRender] = React.useState(delayMs === void 0);
93
- React.useEffect(() => {
94
- if (delayMs !== void 0) {
95
- const timerId = setTimeout(() => setCanRender(true), delayMs);
96
- return () => clearTimeout(timerId);
63
+ const AvatarFallback = AvatarFallbackFrame.extractable(
64
+ React.forwardRef(
65
+ (props, forwardedRef) => {
66
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
67
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
68
+ const [canRender, setCanRender] = React.useState(delayMs === void 0);
69
+ React.useEffect(() => {
70
+ if (delayMs !== void 0) {
71
+ const timerId = setTimeout(() => setCanRender(true), delayMs);
72
+ return () => clearTimeout(timerId);
73
+ }
74
+ }, [delayMs]);
75
+ return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ jsx(AvatarFallbackFrame, {
76
+ ...fallbackProps,
77
+ ref: forwardedRef
78
+ }) : null;
97
79
  }
98
- }, [delayMs]);
99
- return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ React.createElement(AvatarFallbackFrame, __spreadProps(__spreadValues({}, fallbackProps), {
100
- ref: forwardedRef
101
- })) : null;
102
- }));
80
+ )
81
+ );
103
82
  AvatarFallback.displayName = FALLBACK_NAME;
104
83
  const AvatarFrame = styled(Square, {
105
84
  name: AVATAR_NAME,
106
85
  position: "relative",
107
86
  overflow: "hidden"
108
87
  });
109
- const Avatar = withStaticProperties(React.forwardRef((props, forwardedRef) => {
110
- const _a = props, { __scopeAvatar, size = "$4" } = _a, avatarProps = __objRest(_a, ["__scopeAvatar", "size"]);
111
- const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
112
- return /* @__PURE__ */ React.createElement(AvatarProvider, {
113
- size,
114
- scope: __scopeAvatar,
115
- imageLoadingStatus,
116
- onImageLoadingStatusChange: setImageLoadingStatus
117
- }, /* @__PURE__ */ React.createElement(AvatarFrame, __spreadProps(__spreadValues({
118
- size
119
- }, avatarProps), {
120
- ref: forwardedRef
121
- })));
122
- }), {
123
- Image: AvatarImage,
124
- Fallback: AvatarFallback
125
- });
88
+ const Avatar = withStaticProperties(
89
+ React.forwardRef((props, forwardedRef) => {
90
+ const { __scopeAvatar, size = "$4", ...avatarProps } = props;
91
+ const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
92
+ return /* @__PURE__ */ jsx(AvatarProvider, {
93
+ size,
94
+ scope: __scopeAvatar,
95
+ imageLoadingStatus,
96
+ onImageLoadingStatusChange: setImageLoadingStatus,
97
+ children: /* @__PURE__ */ jsx(AvatarFrame, {
98
+ size,
99
+ ...avatarProps,
100
+ ref: forwardedRef
101
+ })
102
+ });
103
+ }),
104
+ {
105
+ Image: AvatarImage,
106
+ Fallback: AvatarFallback
107
+ }
108
+ );
126
109
  Avatar.displayName = AVATAR_NAME;
127
110
  export {
128
111
  Avatar,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/Avatar.tsx"],
4
4
  "sourcesContent": ["// forked from radix https://github.com/radix-ui/primitives/blob/main/packages/react/avatar/src/Avatar.tsx\n\nimport {\n GetProps,\n SizeTokens,\n TamaguiElement,\n getVariableValue,\n getVariantExtras,\n styled,\n withStaticProperties,\n} from '@tamagui/core'\nimport { Scope, createContextScope } from '@tamagui/create-context'\nimport { Image, ImageProps } from '@tamagui/image'\nimport { Square, getShapeSize } from '@tamagui/shapes'\nimport { YStack } from '@tamagui/stacks'\nimport * as React from 'react'\n\nconst AVATAR_NAME = 'Avatar'\n\ntype ScopedProps<P> = P & { __scopeAvatar?: Scope }\nconst [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME)\n\ntype ImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error'\n\ntype AvatarContextValue = {\n size: SizeTokens\n imageLoadingStatus: ImageLoadingStatus\n onImageLoadingStatusChange(status: ImageLoadingStatus): void\n}\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext<AvatarContextValue>(AVATAR_NAME)\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarImage\n * -----------------------------------------------------------------------------------------------*/\n\nconst IMAGE_NAME = 'AvatarImage'\n\ntype AvatarImageProps = Partial<ImageProps> & {\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void\n}\n\nconst AvatarImage = React.forwardRef<TamaguiElement, AvatarImageProps>(\n (props: ScopedProps<AvatarImageProps>, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {}, ...imageProps } = props\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar)\n const [status, setStatus] = React.useState<ImageLoadingStatus>('idle')\n const extras = getVariantExtras(props)\n const shapeSize = getVariableValue(getShapeSize(context.size, extras)?.width) as number\n\n React.useEffect(() => {\n setStatus('idle')\n }, [JSON.stringify(src)])\n\n React.useEffect(() => {\n onLoadingStatusChange(status)\n context.onImageLoadingStatusChange(status)\n }, [status])\n\n return (\n <YStack fullscreen zIndex={1}>\n <Image\n fullscreen\n {...(typeof shapeSize === 'number' &&\n !isNaN(shapeSize) && {\n width: shapeSize,\n height: shapeSize,\n })}\n {...imageProps}\n // @ts-ignore\n ref={forwardedRef}\n // @ts-ignore\n src={src}\n // onLoadStart={() => {\n // // setStatus('loading')\n // }}\n onError={() => {\n setStatus('error')\n }}\n onLoad={() => {\n setStatus('loaded')\n }}\n />\n </YStack>\n )\n }\n)\n\nAvatarImage.displayName = IMAGE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarFallback\n * -----------------------------------------------------------------------------------------------*/\n\nconst FALLBACK_NAME = 'AvatarFallback'\n\nexport const AvatarFallbackFrame = styled(YStack, {\n name: FALLBACK_NAME,\n position: 'absolute',\n fullscreen: true,\n zIndex: 0,\n})\n\ntype AvatarFallbackProps = GetProps<typeof AvatarFallbackFrame> & {\n delayMs?: number\n}\n\nconst AvatarFallback = AvatarFallbackFrame.extractable(\n React.forwardRef<TamaguiElement, AvatarFallbackProps>(\n (props: ScopedProps<AvatarFallbackProps>, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar)\n const [canRender, setCanRender] = React.useState(delayMs === undefined)\n\n React.useEffect(() => {\n if (delayMs !== undefined) {\n const timerId = setTimeout(() => setCanRender(true), delayMs)\n return () => clearTimeout(timerId)\n }\n }, [delayMs])\n\n return canRender && context.imageLoadingStatus !== 'loaded' ? (\n <AvatarFallbackFrame {...fallbackProps} ref={forwardedRef} />\n ) : null\n }\n )\n)\n\nAvatarFallback.displayName = FALLBACK_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * Avatar\n * -----------------------------------------------------------------------------------------------*/\n\nexport const AvatarFrame = styled(Square, {\n name: AVATAR_NAME,\n position: 'relative',\n overflow: 'hidden',\n})\n\ntype AvatarProps = GetProps<typeof AvatarFrame>\n\nconst Avatar = withStaticProperties(\n React.forwardRef<TamaguiElement, AvatarProps>((props: ScopedProps<AvatarProps>, forwardedRef) => {\n const { __scopeAvatar, size = '$4', ...avatarProps } = props\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState<ImageLoadingStatus>('idle')\n return (\n <AvatarProvider\n size={size}\n scope={__scopeAvatar}\n imageLoadingStatus={imageLoadingStatus}\n onImageLoadingStatusChange={setImageLoadingStatus}\n >\n <AvatarFrame size={size} {...avatarProps} ref={forwardedRef} />\n </AvatarProvider>\n )\n }),\n {\n Image: AvatarImage,\n Fallback: AvatarFallback,\n }\n)\n\nAvatar.displayName = AVATAR_NAME\n\nexport { createAvatarScope, Avatar, AvatarImage, AvatarFallback }\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps }\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA;AACA;AACA;AACA;AACA;AAEA,MAAM,cAAc;AAGpB,MAAM,CAAC,qBAAqB,qBAAqB,mBAAmB,WAAW;AAU/E,MAAM,CAAC,gBAAgB,oBAAoB,oBAAwC,WAAW;AAM9F,MAAM,aAAa;AAMnB,MAAM,cAAc,MAAM,WACxB,CAAC,OAAsC,iBAAiB;AA3C1D;AA4CI,QAAgF,YAAxE,iBAAe,KAAK,wBAAwB,MAAM;AAAA,EAAC,MAAqB,IAAf,uBAAe,IAAf,CAAzD,iBAAe,OAAK;AAC5B,QAAM,UAAU,iBAAiB,YAAY,aAAa;AAC1D,QAAM,CAAC,QAAQ,aAAa,MAAM,SAA6B,MAAM;AACrE,QAAM,SAAS,iBAAiB,KAAK;AACrC,QAAM,YAAY,iBAAiB,mBAAa,QAAQ,MAAM,MAAM,MAAjC,mBAAoC,KAAK;AAE5E,QAAM,UAAU,MAAM;AACpB,cAAU,MAAM;AAAA,EAClB,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC;AAExB,QAAM,UAAU,MAAM;AACpB,0BAAsB,MAAM;AAC5B,YAAQ,2BAA2B,MAAM;AAAA,EAC3C,GAAG,CAAC,MAAM,CAAC;AAEX,SACE,oCAAC;AAAA,IAAO,YAAU;AAAA,IAAC,QAAQ;AAAA,KACzB,oCAAC;AAAA,IACC,YAAU;AAAA,KACL,OAAO,cAAc,YACxB,CAAC,MAAM,SAAS,KAAK;AAAA,IACnB,OAAO;AAAA,IACP,QAAQ;AAAA,EACV,IACE,aAPL;AAAA,IASC,KAAK;AAAA,IAEL;AAAA,IAIA,SAAS,MAAM;AACb,gBAAU,OAAO;AAAA,IACnB;AAAA,IACA,QAAQ,MAAM;AACZ,gBAAU,QAAQ;AAAA,IACpB;AAAA,IACF,CACF;AAEJ,CACF;AAEA,YAAY,cAAc;AAM1B,MAAM,gBAAgB;AAEf,MAAM,sBAAsB,OAAO,QAAQ;AAAA,EAChD,MAAM;AAAA,EACN,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AACV,CAAC;AAMD,MAAM,iBAAiB,oBAAoB,YACzC,MAAM,WACJ,CAAC,OAAyC,iBAAiB;AACzD,QAAqD,YAA7C,iBAAe,YAA8B,IAAlB,0BAAkB,IAAlB,CAA3B,iBAAe;AACvB,QAAM,UAAU,iBAAiB,eAAe,aAAa;AAC7D,QAAM,CAAC,WAAW,gBAAgB,MAAM,SAAS,YAAY,MAAS;AAEtE,QAAM,UAAU,MAAM;AACpB,QAAI,YAAY,QAAW;AACzB,YAAM,UAAU,WAAW,MAAM,aAAa,IAAI,GAAG,OAAO;AAC5D,aAAO,MAAM,aAAa,OAAO;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,SAAO,aAAa,QAAQ,uBAAuB,WACjD,oCAAC,sDAAwB,gBAAxB;AAAA,IAAuC,KAAK;AAAA,IAAc,IACzD;AACN,CACF,CACF;AAEA,eAAe,cAAc;AAMtB,MAAM,cAAc,OAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AACZ,CAAC;AAID,MAAM,SAAS,qBACb,MAAM,WAAwC,CAAC,OAAiC,iBAAiB;AAC/F,QAAuD,YAA/C,iBAAe,OAAO,SAAyB,IAAhB,wBAAgB,IAAhB,CAA/B,iBAAe;AACvB,QAAM,CAAC,oBAAoB,yBAAyB,MAAM,SAA6B,MAAM;AAC7F,SACE,oCAAC;AAAA,IACC;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,4BAA4B;AAAA,KAE5B,oCAAC;AAAA,IAAY;AAAA,KAAgB,cAA5B;AAAA,IAAyC,KAAK;AAAA,IAAc,CAC/D;AAEJ,CAAC,GACD;AAAA,EACE,OAAO;AAAA,EACP,UAAU;AACZ,CACF;AAEA,OAAO,cAAc;",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
File without changes
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './Avatar'\n"],
5
- "mappings": "AAAA;",
5
+ "mappings": "AAAA,cAAc;",
6
6
  "names": []
7
7
  }
@@ -13,30 +13,31 @@ const AVATAR_NAME = "Avatar";
13
13
  const [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);
14
14
  const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
15
15
  const IMAGE_NAME = "AvatarImage";
16
- const AvatarImage = React.forwardRef((props, forwardedRef) => {
17
- var _a;
18
- const { __scopeAvatar, src, onLoadingStatusChange = () => {
19
- }, ...imageProps } = props;
20
- const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
21
- const [status, setStatus] = React.useState("idle");
22
- const extras = getVariantExtras(props);
23
- const shapeSize = getVariableValue((_a = getShapeSize(context.size, extras)) == null ? void 0 : _a.width);
24
- React.useEffect(() => {
25
- setStatus("idle");
26
- }, [JSON.stringify(src)]);
27
- React.useEffect(() => {
28
- onLoadingStatusChange(status);
29
- context.onImageLoadingStatusChange(status);
30
- }, [status]);
31
- return <YStack fullscreen zIndex={1}><Image fullscreen {...typeof shapeSize === "number" && !isNaN(shapeSize) && {
32
- width: shapeSize,
33
- height: shapeSize
34
- }} {...imageProps} ref={forwardedRef} src={src} onError={() => {
35
- setStatus("error");
36
- }} onLoad={() => {
37
- setStatus("loaded");
38
- }} /></YStack>;
39
- });
16
+ const AvatarImage = React.forwardRef(
17
+ (props, forwardedRef) => {
18
+ const { __scopeAvatar, src, onLoadingStatusChange = () => {
19
+ }, ...imageProps } = props;
20
+ const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
21
+ const [status, setStatus] = React.useState("idle");
22
+ const extras = getVariantExtras(props);
23
+ const shapeSize = getVariableValue(getShapeSize(context.size, extras)?.width);
24
+ React.useEffect(() => {
25
+ setStatus("idle");
26
+ }, [JSON.stringify(src)]);
27
+ React.useEffect(() => {
28
+ onLoadingStatusChange(status);
29
+ context.onImageLoadingStatusChange(status);
30
+ }, [status]);
31
+ return <YStack fullscreen zIndex={1}><Image fullscreen {...typeof shapeSize === "number" && !isNaN(shapeSize) && {
32
+ width: shapeSize,
33
+ height: shapeSize
34
+ }} {...imageProps} ref={forwardedRef} src={src} onError={() => {
35
+ setStatus("error");
36
+ }} onLoad={() => {
37
+ setStatus("loaded");
38
+ }} /></YStack>;
39
+ }
40
+ );
40
41
  AvatarImage.displayName = IMAGE_NAME;
41
42
  const FALLBACK_NAME = "AvatarFallback";
42
43
  const AvatarFallbackFrame = styled(YStack, {
@@ -45,32 +46,39 @@ const AvatarFallbackFrame = styled(YStack, {
45
46
  fullscreen: true,
46
47
  zIndex: 0
47
48
  });
48
- const AvatarFallback = AvatarFallbackFrame.extractable(React.forwardRef((props, forwardedRef) => {
49
- const { __scopeAvatar, delayMs, ...fallbackProps } = props;
50
- const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
51
- const [canRender, setCanRender] = React.useState(delayMs === void 0);
52
- React.useEffect(() => {
53
- if (delayMs !== void 0) {
54
- const timerId = setTimeout(() => setCanRender(true), delayMs);
55
- return () => clearTimeout(timerId);
49
+ const AvatarFallback = AvatarFallbackFrame.extractable(
50
+ React.forwardRef(
51
+ (props, forwardedRef) => {
52
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
53
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
54
+ const [canRender, setCanRender] = React.useState(delayMs === void 0);
55
+ React.useEffect(() => {
56
+ if (delayMs !== void 0) {
57
+ const timerId = setTimeout(() => setCanRender(true), delayMs);
58
+ return () => clearTimeout(timerId);
59
+ }
60
+ }, [delayMs]);
61
+ return canRender && context.imageLoadingStatus !== "loaded" ? <AvatarFallbackFrame {...fallbackProps} ref={forwardedRef} /> : null;
56
62
  }
57
- }, [delayMs]);
58
- return canRender && context.imageLoadingStatus !== "loaded" ? <AvatarFallbackFrame {...fallbackProps} ref={forwardedRef} /> : null;
59
- }));
63
+ )
64
+ );
60
65
  AvatarFallback.displayName = FALLBACK_NAME;
61
66
  const AvatarFrame = styled(Square, {
62
67
  name: AVATAR_NAME,
63
68
  position: "relative",
64
69
  overflow: "hidden"
65
70
  });
66
- const Avatar = withStaticProperties(React.forwardRef((props, forwardedRef) => {
67
- const { __scopeAvatar, size = "$4", ...avatarProps } = props;
68
- const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
69
- return <AvatarProvider size={size} scope={__scopeAvatar} imageLoadingStatus={imageLoadingStatus} onImageLoadingStatusChange={setImageLoadingStatus}><AvatarFrame size={size} {...avatarProps} ref={forwardedRef} /></AvatarProvider>;
70
- }), {
71
- Image: AvatarImage,
72
- Fallback: AvatarFallback
73
- });
71
+ const Avatar = withStaticProperties(
72
+ React.forwardRef((props, forwardedRef) => {
73
+ const { __scopeAvatar, size = "$4", ...avatarProps } = props;
74
+ const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
75
+ return <AvatarProvider size={size} scope={__scopeAvatar} imageLoadingStatus={imageLoadingStatus} onImageLoadingStatusChange={setImageLoadingStatus}><AvatarFrame size={size} {...avatarProps} ref={forwardedRef} /></AvatarProvider>;
76
+ }),
77
+ {
78
+ Image: AvatarImage,
79
+ Fallback: AvatarFallback
80
+ }
81
+ );
74
82
  Avatar.displayName = AVATAR_NAME;
75
83
  export {
76
84
  Avatar,