ferns-ui 1.6.2 → 1.6.3
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/Avatar.js +16 -15
- package/dist/Avatar.js.map +1 -1
- package/package.json +1 -1
- package/src/Avatar.tsx +16 -20
package/dist/Avatar.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
import {
|
|
3
|
-
import { launchImageLibraryAsync
|
|
2
|
+
import { ImageManipulator, SaveFormat } from "expo-image-manipulator";
|
|
3
|
+
import { launchImageLibraryAsync } from "expo-image-picker";
|
|
4
4
|
import { LinearGradient } from "expo-linear-gradient";
|
|
5
|
-
import React, {
|
|
5
|
+
import React, { useState } from "react";
|
|
6
6
|
import { Image, Pressable, Text, View } from "react-native";
|
|
7
7
|
import { Icon } from "./Icon";
|
|
8
8
|
import { MobileIcon, OfflineIcon, OnlineIcon, OutOfOfficeIcon } from "./icons";
|
|
@@ -41,7 +41,6 @@ export const Avatar = ({ name, hasBorder = false, size = "md", src, onChange, st
|
|
|
41
41
|
var _a, _b;
|
|
42
42
|
const { theme } = useTheme();
|
|
43
43
|
const [isImageLoaded, setIsImageLoaded] = useState(true);
|
|
44
|
-
const [imgSrc, setImgSrc] = useState(src !== null && src !== void 0 ? src : undefined);
|
|
45
44
|
const avatarImageFormat = SaveFormat.PNG;
|
|
46
45
|
const avatarImageDiameter = sizes[size];
|
|
47
46
|
const showEditIcon = status === "imagePicker";
|
|
@@ -61,34 +60,36 @@ export const Avatar = ({ name, hasBorder = false, size = "md", src, onChange, st
|
|
|
61
60
|
label: "Active on Mobile",
|
|
62
61
|
},
|
|
63
62
|
};
|
|
64
|
-
// If the src changes, update the image.
|
|
65
|
-
useEffect(() => {
|
|
66
|
-
setImgSrc(imgSrc);
|
|
67
|
-
}, [imgSrc]);
|
|
68
63
|
if (showEditIcon && !onChange) {
|
|
69
64
|
console.warn("Avatars with the status of 'imagePicker' should also have an onChange property.");
|
|
70
65
|
}
|
|
71
|
-
const handleImageError = () => {
|
|
66
|
+
const handleImageError = (event) => {
|
|
72
67
|
setIsImageLoaded(false);
|
|
73
|
-
console.warn("Image load error");
|
|
68
|
+
console.warn("Image load error: ", event);
|
|
74
69
|
};
|
|
75
70
|
const pickImage = async () => {
|
|
76
71
|
// TODO: Add permission request to use camera to take a picture
|
|
77
72
|
const result = await launchImageLibraryAsync({
|
|
78
|
-
mediaTypes:
|
|
73
|
+
mediaTypes: "images",
|
|
79
74
|
allowsEditing: true,
|
|
80
75
|
base64: true,
|
|
81
76
|
});
|
|
82
77
|
if (!result.canceled && result.assets) {
|
|
83
|
-
const resizedImage = await
|
|
84
|
-
|
|
78
|
+
const resizedImage = await resizeAndFormatImage(result.assets[0].uri);
|
|
79
|
+
// convert base64 to data uri
|
|
80
|
+
resizedImage.uri = `data:image/${avatarImageFormat.toLowerCase()};base64,${resizedImage.base64}`;
|
|
85
81
|
if (onChange) {
|
|
86
82
|
onChange(Object.assign({ avatarImageFormat }, resizedImage));
|
|
87
83
|
}
|
|
88
84
|
}
|
|
89
85
|
};
|
|
90
|
-
const
|
|
91
|
-
|
|
86
|
+
const resizeAndFormatImage = async (imageUri) => {
|
|
87
|
+
const imageContext = await ImageManipulator.manipulate(imageUri);
|
|
88
|
+
const resizedImage = await imageContext.resize({
|
|
89
|
+
height: avatarImageDiameter,
|
|
90
|
+
});
|
|
91
|
+
const renderedImage = await resizedImage.renderAsync();
|
|
92
|
+
return await renderedImage.saveAsync({ format: avatarImageFormat, base64: true });
|
|
92
93
|
};
|
|
93
94
|
const renderEditIcon = () => {
|
|
94
95
|
if (size !== "xl") {
|
package/dist/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Avatar.tsx
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
import {
|
|
3
|
-
import {launchImageLibraryAsync
|
|
2
|
+
import {ImageManipulator, ImageResult, SaveFormat} from "expo-image-manipulator";
|
|
3
|
+
import {launchImageLibraryAsync} from "expo-image-picker";
|
|
4
4
|
import {LinearGradient} from "expo-linear-gradient";
|
|
5
|
-
import React, {FC,
|
|
5
|
+
import React, {FC, useState} from "react";
|
|
6
6
|
import {Image, Pressable, Text, View} from "react-native";
|
|
7
7
|
|
|
8
8
|
import {AvatarProps, CustomSvgProps} from "./Common";
|
|
@@ -55,7 +55,6 @@ export const Avatar: FC<AvatarProps> = ({
|
|
|
55
55
|
}) => {
|
|
56
56
|
const {theme} = useTheme();
|
|
57
57
|
const [isImageLoaded, setIsImageLoaded] = useState(true);
|
|
58
|
-
const [imgSrc, setImgSrc] = useState(src ?? undefined);
|
|
59
58
|
const avatarImageFormat = SaveFormat.PNG;
|
|
60
59
|
const avatarImageDiameter = sizes[size];
|
|
61
60
|
const showEditIcon = status === "imagePicker";
|
|
@@ -85,43 +84,40 @@ export const Avatar: FC<AvatarProps> = ({
|
|
|
85
84
|
},
|
|
86
85
|
};
|
|
87
86
|
|
|
88
|
-
// If the src changes, update the image.
|
|
89
|
-
useEffect(() => {
|
|
90
|
-
setImgSrc(imgSrc);
|
|
91
|
-
}, [imgSrc]);
|
|
92
|
-
|
|
93
87
|
if (showEditIcon && !onChange) {
|
|
94
88
|
console.warn("Avatars with the status of 'imagePicker' should also have an onChange property.");
|
|
95
89
|
}
|
|
96
90
|
|
|
97
|
-
const handleImageError = () => {
|
|
91
|
+
const handleImageError = (event: any) => {
|
|
98
92
|
setIsImageLoaded(false);
|
|
99
|
-
console.warn("Image load error");
|
|
93
|
+
console.warn("Image load error: ", event);
|
|
100
94
|
};
|
|
101
95
|
|
|
102
96
|
const pickImage = async () => {
|
|
103
97
|
// TODO: Add permission request to use camera to take a picture
|
|
104
98
|
const result = await launchImageLibraryAsync({
|
|
105
|
-
mediaTypes:
|
|
99
|
+
mediaTypes: "images",
|
|
106
100
|
allowsEditing: true,
|
|
107
101
|
base64: true,
|
|
108
102
|
});
|
|
109
103
|
|
|
110
104
|
if (!result.canceled && result.assets) {
|
|
111
|
-
const resizedImage = await
|
|
112
|
-
|
|
105
|
+
const resizedImage = await resizeAndFormatImage(result.assets[0].uri);
|
|
106
|
+
// convert base64 to data uri
|
|
107
|
+
resizedImage.uri = `data:image/${avatarImageFormat.toLowerCase()};base64,${resizedImage.base64}`;
|
|
113
108
|
if (onChange) {
|
|
114
109
|
onChange({avatarImageFormat, ...resizedImage});
|
|
115
110
|
}
|
|
116
111
|
}
|
|
117
112
|
};
|
|
118
113
|
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
);
|
|
114
|
+
const resizeAndFormatImage = async (imageUri: string): Promise<ImageResult> => {
|
|
115
|
+
const imageContext = await ImageManipulator.manipulate(imageUri);
|
|
116
|
+
const resizedImage = await imageContext.resize({
|
|
117
|
+
height: avatarImageDiameter,
|
|
118
|
+
});
|
|
119
|
+
const renderedImage = await resizedImage.renderAsync();
|
|
120
|
+
return await renderedImage.saveAsync({format: avatarImageFormat, base64: true});
|
|
125
121
|
};
|
|
126
122
|
|
|
127
123
|
const renderEditIcon = () => {
|