fluent-styles 1.40.0 → 1.42.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.
@@ -228,52 +228,96 @@ const ImageBackground = (0, _styled.styled)(_reactNative.ImageBackground, {
228
228
  const FlexStyledImage = ({
229
229
  imageUrl,
230
230
  local = false,
231
+ fallback = require('../../assets/img/doctor.png'),
231
232
  ...rest
232
233
  }) => {
233
- const url = imageUrl ? {
234
- uri: imageUrl
235
- } : require('../../assets/img/blank_2.png');
234
+ const [hasError, setHasError] = useState(false);
235
+ const getImageSource = () => {
236
+ if (local) {
237
+ return imageUrl || fallback;
238
+ }
239
+ if (hasError || !imageUrl) {
240
+ return fallback;
241
+ }
242
+ return {
243
+ uri: imageUrl
244
+ };
245
+ };
236
246
  return /*#__PURE__*/_react.default.createElement(FlexImage, _extends({
237
- source: local ? imageUrl : url
247
+ source: getImageSource(),
248
+ onError: () => setHasError(true)
238
249
  }, rest));
239
250
  };
240
251
  exports.FlexStyledImage = FlexStyledImage;
241
- const StyledImage = ({
252
+ const FlexStyledBackgroundImage = ({
242
253
  imageUrl,
243
254
  local = false,
255
+ fallback = require('../../assets/img/doctor.png'),
244
256
  ...rest
245
257
  }) => {
246
- const url = imageUrl ? {
247
- uri: imageUrl
248
- } : require('../../assets/img/blank_2.png');
249
- return /*#__PURE__*/_react.default.createElement(Image, _extends({
250
- source: local ? imageUrl : url
258
+ const [hasError, setHasError] = useState(false);
259
+ const getImageSource = () => {
260
+ if (local) {
261
+ return imageUrl || fallback;
262
+ }
263
+ if (hasError || !imageUrl) {
264
+ return fallback;
265
+ }
266
+ return {
267
+ uri: imageUrl
268
+ };
269
+ };
270
+ return /*#__PURE__*/_react.default.createElement(FlexImageBackground, _extends({
271
+ source: getImageSource(),
272
+ onError: () => setHasError(true)
251
273
  }, rest));
252
274
  };
253
- exports.StyledImage = StyledImage;
254
- const FlexStyledBackgroundImage = ({
275
+ exports.FlexStyledBackgroundImage = FlexStyledBackgroundImage;
276
+ const StyledImage = ({
255
277
  imageUrl,
256
278
  local = false,
279
+ fallback = require('../../assets/img/doctor.png'),
257
280
  ...rest
258
281
  }) => {
259
- const url = imageUrl ? {
260
- uri: imageUrl
261
- } : require('../../assets/img/blank_2.png');
262
- return /*#__PURE__*/_react.default.createElement(FlexImageBackground, _extends({
263
- source: local ? imageUrl : url
282
+ const [hasError, setHasError] = useState(false);
283
+ const getImageSource = () => {
284
+ if (local) {
285
+ return imageUrl || fallback;
286
+ }
287
+ if (hasError || !imageUrl) {
288
+ return fallback;
289
+ }
290
+ return {
291
+ uri: imageUrl
292
+ };
293
+ };
294
+ return /*#__PURE__*/_react.default.createElement(Image, _extends({
295
+ source: getImageSource(),
296
+ onError: () => setHasError(true)
264
297
  }, rest));
265
298
  };
266
- exports.FlexStyledBackgroundImage = FlexStyledBackgroundImage;
299
+ exports.StyledImage = StyledImage;
267
300
  const StyledBackgroundImage = ({
268
301
  imageUrl,
269
302
  local = false,
303
+ fallback = require('../../assets/img/doctor.png'),
270
304
  ...rest
271
305
  }) => {
272
- const url = imageUrl ? {
273
- uri: imageUrl
274
- } : require('../../assets/img/blank_2.png');
306
+ const [hasError, setHasError] = useState(false);
307
+ const getImageSource = () => {
308
+ if (local) {
309
+ return imageUrl || fallback;
310
+ }
311
+ if (hasError || !imageUrl) {
312
+ return fallback;
313
+ }
314
+ return {
315
+ uri: imageUrl
316
+ };
317
+ };
275
318
  return /*#__PURE__*/_react.default.createElement(ImageBackground, _extends({
276
- source: local ? imageUrl : url
319
+ source: getImageSource(),
320
+ onError: () => setHasError(true)
277
321
  }, rest));
278
322
  };
279
323
  exports.StyledBackgroundImage = StyledBackgroundImage;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_styled","_utils","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","base","borderRadius","resizeMode","position","flexVariants","size","isValidNumber","Error","flex","width","height","borderWidth","borderColor","color","isValidColor","mode","validModes","includes","right","relative","absolute","true","variants","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","FlexImage","styled","SourceImage","FlexImageBackground","ImageBg","Image","ImageBackground","FlexStyledImage","imageUrl","local","rest","url","uri","createElement","source","exports","StyledImage","FlexStyledBackgroundImage","StyledBackgroundImage"],"sources":["index.jsx"],"sourcesContent":["import React from 'react'\r\nimport { Image as SourceImage, ImageBackground as ImageBg } from 'react-native'\r\nimport { styled } from '../styled'\r\nimport { isValidColor, isValidNumber } from '../utils'\r\n\r\nconst base = {\r\n borderRadius: 0,\r\n resizeMode: 'cover',\r\n position: 'relative'\r\n}\r\n\r\nconst flexVariants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst variants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n borderTopLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopLeftRadius value')\r\n }\r\n return { borderTopLeftRadius: size }\r\n },\r\n borderTopRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopRightRadius value')\r\n }\r\n return { borderTopRightRadius: size }\r\n },\r\n borderBottomLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomLeftRadius value')\r\n }\r\n return { borderBottomLeftRadius: size }\r\n },\r\n borderBottomRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomRightRadius value')\r\n }\r\n return { borderBottomRightRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst FlexImage = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst FlexImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst Image = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst ImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst FlexStyledImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n return <FlexImage source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nconst StyledImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n return <Image source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nconst FlexStyledBackgroundImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n\r\n return <FlexImageBackground source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nconst StyledBackgroundImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n\r\n return <ImageBackground source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nexport {\r\n\tStyledImage,\r\n\tStyledBackgroundImage,\r\n\tFlexStyledBackgroundImage,\r\n\tFlexStyledImage\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_styled","_utils","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","base","borderRadius","resizeMode","position","flexVariants","size","isValidNumber","Error","flex","width","height","borderWidth","borderColor","color","isValidColor","mode","validModes","includes","right","relative","absolute","true","variants","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","FlexImage","styled","SourceImage","FlexImageBackground","ImageBg","Image","ImageBackground","FlexStyledImage","imageUrl","local","fallback","rest","hasError","setHasError","useState","getImageSource","uri","createElement","source","onError","exports","FlexStyledBackgroundImage","StyledImage","StyledBackgroundImage"],"sources":["index.jsx"],"sourcesContent":["import React from 'react'\r\nimport { Image as SourceImage, ImageBackground as ImageBg } from 'react-native'\r\nimport { styled } from '../styled'\r\nimport { isValidColor, isValidNumber } from '../utils'\r\n\r\nconst base = {\r\n borderRadius: 0,\r\n resizeMode: 'cover',\r\n position: 'relative'\r\n}\r\n\r\nconst flexVariants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst variants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n borderTopLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopLeftRadius value')\r\n }\r\n return { borderTopLeftRadius: size }\r\n },\r\n borderTopRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopRightRadius value')\r\n }\r\n return { borderTopRightRadius: size }\r\n },\r\n borderBottomLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomLeftRadius value')\r\n }\r\n return { borderBottomLeftRadius: size }\r\n },\r\n borderBottomRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomRightRadius value')\r\n }\r\n return { borderBottomRightRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst FlexImage = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst FlexImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst Image = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst ImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst FlexStyledImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <FlexImage\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nconst FlexStyledBackgroundImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <FlexImageBackground\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nconst StyledImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <Image\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nconst StyledBackgroundImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <ImageBackground\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nexport {\r\n StyledImage,\r\n StyledBackgroundImage,\r\n FlexStyledBackgroundImage,\r\n FlexStyledImage\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAsD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAEtD,MAAMO,IAAI,GAAG;EACXC,YAAY,EAAE,CAAC;EACfC,UAAU,EAAE,OAAO;EACnBC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,YAAY,GAAG;EACnBH,YAAY,EAAEA,CAACI,IAAI,GAAG,CAAC,KAAK;IAC1B,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IACA,OAAO;MAAEN,YAAY,EAAEI;IAAK,CAAC;EAC/B,CAAC;EACDG,IAAI,EAAEA,CAACH,IAAI,GAAG,CAAC,KAAK;IAClB,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,oBAAoB,CAAC;IACvC;IACA,OAAO;MAAEC,IAAI,EAAEH;IAAK,CAAC;EACvB,CAAC;EACDI,KAAK,EAAEJ,IAAI,IAAI;IACb,IAAI,CAACA,IAAI,EAAE;IACX,OAAO;MAAEI,KAAK,EAAEJ;IAAK,CAAC;EACxB,CAAC;EACDK,MAAM,EAAEL,IAAI,IAAI;IACd,IAAI,CAACA,IAAI,EAAE;IACX,OAAO;MAAEK,MAAM,EAAEL;IAAK,CAAC;EACzB,CAAC;EACDM,WAAW,EAAEA,CAACN,IAAI,GAAG,CAAC,KAAK;IACzB,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,2BAA2B,CAAC;IAC9C;IACA,OAAO;MAAEI,WAAW,EAAEN;IAAK,CAAC;EAC9B,CAAC;EACDO,WAAW,EAAEC,KAAK,IAAI;IACpB,IAAI,CAACA,KAAK,EAAE;IACZ,IAAI,CAAC,IAAAC,mBAAY,EAACD,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIN,KAAK,CAAC,+BAA+B,CAAC;IAClD;IACA,OAAO;MAAEK,WAAW,EAAEC;IAAM,CAAC;EAC/B,CAAC;EACDX,UAAU,EAAEa,IAAI,IAAI;IAClB,IAAI,CAACA,IAAI,EAAE;IAEX,MAAMC,UAAU,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACtE,IAAI,CAACA,UAAU,CAACC,QAAQ,CAACF,IAAI,CAAC,EAAE;MAC9B,MAAM,IAAIR,KAAK,CAAC,oBAAoB,CAAC;IACvC;IACA,OAAO;MAAEL,UAAU,EAAEa;IAAK,CAAC;EAC7B,CAAC;EACDG,KAAK,EAAEA,CAACb,IAAI,GAAG,CAAC,KAAK;IACnB,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,qBAAqB,CAAC;IACxC;IACA,OAAO;MAAEW,KAAK,EAAEb;IAAK,CAAC;EACxB,CAAC;EACDc,QAAQ,EAAE;IACRhB,QAAQ,EAAE;EACZ,CAAC;EACDiB,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJlB,QAAQ,EAAE;IACZ;EACF;AACF,CAAC;AAED,MAAMmB,QAAQ,GAAG;EACfrB,YAAY,EAAEA,CAACI,IAAI,GAAG,CAAC,KAAK;IAC1B,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IACA,OAAO;MAAEN,YAAY,EAAEI;IAAK,CAAC;EAC/B,CAAC;EACDkB,mBAAmB,EAAEA,CAAClB,IAAI,GAAG,CAAC,KAAK;IACjC,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACA,OAAO;MAAEgB,mBAAmB,EAAElB;IAAK,CAAC;EACtC,CAAC;EACDmB,oBAAoB,EAAEA,CAACnB,IAAI,GAAG,CAAC,KAAK;IAClC,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,oCAAoC,CAAC;IACvD;IACA,OAAO;MAAEiB,oBAAoB,EAAEnB;IAAK,CAAC;EACvC,CAAC;EACDoB,sBAAsB,EAAEA,CAACpB,IAAI,GAAG,CAAC,KAAK;IACpC,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;IACzD;IACA,OAAO;MAAEkB,sBAAsB,EAAEpB;IAAK,CAAC;EACzC,CAAC;EACDqB,uBAAuB,EAAEA,CAACrB,IAAI,GAAG,CAAC,KAAK;IACrC,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,uCAAuC,CAAC;IAC1D;IACA,OAAO;MAAEmB,uBAAuB,EAAErB;IAAK,CAAC;EAC1C,CAAC;EACDG,IAAI,EAAEA,CAACH,IAAI,GAAG,CAAC,KAAK;IAClB,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,oBAAoB,CAAC;IACvC;IACA,OAAO;MAAEC,IAAI,EAAEH;IAAK,CAAC;EACvB,CAAC;EACDI,KAAK,EAAEJ,IAAI,IAAI;IACb,IAAI,CAACA,IAAI,EAAE;IACX,OAAO;MAAEI,KAAK,EAAEJ;IAAK,CAAC;EACxB,CAAC;EACDK,MAAM,EAAEL,IAAI,IAAI;IACd,IAAI,CAACA,IAAI,EAAE;IACX,OAAO;MAAEK,MAAM,EAAEL;IAAK,CAAC;EACzB,CAAC;EACDM,WAAW,EAAEA,CAACN,IAAI,GAAG,CAAC,KAAK;IACzB,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,2BAA2B,CAAC;IAC9C;IACA,OAAO;MAAEI,WAAW,EAAEN;IAAK,CAAC;EAC9B,CAAC;EACDO,WAAW,EAAEC,KAAK,IAAI;IACpB,IAAI,CAACA,KAAK,EAAE;IACZ,IAAI,CAAC,IAAAC,mBAAY,EAACD,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIN,KAAK,CAAC,+BAA+B,CAAC;IAClD;IACA,OAAO;MAAEK,WAAW,EAAEC;IAAM,CAAC;EAC/B,CAAC;EACDX,UAAU,EAAEa,IAAI,IAAI;IAClB,IAAI,CAACA,IAAI,EAAE;IAEX,MAAMC,UAAU,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACtE,IAAI,CAACA,UAAU,CAACC,QAAQ,CAACF,IAAI,CAAC,EAAE;MAC9B,MAAM,IAAIR,KAAK,CAAC,oBAAoB,CAAC;IACvC;IACA,OAAO;MAAEL,UAAU,EAAEa;IAAK,CAAC;EAC7B,CAAC;EACDG,KAAK,EAAEA,CAACb,IAAI,GAAG,CAAC,KAAK;IACnB,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAAC,EAAE;MACxB,MAAM,IAAIE,KAAK,CAAC,qBAAqB,CAAC;IACxC;IACA,OAAO;MAAEW,KAAK,EAAEb;IAAK,CAAC;EACxB,CAAC;EACDc,QAAQ,EAAE;IACRhB,QAAQ,EAAE;EACZ,CAAC;EACDiB,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJlB,QAAQ,EAAE;IACZ;EACF;AACF,CAAC;AAED,MAAMwB,SAAS,GAAG,IAAAC,cAAM,EAACC,kBAAW,EAAE;EACpC7B,IAAI,EAAE;IAAE,GAAGA;EAAK,CAAC;EACjBsB,QAAQ,EAAE;IACR,GAAGlB;EACL;AACF,CAAC,CAAC;AAEF,MAAM0B,mBAAmB,GAAG,IAAAF,cAAM,EAACG,4BAAO,EAAE;EAC1C/B,IAAI,EAAE;IAAE,GAAGA;EAAK,CAAC;EACjBsB,QAAQ,EAAE;IACR,GAAGlB;EACL;AACF,CAAC,CAAC;AAEF,MAAM4B,KAAK,GAAG,IAAAJ,cAAM,EAACC,kBAAW,EAAE;EAChC7B,IAAI,EAAE;IAAE,GAAGA;EAAK,CAAC;EACjBsB,QAAQ,EAAE;IACR,GAAGA;EACL;AACF,CAAC,CAAC;AAEF,MAAMW,eAAe,GAAG,IAAAL,cAAM,EAACG,4BAAO,EAAE;EACtC/B,IAAI,EAAE;IAAE,GAAGA;EAAK,CAAC;EACjBsB,QAAQ,EAAE;IACR,GAAGA;EACL;AACF,CAAC,CAAC;AAEF,MAAMY,eAAe,GAAGA,CAAC;EACvBC,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,QAAQ,GAAGxD,OAAO,CAAC,6BAA6B,CAAC;EACjD,GAAGyD;AACL,CAAC,KAAK;EACJ,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAIN,KAAK,EAAE;MACT,OAAOD,QAAQ,IAAIE,QAAQ;IAC7B;IAEA,IAAIE,QAAQ,IAAI,CAACJ,QAAQ,EAAE;MACzB,OAAOE,QAAQ;IACjB;IAEA,OAAO;MAAEM,GAAG,EAAER;IAAS,CAAC;EAC1B,CAAC;EAED,oBACExD,MAAA,CAAAQ,OAAA,CAAAyD,aAAA,CAACjB,SAAS,EAAAvC,QAAA;IACRyD,MAAM,EAAEH,cAAc,CAAC,CAAE;IACzBI,OAAO,EAAEA,CAAA,KAAMN,WAAW,CAAC,IAAI;EAAE,GAC7BF,IAAI,CACT,CAAC;AAEN,CAAC;AAAAS,OAAA,CAAAb,eAAA,GAAAA,eAAA;AAED,MAAMc,yBAAyB,GAAGA,CAAC;EACjCb,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,QAAQ,GAAGxD,OAAO,CAAC,6BAA6B,CAAC;EACjD,GAAGyD;AACL,CAAC,KAAK;EACJ,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAIN,KAAK,EAAE;MACT,OAAOD,QAAQ,IAAIE,QAAQ;IAC7B;IAEA,IAAIE,QAAQ,IAAI,CAACJ,QAAQ,EAAE;MACzB,OAAOE,QAAQ;IACjB;IAEA,OAAO;MAAEM,GAAG,EAAER;IAAS,CAAC;EAC1B,CAAC;EAED,oBACExD,MAAA,CAAAQ,OAAA,CAAAyD,aAAA,CAACd,mBAAmB,EAAA1C,QAAA;IAClByD,MAAM,EAAEH,cAAc,CAAC,CAAE;IACzBI,OAAO,EAAEA,CAAA,KAAMN,WAAW,CAAC,IAAI;EAAE,GAC7BF,IAAI,CACT,CAAC;AAEN,CAAC;AAAAS,OAAA,CAAAC,yBAAA,GAAAA,yBAAA;AAED,MAAMC,WAAW,GAAGA,CAAC;EACnBd,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,QAAQ,GAAGxD,OAAO,CAAC,6BAA6B,CAAC;EACjD,GAAGyD;AACL,CAAC,KAAK;EACJ,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAIN,KAAK,EAAE;MACT,OAAOD,QAAQ,IAAIE,QAAQ;IAC7B;IAEA,IAAIE,QAAQ,IAAI,CAACJ,QAAQ,EAAE;MACzB,OAAOE,QAAQ;IACjB;IAEA,OAAO;MAAEM,GAAG,EAAER;IAAS,CAAC;EAC1B,CAAC;EAED,oBACExD,MAAA,CAAAQ,OAAA,CAAAyD,aAAA,CAACZ,KAAK,EAAA5C,QAAA;IACJyD,MAAM,EAAEH,cAAc,CAAC,CAAE;IACzBI,OAAO,EAAEA,CAAA,KAAMN,WAAW,CAAC,IAAI;EAAE,GAC7BF,IAAI,CACT,CAAC;AAEN,CAAC;AAAAS,OAAA,CAAAE,WAAA,GAAAA,WAAA;AAED,MAAMC,qBAAqB,GAAGA,CAAC;EAC7Bf,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,QAAQ,GAAGxD,OAAO,CAAC,6BAA6B,CAAC;EACjD,GAAGyD;AACL,CAAC,KAAK;EACJ,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAIN,KAAK,EAAE;MACT,OAAOD,QAAQ,IAAIE,QAAQ;IAC7B;IAEA,IAAIE,QAAQ,IAAI,CAACJ,QAAQ,EAAE;MACzB,OAAOE,QAAQ;IACjB;IAEA,OAAO;MAAEM,GAAG,EAAER;IAAS,CAAC;EAC1B,CAAC;EAED,oBACExD,MAAA,CAAAQ,OAAA,CAAAyD,aAAA,CAACX,eAAe,EAAA7C,QAAA;IACdyD,MAAM,EAAEH,cAAc,CAAC,CAAE;IACzBI,OAAO,EAAEA,CAAA,KAAMN,WAAW,CAAC,IAAI;EAAE,GAC7BF,IAAI,CACT,CAAC;AAEN,CAAC;AAAAS,OAAA,CAAAG,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -221,49 +221,93 @@ const ImageBackground = styled(ImageBg, {
221
221
  const FlexStyledImage = ({
222
222
  imageUrl,
223
223
  local = false,
224
+ fallback = require('../../assets/img/doctor.png'),
224
225
  ...rest
225
226
  }) => {
226
- const url = imageUrl ? {
227
- uri: imageUrl
228
- } : require('../../assets/img/blank_2.png');
227
+ const [hasError, setHasError] = useState(false);
228
+ const getImageSource = () => {
229
+ if (local) {
230
+ return imageUrl || fallback;
231
+ }
232
+ if (hasError || !imageUrl) {
233
+ return fallback;
234
+ }
235
+ return {
236
+ uri: imageUrl
237
+ };
238
+ };
229
239
  return /*#__PURE__*/React.createElement(FlexImage, _extends({
230
- source: local ? imageUrl : url
240
+ source: getImageSource(),
241
+ onError: () => setHasError(true)
231
242
  }, rest));
232
243
  };
233
- const StyledImage = ({
244
+ const FlexStyledBackgroundImage = ({
234
245
  imageUrl,
235
246
  local = false,
247
+ fallback = require('../../assets/img/doctor.png'),
236
248
  ...rest
237
249
  }) => {
238
- const url = imageUrl ? {
239
- uri: imageUrl
240
- } : require('../../assets/img/blank_2.png');
241
- return /*#__PURE__*/React.createElement(Image, _extends({
242
- source: local ? imageUrl : url
250
+ const [hasError, setHasError] = useState(false);
251
+ const getImageSource = () => {
252
+ if (local) {
253
+ return imageUrl || fallback;
254
+ }
255
+ if (hasError || !imageUrl) {
256
+ return fallback;
257
+ }
258
+ return {
259
+ uri: imageUrl
260
+ };
261
+ };
262
+ return /*#__PURE__*/React.createElement(FlexImageBackground, _extends({
263
+ source: getImageSource(),
264
+ onError: () => setHasError(true)
243
265
  }, rest));
244
266
  };
245
- const FlexStyledBackgroundImage = ({
267
+ const StyledImage = ({
246
268
  imageUrl,
247
269
  local = false,
270
+ fallback = require('../../assets/img/doctor.png'),
248
271
  ...rest
249
272
  }) => {
250
- const url = imageUrl ? {
251
- uri: imageUrl
252
- } : require('../../assets/img/blank_2.png');
253
- return /*#__PURE__*/React.createElement(FlexImageBackground, _extends({
254
- source: local ? imageUrl : url
273
+ const [hasError, setHasError] = useState(false);
274
+ const getImageSource = () => {
275
+ if (local) {
276
+ return imageUrl || fallback;
277
+ }
278
+ if (hasError || !imageUrl) {
279
+ return fallback;
280
+ }
281
+ return {
282
+ uri: imageUrl
283
+ };
284
+ };
285
+ return /*#__PURE__*/React.createElement(Image, _extends({
286
+ source: getImageSource(),
287
+ onError: () => setHasError(true)
255
288
  }, rest));
256
289
  };
257
290
  const StyledBackgroundImage = ({
258
291
  imageUrl,
259
292
  local = false,
293
+ fallback = require('../../assets/img/doctor.png'),
260
294
  ...rest
261
295
  }) => {
262
- const url = imageUrl ? {
263
- uri: imageUrl
264
- } : require('../../assets/img/blank_2.png');
296
+ const [hasError, setHasError] = useState(false);
297
+ const getImageSource = () => {
298
+ if (local) {
299
+ return imageUrl || fallback;
300
+ }
301
+ if (hasError || !imageUrl) {
302
+ return fallback;
303
+ }
304
+ return {
305
+ uri: imageUrl
306
+ };
307
+ };
265
308
  return /*#__PURE__*/React.createElement(ImageBackground, _extends({
266
- source: local ? imageUrl : url
309
+ source: getImageSource(),
310
+ onError: () => setHasError(true)
267
311
  }, rest));
268
312
  };
269
313
  export { StyledImage, StyledBackgroundImage, FlexStyledBackgroundImage, FlexStyledImage };
@@ -1 +1 @@
1
- {"version":3,"names":["React","Image","SourceImage","ImageBackground","ImageBg","styled","isValidColor","isValidNumber","base","borderRadius","resizeMode","position","flexVariants","size","Error","flex","width","height","borderWidth","borderColor","color","mode","validModes","includes","right","relative","absolute","true","variants","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","FlexImage","FlexImageBackground","FlexStyledImage","imageUrl","local","rest","url","uri","require","createElement","_extends","source","StyledImage","FlexStyledBackgroundImage","StyledBackgroundImage"],"sources":["index.jsx"],"sourcesContent":["import React from 'react'\r\nimport { Image as SourceImage, ImageBackground as ImageBg } from 'react-native'\r\nimport { styled } from '../styled'\r\nimport { isValidColor, isValidNumber } from '../utils'\r\n\r\nconst base = {\r\n borderRadius: 0,\r\n resizeMode: 'cover',\r\n position: 'relative'\r\n}\r\n\r\nconst flexVariants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst variants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n borderTopLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopLeftRadius value')\r\n }\r\n return { borderTopLeftRadius: size }\r\n },\r\n borderTopRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopRightRadius value')\r\n }\r\n return { borderTopRightRadius: size }\r\n },\r\n borderBottomLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomLeftRadius value')\r\n }\r\n return { borderBottomLeftRadius: size }\r\n },\r\n borderBottomRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomRightRadius value')\r\n }\r\n return { borderBottomRightRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst FlexImage = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst FlexImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst Image = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst ImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst FlexStyledImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n return <FlexImage source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nconst StyledImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n return <Image source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nconst FlexStyledBackgroundImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n\r\n return <FlexImageBackground source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nconst StyledBackgroundImage = ({ imageUrl, local = false, ...rest }) => {\r\n const url = imageUrl\r\n\t\t? {\r\n uri: imageUrl\r\n}\r\n\t\t: require('../../assets/img/blank_2.png')\r\n\r\n return <ImageBackground source={local ? imageUrl : url} {...rest} />\r\n}\r\n\r\nexport {\r\n\tStyledImage,\r\n\tStyledBackgroundImage,\r\n\tFlexStyledBackgroundImage,\r\n\tFlexStyledImage\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Image","SourceImage","ImageBackground","ImageBg","styled","isValidColor","isValidNumber","base","borderRadius","resizeMode","position","flexVariants","size","Error","flex","width","height","borderWidth","borderColor","color","mode","validModes","includes","right","relative","absolute","true","variants","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","FlexImage","FlexImageBackground","FlexStyledImage","imageUrl","local","fallback","require","rest","hasError","setHasError","useState","getImageSource","uri","createElement","_extends","source","onError","FlexStyledBackgroundImage","StyledImage","StyledBackgroundImage"],"sources":["index.jsx"],"sourcesContent":["import React from 'react'\r\nimport { Image as SourceImage, ImageBackground as ImageBg } from 'react-native'\r\nimport { styled } from '../styled'\r\nimport { isValidColor, isValidNumber } from '../utils'\r\n\r\nconst base = {\r\n borderRadius: 0,\r\n resizeMode: 'cover',\r\n position: 'relative'\r\n}\r\n\r\nconst flexVariants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst variants = {\r\n borderRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderRadius value')\r\n }\r\n return { borderRadius: size }\r\n },\r\n borderTopLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopLeftRadius value')\r\n }\r\n return { borderTopLeftRadius: size }\r\n },\r\n borderTopRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderTopRightRadius value')\r\n }\r\n return { borderTopRightRadius: size }\r\n },\r\n borderBottomLeftRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomLeftRadius value')\r\n }\r\n return { borderBottomLeftRadius: size }\r\n },\r\n borderBottomRightRadius: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderBottomRightRadius value')\r\n }\r\n return { borderBottomRightRadius: size }\r\n },\r\n flex: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid flex value')\r\n }\r\n return { flex: size }\r\n },\r\n width: size => {\r\n if (!size) return\r\n return { width: size }\r\n },\r\n height: size => {\r\n if (!size) return\r\n return { height: size }\r\n },\r\n borderWidth: (size = 1) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid borderWidth value')\r\n }\r\n return { borderWidth: size }\r\n },\r\n borderColor: color => {\r\n if (!color) return\r\n if (!isValidColor(color)) {\r\n throw new Error('Invalid backgroundColor value')\r\n }\r\n return { borderColor: color }\r\n },\r\n resizeMode: mode => {\r\n if (!mode) return\r\n\r\n const validModes = ['cover', 'contain', 'stretch', 'repeat', 'center']\r\n if (!validModes.includes(mode)) {\r\n throw new Error('Invalid mode value')\r\n }\r\n return { resizeMode: mode }\r\n },\r\n right: (size = 0) => {\r\n if (!isValidNumber(size)) {\r\n throw new Error('Invalid right value')\r\n }\r\n return { right: size }\r\n },\r\n relative: {\r\n position: 'relative'\r\n },\r\n absolute: {\r\n true: {\r\n position: 'absolute'\r\n }\r\n }\r\n}\r\n\r\nconst FlexImage = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst FlexImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...flexVariants\r\n }\r\n})\r\n\r\nconst Image = styled(SourceImage, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst ImageBackground = styled(ImageBg, {\r\n base: { ...base },\r\n variants: {\r\n ...variants\r\n }\r\n})\r\n\r\nconst FlexStyledImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <FlexImage\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nconst FlexStyledBackgroundImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <FlexImageBackground\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nconst StyledImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <Image\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nconst StyledBackgroundImage = ({\r\n imageUrl,\r\n local = false,\r\n fallback = require('../../assets/img/doctor.png'),\r\n ...rest\r\n}) => {\r\n const [hasError, setHasError] = useState(false)\r\n const getImageSource = () => {\r\n if (local) {\r\n return imageUrl || fallback\r\n }\r\n\r\n if (hasError || !imageUrl) {\r\n return fallback\r\n }\r\n\r\n return { uri: imageUrl }\r\n }\r\n\r\n return (\r\n <ImageBackground\r\n source={getImageSource()}\r\n onError={() => setHasError(true)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nexport {\r\n StyledImage,\r\n StyledBackgroundImage,\r\n FlexStyledBackgroundImage,\r\n FlexStyledImage\r\n}\r\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluent-styles",
3
- "version": "1.40.0",
3
+ "version": "1.42.0",
4
4
  "description": "Develop different styled versions of UI components.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -179,47 +179,121 @@ const ImageBackground = styled(ImageBg, {
179
179
  }
180
180
  })
181
181
 
182
- const FlexStyledImage = ({ imageUrl, local = false, ...rest }) => {
183
- const url = imageUrl
184
- ? {
185
- uri: imageUrl
186
- }
187
- : require('../../assets/img/blank_2.png')
188
- return <FlexImage source={local ? imageUrl : url} {...rest} />
189
- }
182
+ const FlexStyledImage = ({
183
+ imageUrl,
184
+ local = false,
185
+ fallback = require('../../assets/img/doctor.png'),
186
+ ...rest
187
+ }) => {
188
+ const [hasError, setHasError] = useState(false)
189
+ const getImageSource = () => {
190
+ if (local) {
191
+ return imageUrl || fallback
192
+ }
190
193
 
191
- const StyledImage = ({ imageUrl, local = false, ...rest }) => {
192
- const url = imageUrl
193
- ? {
194
- uri: imageUrl
195
- }
196
- : require('../../assets/img/blank_2.png')
197
- return <Image source={local ? imageUrl : url} {...rest} />
198
- }
194
+ if (hasError || !imageUrl) {
195
+ return fallback
196
+ }
199
197
 
200
- const FlexStyledBackgroundImage = ({ imageUrl, local = false, ...rest }) => {
201
- const url = imageUrl
202
- ? {
203
- uri: imageUrl
198
+ return { uri: imageUrl }
199
+ }
200
+
201
+ return (
202
+ <FlexImage
203
+ source={getImageSource()}
204
+ onError={() => setHasError(true)}
205
+ {...rest}
206
+ />
207
+ )
204
208
  }
205
- : require('../../assets/img/blank_2.png')
206
209
 
207
- return <FlexImageBackground source={local ? imageUrl : url} {...rest} />
210
+ const FlexStyledBackgroundImage = ({
211
+ imageUrl,
212
+ local = false,
213
+ fallback = require('../../assets/img/doctor.png'),
214
+ ...rest
215
+ }) => {
216
+ const [hasError, setHasError] = useState(false)
217
+ const getImageSource = () => {
218
+ if (local) {
219
+ return imageUrl || fallback
220
+ }
221
+
222
+ if (hasError || !imageUrl) {
223
+ return fallback
224
+ }
225
+
226
+ return { uri: imageUrl }
227
+ }
228
+
229
+ return (
230
+ <FlexImageBackground
231
+ source={getImageSource()}
232
+ onError={() => setHasError(true)}
233
+ {...rest}
234
+ />
235
+ )
208
236
  }
209
237
 
210
- const StyledBackgroundImage = ({ imageUrl, local = false, ...rest }) => {
211
- const url = imageUrl
212
- ? {
213
- uri: imageUrl
238
+ const StyledImage = ({
239
+ imageUrl,
240
+ local = false,
241
+ fallback = require('../../assets/img/doctor.png'),
242
+ ...rest
243
+ }) => {
244
+ const [hasError, setHasError] = useState(false)
245
+ const getImageSource = () => {
246
+ if (local) {
247
+ return imageUrl || fallback
248
+ }
249
+
250
+ if (hasError || !imageUrl) {
251
+ return fallback
252
+ }
253
+
254
+ return { uri: imageUrl }
255
+ }
256
+
257
+ return (
258
+ <Image
259
+ source={getImageSource()}
260
+ onError={() => setHasError(true)}
261
+ {...rest}
262
+ />
263
+ )
214
264
  }
215
- : require('../../assets/img/blank_2.png')
216
265
 
217
- return <ImageBackground source={local ? imageUrl : url} {...rest} />
266
+ const StyledBackgroundImage = ({
267
+ imageUrl,
268
+ local = false,
269
+ fallback = require('../../assets/img/doctor.png'),
270
+ ...rest
271
+ }) => {
272
+ const [hasError, setHasError] = useState(false)
273
+ const getImageSource = () => {
274
+ if (local) {
275
+ return imageUrl || fallback
276
+ }
277
+
278
+ if (hasError || !imageUrl) {
279
+ return fallback
280
+ }
281
+
282
+ return { uri: imageUrl }
283
+ }
284
+
285
+ return (
286
+ <ImageBackground
287
+ source={getImageSource()}
288
+ onError={() => setHasError(true)}
289
+ {...rest}
290
+ />
291
+ )
218
292
  }
219
293
 
220
294
  export {
221
- StyledImage,
222
- StyledBackgroundImage,
223
- FlexStyledBackgroundImage,
224
- FlexStyledImage
295
+ StyledImage,
296
+ StyledBackgroundImage,
297
+ FlexStyledBackgroundImage,
298
+ FlexStyledImage
225
299
  }