@tamagui/avatar 1.2.8 → 1.2.10

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.
@@ -0,0 +1,117 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import {
3
+ getVariableValue,
4
+ getVariantExtras,
5
+ styled,
6
+ withStaticProperties
7
+ } from "@tamagui/core";
8
+ import { createContextScope } from "@tamagui/create-context";
9
+ import { Image } from "@tamagui/image";
10
+ import { Square, getShapeSize } from "@tamagui/shapes";
11
+ import { YStack } from "@tamagui/stacks";
12
+ import * as React from "react";
13
+ const AVATAR_NAME = "Avatar";
14
+ const [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);
15
+ const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
16
+ const IMAGE_NAME = "AvatarImage";
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(
26
+ (_a = getShapeSize(context.size, extras)) == null ? void 0 : _a.width
27
+ );
28
+ React.useEffect(() => {
29
+ setStatus("idle");
30
+ }, [JSON.stringify(src)]);
31
+ React.useEffect(() => {
32
+ onLoadingStatusChange(status);
33
+ context.onImageLoadingStatusChange(status);
34
+ }, [status]);
35
+ return /* @__PURE__ */ jsx(YStack, { fullscreen: true, zIndex: 1, children: /* @__PURE__ */ jsx(
36
+ Image,
37
+ {
38
+ fullscreen: true,
39
+ ...typeof shapeSize === "number" && !isNaN(shapeSize) && {
40
+ width: shapeSize,
41
+ height: shapeSize
42
+ },
43
+ ...imageProps,
44
+ ref: forwardedRef,
45
+ src,
46
+ onError: () => {
47
+ setStatus("error");
48
+ },
49
+ onLoad: () => {
50
+ setStatus("loaded");
51
+ }
52
+ }
53
+ ) });
54
+ }
55
+ );
56
+ AvatarImage.displayName = IMAGE_NAME;
57
+ const FALLBACK_NAME = "AvatarFallback";
58
+ const AvatarFallbackFrame = styled(YStack, {
59
+ name: FALLBACK_NAME,
60
+ position: "absolute",
61
+ fullscreen: true,
62
+ zIndex: 0
63
+ });
64
+ const AvatarFallback = AvatarFallbackFrame.extractable(
65
+ React.forwardRef(
66
+ (props, forwardedRef) => {
67
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
68
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
69
+ const [canRender, setCanRender] = React.useState(delayMs === void 0);
70
+ React.useEffect(() => {
71
+ if (delayMs !== void 0) {
72
+ const timerId = setTimeout(() => setCanRender(true), delayMs);
73
+ return () => clearTimeout(timerId);
74
+ }
75
+ }, [delayMs]);
76
+ return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ jsx(AvatarFallbackFrame, { ...fallbackProps, ref: forwardedRef }) : null;
77
+ }
78
+ )
79
+ );
80
+ AvatarFallback.displayName = FALLBACK_NAME;
81
+ const AvatarFrame = styled(Square, {
82
+ name: AVATAR_NAME,
83
+ position: "relative",
84
+ overflow: "hidden"
85
+ });
86
+ const Avatar = withStaticProperties(
87
+ React.forwardRef(
88
+ (props, forwardedRef) => {
89
+ const { __scopeAvatar, size = "$true", ...avatarProps } = props;
90
+ const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
91
+ return /* @__PURE__ */ jsx(
92
+ AvatarProvider,
93
+ {
94
+ size,
95
+ scope: __scopeAvatar,
96
+ imageLoadingStatus,
97
+ onImageLoadingStatusChange: setImageLoadingStatus,
98
+ children: /* @__PURE__ */ jsx(AvatarFrame, { size, ...avatarProps, ref: forwardedRef })
99
+ }
100
+ );
101
+ }
102
+ ),
103
+ {
104
+ Image: AvatarImage,
105
+ Fallback: AvatarFallback
106
+ }
107
+ );
108
+ Avatar.displayName = AVATAR_NAME;
109
+ export {
110
+ Avatar,
111
+ AvatarFallback,
112
+ AvatarFallbackFrame,
113
+ AvatarFrame,
114
+ AvatarImage,
115
+ createAvatarScope
116
+ };
117
+ //# sourceMappingURL=Avatar.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Avatar.tsx"],
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] =\n 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(\n getShapeSize(context.size, extras)?.width\n ) 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>(\n (props: ScopedProps<AvatarProps>, forwardedRef) => {\n const { __scopeAvatar, size = '$true', ...avatarProps } = props\n const [imageLoadingStatus, setImageLoadingStatus] =\n 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 {\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": "AAgEQ;AA9DR;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAgB,0BAA0B;AAC1C,SAAS,aAAyB;AAClC,SAAS,QAAQ,oBAAoB;AACrC,SAAS,cAAc;AACvB,YAAY,WAAW;AAEvB,MAAM,cAAc;AAGpB,MAAM,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,WAAW;AAU/E,MAAM,CAAC,gBAAgB,gBAAgB,IACrC,oBAAwC,WAAW;AAMrD,MAAM,aAAa;AAMnB,MAAM,cAAc,MAAM;AAAA,EACxB,CAAC,OAAsC,iBAAiB;AA5C1D;AA6CI,UAAM,EAAE,eAAe,KAAK,wBAAwB,MAAM;AAAA,IAAC,GAAG,GAAG,WAAW,IAAI;AAChF,UAAM,UAAU,iBAAiB,YAAY,aAAa;AAC1D,UAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAA6B,MAAM;AACrE,UAAM,SAAS,iBAAiB,KAAK;AACrC,UAAM,YAAY;AAAA,OAChB,kBAAa,QAAQ,MAAM,MAAM,MAAjC,mBAAoC;AAAA,IACtC;AAEA,UAAM,UAAU,MAAM;AACpB,gBAAU,MAAM;AAAA,IAClB,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC;AAExB,UAAM,UAAU,MAAM;AACpB,4BAAsB,MAAM;AAC5B,cAAQ,2BAA2B,MAAM;AAAA,IAC3C,GAAG,CAAC,MAAM,CAAC;AAEX,WACE,oBAAC,UAAO,YAAU,MAAC,QAAQ,GACzB;AAAA,MAAC;AAAA;AAAA,QACC,YAAU;AAAA,QACT,GAAI,OAAO,cAAc,YACxB,CAAC,MAAM,SAAS,KAAK;AAAA,UACnB,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACD,GAAG;AAAA,QAEJ,KAAK;AAAA,QAEL;AAAA,QAIA,SAAS,MAAM;AACb,oBAAU,OAAO;AAAA,QACnB;AAAA,QACA,QAAQ,MAAM;AACZ,oBAAU,QAAQ;AAAA,QACpB;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;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;AAAA,EACzC,MAAM;AAAA,IACJ,CAAC,OAAyC,iBAAiB;AACzD,YAAM,EAAE,eAAe,SAAS,GAAG,cAAc,IAAI;AACrD,YAAM,UAAU,iBAAiB,eAAe,aAAa;AAC7D,YAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,YAAY,MAAS;AAEtE,YAAM,UAAU,MAAM;AACpB,YAAI,YAAY,QAAW;AACzB,gBAAM,UAAU,WAAW,MAAM,aAAa,IAAI,GAAG,OAAO;AAC5D,iBAAO,MAAM,aAAa,OAAO;AAAA,QACnC;AAAA,MACF,GAAG,CAAC,OAAO,CAAC;AAEZ,aAAO,aAAa,QAAQ,uBAAuB,WACjD,oBAAC,uBAAqB,GAAG,eAAe,KAAK,cAAc,IACzD;AAAA,IACN;AAAA,EACF;AACF;AAEA,eAAe,cAAc;AAMtB,MAAM,cAAc,OAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AACZ,CAAC;AAID,MAAM,SAAS;AAAA,EACb,MAAM;AAAA,IACJ,CAAC,OAAiC,iBAAiB;AACjD,YAAM,EAAE,eAAe,OAAO,SAAS,GAAG,YAAY,IAAI;AAC1D,YAAM,CAAC,oBAAoB,qBAAqB,IAC9C,MAAM,SAA6B,MAAM;AAC3C,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,OAAO;AAAA,UACP;AAAA,UACA,4BAA4B;AAAA,UAE5B,8BAAC,eAAY,MAAa,GAAG,aAAa,KAAK,cAAc;AAAA;AAAA,MAC/D;AAAA,IAEJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AACF;AAEA,OAAO,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./Avatar";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["export * from './Avatar'\n"],
5
+ "mappings": "AAAA,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,108 @@
1
+ import {
2
+ getVariableValue,
3
+ getVariantExtras,
4
+ styled,
5
+ withStaticProperties
6
+ } from "@tamagui/core";
7
+ import { createContextScope } from "@tamagui/create-context";
8
+ import { Image } from "@tamagui/image";
9
+ import { Square, getShapeSize } from "@tamagui/shapes";
10
+ import { YStack } from "@tamagui/stacks";
11
+ import * as React from "react";
12
+ const AVATAR_NAME = "Avatar";
13
+ const [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);
14
+ const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
15
+ const IMAGE_NAME = "AvatarImage";
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(
24
+ getShapeSize(context.size, extras)?.width
25
+ );
26
+ React.useEffect(() => {
27
+ setStatus("idle");
28
+ }, [JSON.stringify(src)]);
29
+ React.useEffect(() => {
30
+ onLoadingStatusChange(status);
31
+ context.onImageLoadingStatusChange(status);
32
+ }, [status]);
33
+ return <YStack fullscreen zIndex={1}><Image
34
+ fullscreen
35
+ {...typeof shapeSize === "number" && !isNaN(shapeSize) && {
36
+ width: shapeSize,
37
+ height: shapeSize
38
+ }}
39
+ {...imageProps}
40
+ ref={forwardedRef}
41
+ src={src}
42
+ onError={() => {
43
+ setStatus("error");
44
+ }}
45
+ onLoad={() => {
46
+ setStatus("loaded");
47
+ }}
48
+ /></YStack>;
49
+ }
50
+ );
51
+ AvatarImage.displayName = IMAGE_NAME;
52
+ const FALLBACK_NAME = "AvatarFallback";
53
+ const AvatarFallbackFrame = styled(YStack, {
54
+ name: FALLBACK_NAME,
55
+ position: "absolute",
56
+ fullscreen: true,
57
+ zIndex: 0
58
+ });
59
+ const AvatarFallback = AvatarFallbackFrame.extractable(
60
+ React.forwardRef(
61
+ (props, forwardedRef) => {
62
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
63
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
64
+ const [canRender, setCanRender] = React.useState(delayMs === void 0);
65
+ React.useEffect(() => {
66
+ if (delayMs !== void 0) {
67
+ const timerId = setTimeout(() => setCanRender(true), delayMs);
68
+ return () => clearTimeout(timerId);
69
+ }
70
+ }, [delayMs]);
71
+ return canRender && context.imageLoadingStatus !== "loaded" ? <AvatarFallbackFrame {...fallbackProps} ref={forwardedRef} /> : null;
72
+ }
73
+ )
74
+ );
75
+ AvatarFallback.displayName = FALLBACK_NAME;
76
+ const AvatarFrame = styled(Square, {
77
+ name: AVATAR_NAME,
78
+ position: "relative",
79
+ overflow: "hidden"
80
+ });
81
+ const Avatar = withStaticProperties(
82
+ React.forwardRef(
83
+ (props, forwardedRef) => {
84
+ const { __scopeAvatar, size = "$true", ...avatarProps } = props;
85
+ const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
86
+ return <AvatarProvider
87
+ size={size}
88
+ scope={__scopeAvatar}
89
+ imageLoadingStatus={imageLoadingStatus}
90
+ onImageLoadingStatusChange={setImageLoadingStatus}
91
+ ><AvatarFrame size={size} {...avatarProps} ref={forwardedRef} /></AvatarProvider>;
92
+ }
93
+ ),
94
+ {
95
+ Image: AvatarImage,
96
+ Fallback: AvatarFallback
97
+ }
98
+ );
99
+ Avatar.displayName = AVATAR_NAME;
100
+ export {
101
+ Avatar,
102
+ AvatarFallback,
103
+ AvatarFallbackFrame,
104
+ AvatarFrame,
105
+ AvatarImage,
106
+ createAvatarScope
107
+ };
108
+ //# sourceMappingURL=Avatar.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Avatar.tsx"],
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] =\n 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(\n getShapeSize(context.size, extras)?.width\n ) 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>(\n (props: ScopedProps<AvatarProps>, forwardedRef) => {\n const { __scopeAvatar, size = '$true', ...avatarProps } = props\n const [imageLoadingStatus, setImageLoadingStatus] =\n 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 {\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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",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./Avatar";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["export * from './Avatar'\n"],
5
+ "mappings": "AAAA,cAAc;",
6
+ "names": []
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/avatar",
3
- "version": "1.2.8",
3
+ "version": "1.2.10",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -26,16 +26,16 @@
26
26
  "./package.json": "./package.json",
27
27
  ".": {
28
28
  "types": "./types/index.d.ts",
29
- "import": "./dist/esm/index.js",
29
+ "import": "./dist/esm/index.mjs",
30
30
  "require": "./dist/cjs/index.js"
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@tamagui/core": "^1.2.8",
35
- "@tamagui/image": "^1.2.8",
36
- "@tamagui/shapes": "^1.2.8",
37
- "@tamagui/text": "^1.2.8",
38
- "@tamagui/use-event": "^1.2.8"
34
+ "@tamagui/core": "^1.2.10",
35
+ "@tamagui/image": "^1.2.10",
36
+ "@tamagui/shapes": "^1.2.10",
37
+ "@tamagui/text": "^1.2.10",
38
+ "@tamagui/use-event": "^1.2.10"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "react": "*",
@@ -43,7 +43,7 @@
43
43
  "react-native": "*"
44
44
  },
45
45
  "devDependencies": {
46
- "@tamagui/build": "^1.2.8",
46
+ "@tamagui/build": "^1.2.10",
47
47
  "react": "^18.2.0",
48
48
  "react-dom": "^18.2.0",
49
49
  "react-native": "*"