@dropi/react-native-design-system 0.2.24 → 0.2.26
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/lib/atoms/CustomImage/CustomImage.d.ts +11 -0
- package/lib/atoms/CustomImage/CustomImage.js +57 -0
- package/lib/atoms/CustomImage/index.d.ts +1 -0
- package/lib/atoms/CustomImage/index.js +16 -0
- package/lib/atoms/ProviderBadge/ProviderBadge.d.ts +7 -3
- package/lib/atoms/ProviderBadge/ProviderBadge.js +22 -3
- package/lib/atoms/index.d.ts +1 -0
- package/lib/atoms/index.js +11 -0
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ImageProps } from 'expo-image';
|
|
3
|
+
type Src = string | number;
|
|
4
|
+
interface CustomImageProps extends Omit<ImageProps, 'source' | 'placeholder'> {
|
|
5
|
+
source: Src;
|
|
6
|
+
fallbackSource?: Src;
|
|
7
|
+
placeholderSource?: Src;
|
|
8
|
+
retryCount?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const CustomImage: React.FC<CustomImageProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CustomImage = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _expoImage = require("expo-image");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
const normalize = src => {
|
|
12
|
+
if (!src) return undefined;
|
|
13
|
+
return typeof src === 'string' ? {
|
|
14
|
+
uri: src
|
|
15
|
+
} : src;
|
|
16
|
+
};
|
|
17
|
+
const CustomImage = ({
|
|
18
|
+
source,
|
|
19
|
+
fallbackSource,
|
|
20
|
+
placeholderSource,
|
|
21
|
+
retryCount = 1,
|
|
22
|
+
contentFit = 'cover',
|
|
23
|
+
...rest
|
|
24
|
+
}) => {
|
|
25
|
+
const [currentSource, setCurrentSource] = (0, _react.useState)(source);
|
|
26
|
+
const [attempts, setAttempts] = (0, _react.useState)(0);
|
|
27
|
+
const [usedFallback, setUsedFallback] = (0, _react.useState)(false);
|
|
28
|
+
|
|
29
|
+
/* sync when source changes */
|
|
30
|
+
(0, _react.useEffect)(() => {
|
|
31
|
+
setCurrentSource(source);
|
|
32
|
+
setAttempts(0);
|
|
33
|
+
setUsedFallback(false);
|
|
34
|
+
}, [source]);
|
|
35
|
+
const handleError = (0, _react.useCallback)(() => {
|
|
36
|
+
/* retry first */
|
|
37
|
+
if (attempts < retryCount) {
|
|
38
|
+
setAttempts(a => a + 1);
|
|
39
|
+
setCurrentSource(source);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* fallback once */
|
|
44
|
+
if (fallbackSource && !usedFallback) {
|
|
45
|
+
setUsedFallback(true);
|
|
46
|
+
setCurrentSource(fallbackSource);
|
|
47
|
+
}
|
|
48
|
+
}, [attempts, retryCount, fallbackSource, usedFallback, source]);
|
|
49
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_expoImage.Image, {
|
|
50
|
+
...rest,
|
|
51
|
+
source: normalize(currentSource),
|
|
52
|
+
placeholder: normalize(placeholderSource),
|
|
53
|
+
contentFit: contentFit,
|
|
54
|
+
onError: handleError
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
exports.CustomImage = CustomImage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CustomImage';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _CustomImage = require("./CustomImage");
|
|
7
|
+
Object.keys(_CustomImage).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _CustomImage[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _CustomImage[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { ImageStyle } from "expo-image";
|
|
2
2
|
import { StyleProp } from "react-native";
|
|
3
|
-
|
|
3
|
+
export declare enum ProviderCategory {
|
|
4
|
+
VERIFICADO = "VERIFICADO",
|
|
5
|
+
PREMIUM = "PREMIUM",
|
|
6
|
+
PREMIUM_EXCLUSIVO = "PREMIUM EXCLUSIVO"
|
|
7
|
+
}
|
|
4
8
|
type ProviderBadgeProps = {
|
|
5
|
-
|
|
9
|
+
category: ProviderCategory | string;
|
|
6
10
|
size: number;
|
|
7
11
|
style?: StyleProp<ImageStyle>;
|
|
8
12
|
};
|
|
9
|
-
export declare const ProviderBadge: ({
|
|
13
|
+
export declare const ProviderBadge: ({ category, size, style }: ProviderBadgeProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
14
|
export {};
|
|
@@ -3,21 +3,40 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ProviderBadge = void 0;
|
|
6
|
+
exports.ProviderCategory = exports.ProviderBadge = void 0;
|
|
7
7
|
var _expoImage = require("expo-image");
|
|
8
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
let ProviderCategory = exports.ProviderCategory = /*#__PURE__*/function (ProviderCategory) {
|
|
10
|
+
ProviderCategory["VERIFICADO"] = "VERIFICADO";
|
|
11
|
+
ProviderCategory["PREMIUM"] = "PREMIUM";
|
|
12
|
+
ProviderCategory["PREMIUM_EXCLUSIVO"] = "PREMIUM EXCLUSIVO";
|
|
13
|
+
return ProviderCategory;
|
|
14
|
+
}({});
|
|
9
15
|
const BADGE_SOURCES = {
|
|
10
16
|
verified: require("../../../assets/badges/verified.png"),
|
|
11
17
|
premium: require("../../../assets/badges/premium.png"),
|
|
12
18
|
exclusive: require("../../../assets/badges/exclusive.png")
|
|
13
19
|
};
|
|
20
|
+
const CATEGORY_TO_BADGE = {
|
|
21
|
+
[ProviderCategory.VERIFICADO]: "verified",
|
|
22
|
+
[ProviderCategory.PREMIUM]: "premium",
|
|
23
|
+
[ProviderCategory.PREMIUM_EXCLUSIVO]: "exclusive"
|
|
24
|
+
};
|
|
25
|
+
const getBadgeType = category => {
|
|
26
|
+
const normalized = category.trim().toUpperCase();
|
|
27
|
+
return CATEGORY_TO_BADGE[normalized] || null;
|
|
28
|
+
};
|
|
14
29
|
const ProviderBadge = ({
|
|
15
|
-
|
|
30
|
+
category,
|
|
16
31
|
size,
|
|
17
32
|
style
|
|
18
33
|
}) => {
|
|
34
|
+
const badgeType = getBadgeType(category);
|
|
35
|
+
if (!badgeType) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
19
38
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_expoImage.Image, {
|
|
20
|
-
source: BADGE_SOURCES[
|
|
39
|
+
source: BADGE_SOURCES[badgeType],
|
|
21
40
|
style: [{
|
|
22
41
|
width: size,
|
|
23
42
|
height: size
|
package/lib/atoms/index.d.ts
CHANGED
package/lib/atoms/index.js
CHANGED
|
@@ -25,6 +25,17 @@ Object.keys(_Buttons).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
+
var _CustomImage = require("./CustomImage");
|
|
29
|
+
Object.keys(_CustomImage).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _CustomImage[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _CustomImage[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
28
39
|
var _ProviderBadge = require("./ProviderBadge");
|
|
29
40
|
Object.keys(_ProviderBadge).forEach(function (key) {
|
|
30
41
|
if (key === "default" || key === "__esModule") return;
|