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 CHANGED
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable no-console */
2
- import { manipulateAsync, SaveFormat } from "expo-image-manipulator";
3
- import { launchImageLibraryAsync, MediaTypeOptions } from "expo-image-picker";
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, { useEffect, useState } from "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: MediaTypeOptions.Images,
73
+ mediaTypes: "images",
79
74
  allowsEditing: true,
80
75
  base64: true,
81
76
  });
82
77
  if (!result.canceled && result.assets) {
83
- const resizedImage = await resizeImage(result.assets[0].uri);
84
- setImgSrc(resizedImage.uri);
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 resizeImage = async (imageUri) => {
91
- return manipulateAsync(imageUri, [{ resize: { width: avatarImageDiameter, height: avatarImageDiameter } }], { format: avatarImageFormat });
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") {
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ferns-ui",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "main": "dist/index.js",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
package/src/Avatar.tsx CHANGED
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable no-console */
2
- import {ImageResult, manipulateAsync, SaveFormat} from "expo-image-manipulator";
3
- import {launchImageLibraryAsync, MediaTypeOptions} from "expo-image-picker";
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, useEffect, useState} from "react";
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: MediaTypeOptions.Images,
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 resizeImage(result.assets[0].uri);
112
- setImgSrc(resizedImage.uri);
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 resizeImage = async (imageUri: string): Promise<ImageResult> => {
120
- return manipulateAsync(
121
- imageUri,
122
- [{resize: {width: avatarImageDiameter, height: avatarImageDiameter}}],
123
- {format: avatarImageFormat}
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 = () => {