@sendbird/uikit-react-native-foundation 3.6.0 → 3.7.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.
@@ -26,9 +26,9 @@ function convertSource(source) {
26
26
  return source;
27
27
  }
28
28
  return {
29
- uri: source.uri,
30
- headers: source.headers,
31
- cache: convertCache(source.cache) //'immutable' | 'web' | 'cacheOnly'
29
+ uri: source === null || source === void 0 ? void 0 : source.uri,
30
+ headers: source === null || source === void 0 ? void 0 : source.headers,
31
+ cache: convertCache(source === null || source === void 0 ? void 0 : source.cache) //'immutable' | 'web' | 'cacheOnly'
32
32
  };
33
33
  }
34
34
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_FastImageInternal","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","convertCache","cache","convertSource","Array","isArray","uri","headers","convertDefaultSource","undefined","convertResizeMode","mode","Image_FastImage","_ref","defaultSource","resizeMode","onLoad","onError","style","tintColor","disableFastImage","props","createElement","Image","e","nativeEvent","_default","exports"],"sources":["Image.fastimage.tsx"],"sourcesContent":["import React from 'react';\nimport { Image } from 'react-native';\nimport type { FastImageProps, ResizeMode, Source } from 'react-native-fast-image';\n\nimport FastImageInternal from './FastImageInternal';\nimport type { SendbirdImageComponent, SendbirdImageProps } from './index';\n\nfunction convertCache(\n cache?: 'default' | 'reload' | 'force-cache' | 'only-if-cached' | undefined,\n): 'immutable' | 'web' | 'cacheOnly' {\n switch (cache) {\n case 'force-cache':\n case 'only-if-cached':\n return 'cacheOnly';\n default:\n return 'immutable';\n }\n}\n\nfunction convertSource(source: SendbirdImageProps['source']): Source | number {\n if (Array.isArray(source)) {\n return convertSource(source[0]);\n }\n\n if (typeof source === 'number') {\n return source;\n }\n\n return {\n uri: source.uri,\n headers: source.headers,\n cache: convertCache(source.cache), //'immutable' | 'web' | 'cacheOnly'\n };\n}\nfunction convertDefaultSource(source?: SendbirdImageProps['defaultSource']): number | undefined {\n if (typeof source === 'number') {\n return source;\n }\n\n return undefined;\n}\n\nfunction convertResizeMode(mode?: SendbirdImageProps['resizeMode']): ResizeMode | undefined {\n switch (mode) {\n case 'center':\n return 'center';\n case 'contain':\n return 'contain';\n case 'cover':\n return 'cover';\n case 'stretch':\n return 'stretch';\n default:\n return undefined;\n }\n}\n\nconst Image_FastImage: SendbirdImageComponent = ({\n source,\n defaultSource,\n resizeMode,\n onLoad,\n onError,\n style,\n tintColor,\n disableFastImage = false,\n ...props\n}) => {\n if (disableFastImage) {\n return (\n <Image\n {...props}\n source={source}\n style={[style, { tintColor }]}\n onError={onError && ((e) => onError(e.nativeEvent))}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent.source))}\n />\n );\n }\n return (\n <FastImageInternal\n {...props}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent))}\n onError={onError && (() => onError({}))}\n style={style as FastImageProps['style']}\n source={convertSource(source)}\n defaultSource={convertDefaultSource(defaultSource)}\n resizeMode={convertResizeMode(resizeMode)}\n />\n );\n};\n\nexport default Image_FastImage;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_FastImageInternal","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","convertCache","cache","convertSource","Array","isArray","uri","headers","convertDefaultSource","undefined","convertResizeMode","mode","Image_FastImage","_ref","defaultSource","resizeMode","onLoad","onError","style","tintColor","disableFastImage","props","createElement","Image","e","nativeEvent","_default","exports"],"sources":["Image.fastimage.tsx"],"sourcesContent":["import React from 'react';\nimport { Image } from 'react-native';\nimport type { FastImageProps, ResizeMode, Source } from 'react-native-fast-image';\n\nimport FastImageInternal from './FastImageInternal';\nimport type { SendbirdImageComponent, SendbirdImageProps } from './index';\n\nfunction convertCache(\n cache?: 'default' | 'reload' | 'force-cache' | 'only-if-cached' | undefined,\n): 'immutable' | 'web' | 'cacheOnly' {\n switch (cache) {\n case 'force-cache':\n case 'only-if-cached':\n return 'cacheOnly';\n default:\n return 'immutable';\n }\n}\n\nfunction convertSource(source: SendbirdImageProps['source']): Source | number {\n if (Array.isArray(source)) {\n return convertSource(source[0]);\n }\n\n if (typeof source === 'number') {\n return source;\n }\n\n return {\n uri: source?.uri,\n headers: source?.headers,\n cache: convertCache(source?.cache), //'immutable' | 'web' | 'cacheOnly'\n };\n}\nfunction convertDefaultSource(source?: SendbirdImageProps['defaultSource']): number | undefined {\n if (typeof source === 'number') {\n return source;\n }\n\n return undefined;\n}\n\nfunction convertResizeMode(mode?: SendbirdImageProps['resizeMode']): ResizeMode | undefined {\n switch (mode) {\n case 'center':\n return 'center';\n case 'contain':\n return 'contain';\n case 'cover':\n return 'cover';\n case 'stretch':\n return 'stretch';\n default:\n return undefined;\n }\n}\n\nconst Image_FastImage: SendbirdImageComponent = ({\n source,\n defaultSource,\n resizeMode,\n onLoad,\n onError,\n style,\n tintColor,\n disableFastImage = false,\n ...props\n}) => {\n if (disableFastImage) {\n return (\n <Image\n {...props}\n source={source}\n style={[style, { tintColor }]}\n onError={onError && ((e) => onError(e.nativeEvent))}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent.source))}\n />\n );\n }\n return (\n <FastImageInternal\n {...props}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent))}\n onError={onError && (() => onError({}))}\n style={style as FastImageProps['style']}\n source={convertSource(source)}\n defaultSource={convertDefaultSource(defaultSource)}\n resizeMode={convertResizeMode(resizeMode)}\n />\n );\n};\n\nexport default Image_FastImage;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitUtils","_createStyleSheet","_interopRequireDefault","_useUIKitTheme","_Box","_Icon","_Image","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","useRetry","hasError","retryCount","arguments","length","undefined","Platform","OS","forceUpdate","useForceUpdate","retryCountRef","useRef","retryTimeoutRef","useEffect","reloadReservation","current","setTimeout","clearTimeout","ImageWithPlaceholder","props","palette","select","colors","useUIKitTheme","imageNotFound","setImageNotFound","useState","createElement","style","overflow","width","height","backgroundColor","dark","background400","light","background100","source","StyleSheet","absoluteFill","styles","hide","resizeMode","resizeMethod","onError","onLoad","containerStyle","icon","size","color","onBackground02","createStyleSheet","display","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Box from '../Box';\nimport Icon from '../Icon';\nimport Image from '../Image';\n\nconst useRetry = (hasError: boolean, retryCount = 5) => {\n // NOTE: Glide(fast-image) will retry automatically on Android\n if (Platform.OS === 'android') return '';\n\n const forceUpdate = useForceUpdate();\n const retryCountRef = useRef(1);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n if (hasError) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n forceUpdate();\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [hasError]);\n\n return retryCountRef.current;\n};\n\ntype Props = {\n source: number | { uri: string };\n width?: number | string;\n height?: number | string;\n style?: StyleProp<ViewStyle>;\n};\nconst ImageWithPlaceholder = (props: Props) => {\n const { palette, select, colors } = useUIKitTheme();\n const [imageNotFound, setImageNotFound] = useState(false);\n\n const key = useRetry(imageNotFound);\n return (\n <Box\n style={[{ overflow: 'hidden', width: props.width, height: props.height }, props.style]}\n backgroundColor={select({ dark: palette.background400, light: palette.background100 })}\n >\n <Image\n key={key}\n source={props.source}\n style={[StyleSheet.absoluteFill, imageNotFound && styles.hide]}\n resizeMode={'cover'}\n resizeMethod={'resize'}\n onError={() => setImageNotFound(true)}\n onLoad={() => setImageNotFound(false)}\n />\n {imageNotFound && (\n <Icon\n containerStyle={StyleSheet.absoluteFill}\n icon={'thumbnail-none'}\n size={48}\n color={colors.onBackground02}\n />\n )}\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n hide: {\n display: 'none',\n },\n});\n\nexport default ImageWithPlaceholder;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitUtils","_createStyleSheet","_interopRequireDefault","_useUIKitTheme","_Box","_Icon","_Image","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","useRetry","hasError","retryCount","arguments","length","undefined","Platform","OS","forceUpdate","useForceUpdate","retryCountRef","useRef","retryTimeoutRef","useEffect","reloadReservation","current","setTimeout","clearTimeout","ImageWithPlaceholder","props","palette","select","colors","useUIKitTheme","imageNotFound","setImageNotFound","useState","createElement","style","overflow","width","height","backgroundColor","dark","background400","light","background100","source","StyleSheet","absoluteFill","styles","hide","resizeMode","resizeMethod","onError","onLoad","containerStyle","icon","size","color","onBackground02","createStyleSheet","display","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Box from '../Box';\nimport Icon from '../Icon';\nimport Image from '../Image';\n\nconst useRetry = (hasError: boolean, retryCount = 5) => {\n // NOTE: Glide(fast-image) will retry automatically on Android\n if (Platform.OS === 'android') return '';\n\n const forceUpdate = useForceUpdate();\n const retryCountRef = useRef(1);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n if (hasError) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n forceUpdate();\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [hasError]);\n\n return retryCountRef.current;\n};\n\ntype Props = {\n source: number | { uri: string };\n width?: number | `${number}%`;\n height?: number | `${number}%`;\n style?: StyleProp<ViewStyle>;\n};\nconst ImageWithPlaceholder = (props: Props) => {\n const { palette, select, colors } = useUIKitTheme();\n const [imageNotFound, setImageNotFound] = useState(false);\n\n const key = useRetry(imageNotFound);\n return (\n <Box\n style={[{ overflow: 'hidden', width: props.width, height: props.height }, props.style]}\n backgroundColor={select({ dark: palette.background400, light: palette.background100 })}\n >\n <Image\n key={key}\n source={props.source}\n style={[StyleSheet.absoluteFill, imageNotFound && styles.hide]}\n resizeMode={'cover'}\n resizeMethod={'resize'}\n onError={() => setImageNotFound(true)}\n onLoad={() => setImageNotFound(false)}\n />\n {imageNotFound && (\n <Icon\n containerStyle={StyleSheet.absoluteFill}\n icon={'thumbnail-none'}\n size={48}\n color={colors.onBackground02}\n />\n )}\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n hide: {\n display: 'none',\n },\n});\n\nexport default ImageWithPlaceholder;\n"],"mappings":"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"}
@@ -6,35 +6,40 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _createScaleFactor = require("./createScaleFactor");
9
- const SCALE_FACTOR_WITH_STR = val => typeof val === 'string' ? val : (0, _createScaleFactor.DEFAULT_SCALE_FACTOR)(val);
9
+ const SCALE_FACTOR_WITH_DIMENSION_VALUE = val => {
10
+ return typeof val === 'number' ? (0, _createScaleFactor.DEFAULT_SCALE_FACTOR)(val) : val;
11
+ };
12
+ const DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE = val => {
13
+ return typeof val === 'number' ? (0, _createScaleFactor.DEFAULT_SCALE_FACTOR)(val) : val;
14
+ };
10
15
  const preProcessor = {
11
16
  'fontSize': _createScaleFactor.DEFAULT_SCALE_FACTOR,
12
17
  'lineHeight': _createScaleFactor.DEFAULT_SCALE_FACTOR,
13
- 'borderRadius': _createScaleFactor.DEFAULT_SCALE_FACTOR,
14
- 'minWidth': SCALE_FACTOR_WITH_STR,
15
- 'maxWidth': SCALE_FACTOR_WITH_STR,
16
- 'minHeight': SCALE_FACTOR_WITH_STR,
17
- 'maxHeight': SCALE_FACTOR_WITH_STR,
18
- 'height': SCALE_FACTOR_WITH_STR,
19
- 'width': SCALE_FACTOR_WITH_STR,
20
- 'padding': SCALE_FACTOR_WITH_STR,
21
- 'paddingVertical': SCALE_FACTOR_WITH_STR,
22
- 'paddingHorizontal': SCALE_FACTOR_WITH_STR,
23
- 'paddingTop': SCALE_FACTOR_WITH_STR,
24
- 'paddingBottom': SCALE_FACTOR_WITH_STR,
25
- 'paddingLeft': SCALE_FACTOR_WITH_STR,
26
- 'paddingRight': SCALE_FACTOR_WITH_STR,
27
- 'margin': SCALE_FACTOR_WITH_STR,
28
- 'marginVertical': SCALE_FACTOR_WITH_STR,
29
- 'marginHorizontal': SCALE_FACTOR_WITH_STR,
30
- 'marginTop': SCALE_FACTOR_WITH_STR,
31
- 'marginBottom': SCALE_FACTOR_WITH_STR,
32
- 'marginLeft': SCALE_FACTOR_WITH_STR,
33
- 'marginRight': SCALE_FACTOR_WITH_STR,
34
- 'left': SCALE_FACTOR_WITH_STR,
35
- 'right': SCALE_FACTOR_WITH_STR,
36
- 'top': SCALE_FACTOR_WITH_STR,
37
- 'bottom': SCALE_FACTOR_WITH_STR
18
+ 'borderRadius': DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE,
19
+ 'minWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,
20
+ 'maxWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,
21
+ 'minHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
22
+ 'maxHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
23
+ 'height': SCALE_FACTOR_WITH_DIMENSION_VALUE,
24
+ 'width': SCALE_FACTOR_WITH_DIMENSION_VALUE,
25
+ 'padding': SCALE_FACTOR_WITH_DIMENSION_VALUE,
26
+ 'paddingVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,
27
+ 'paddingHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,
28
+ 'paddingTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,
29
+ 'paddingBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,
30
+ 'paddingLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,
31
+ 'paddingRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
32
+ 'margin': SCALE_FACTOR_WITH_DIMENSION_VALUE,
33
+ 'marginVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,
34
+ 'marginHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,
35
+ 'marginTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,
36
+ 'marginBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,
37
+ 'marginLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,
38
+ 'marginRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
39
+ 'left': SCALE_FACTOR_WITH_DIMENSION_VALUE,
40
+ 'right': SCALE_FACTOR_WITH_DIMENSION_VALUE,
41
+ 'top': SCALE_FACTOR_WITH_DIMENSION_VALUE,
42
+ 'bottom': SCALE_FACTOR_WITH_DIMENSION_VALUE
38
43
  };
39
44
  const preProcessorKeys = Object.keys(preProcessor);
40
45
  const preProcessorLen = preProcessorKeys.length;
@@ -45,6 +50,7 @@ const preProcessorLen = preProcessorKeys.length;
45
50
  * @param styles
46
51
  * @returns StyleSheet
47
52
  * */
53
+ /* eslint-disable @typescript-eslint/no-explicit-any */
48
54
  const createStyleSheet = styles => {
49
55
  Object.values(styles).forEach(style => {
50
56
  // @ts-ignore
@@ -58,6 +64,7 @@ const createStyleSheet = styles => {
58
64
  });
59
65
  return _reactNative.StyleSheet.create(styles);
60
66
  };
67
+ /* eslint-enable @typescript-eslint/no-explicit-any */
61
68
  var _default = createStyleSheet;
62
69
  exports.default = _default;
63
70
  //# sourceMappingURL=createStyleSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_createScaleFactor","SCALE_FACTOR_WITH_STR","val","DEFAULT_SCALE_FACTOR","preProcessor","preProcessorKeys","Object","keys","preProcessorLen","length","createStyleSheet","styles","values","forEach","style","styleKeys","styleLen","key","StyleSheet","create","_default","exports","default"],"sources":["createStyleSheet.ts"],"sourcesContent":["import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\n\nimport { DEFAULT_SCALE_FACTOR } from './createScaleFactor';\n\ntype Styles = ViewStyle | TextStyle | ImageStyle;\ntype StylePreprocessor<T extends Styles = Styles> = { [key in keyof T]: (val: NonNullable<T[key]>) => typeof val };\n\nconst SCALE_FACTOR_WITH_STR = (val: string | number) => (typeof val === 'string' ? val : DEFAULT_SCALE_FACTOR(val));\n\nconst preProcessor: Partial<StylePreprocessor> = {\n 'fontSize': DEFAULT_SCALE_FACTOR,\n 'lineHeight': DEFAULT_SCALE_FACTOR,\n 'borderRadius': DEFAULT_SCALE_FACTOR,\n 'minWidth': SCALE_FACTOR_WITH_STR,\n 'maxWidth': SCALE_FACTOR_WITH_STR,\n 'minHeight': SCALE_FACTOR_WITH_STR,\n 'maxHeight': SCALE_FACTOR_WITH_STR,\n 'height': SCALE_FACTOR_WITH_STR,\n 'width': SCALE_FACTOR_WITH_STR,\n 'padding': SCALE_FACTOR_WITH_STR,\n 'paddingVertical': SCALE_FACTOR_WITH_STR,\n 'paddingHorizontal': SCALE_FACTOR_WITH_STR,\n 'paddingTop': SCALE_FACTOR_WITH_STR,\n 'paddingBottom': SCALE_FACTOR_WITH_STR,\n 'paddingLeft': SCALE_FACTOR_WITH_STR,\n 'paddingRight': SCALE_FACTOR_WITH_STR,\n 'margin': SCALE_FACTOR_WITH_STR,\n 'marginVertical': SCALE_FACTOR_WITH_STR,\n 'marginHorizontal': SCALE_FACTOR_WITH_STR,\n 'marginTop': SCALE_FACTOR_WITH_STR,\n 'marginBottom': SCALE_FACTOR_WITH_STR,\n 'marginLeft': SCALE_FACTOR_WITH_STR,\n 'marginRight': SCALE_FACTOR_WITH_STR,\n 'left': SCALE_FACTOR_WITH_STR,\n 'right': SCALE_FACTOR_WITH_STR,\n 'top': SCALE_FACTOR_WITH_STR,\n 'bottom': SCALE_FACTOR_WITH_STR,\n};\n\nconst preProcessorKeys = Object.keys(preProcessor);\nconst preProcessorLen = preProcessorKeys.length;\n\n/**\n * Create StyleSheet with customized pre-processor\n * Return a StyleSheet that pre-processed\n * @param styles\n * @returns StyleSheet\n * */\nconst createStyleSheet = <T extends StyleSheet.NamedStyles<T>>(styles: T | StyleSheet.NamedStyles<T>): T => {\n Object.values(styles).forEach((style) => {\n // @ts-ignore\n const styleKeys = Object.keys(style);\n const styleLen = styleKeys.length;\n\n const keys = styleLen < preProcessorLen ? styleKeys : preProcessorKeys;\n keys.forEach((key) => {\n // @ts-ignore\n if (preProcessor[key] && typeof style[key] !== 'undefined') style[key] = preProcessor[key](style[key]);\n });\n });\n\n return StyleSheet.create<T>(styles);\n};\n\nexport default createStyleSheet;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AAKA,MAAME,qBAAqB,GAAIC,GAAoB,IAAM,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAG,IAAAC,uCAAoB,EAACD,GAAG,CAAE;AAEnH,MAAME,YAAwC,GAAG;EAC/C,UAAU,EAAED,uCAAoB;EAChC,YAAY,EAAEA,uCAAoB;EAClC,cAAc,EAAEA,uCAAoB;EACpC,UAAU,EAAEF,qBAAqB;EACjC,UAAU,EAAEA,qBAAqB;EACjC,WAAW,EAAEA,qBAAqB;EAClC,WAAW,EAAEA,qBAAqB;EAClC,QAAQ,EAAEA,qBAAqB;EAC/B,OAAO,EAAEA,qBAAqB;EAC9B,SAAS,EAAEA,qBAAqB;EAChC,iBAAiB,EAAEA,qBAAqB;EACxC,mBAAmB,EAAEA,qBAAqB;EAC1C,YAAY,EAAEA,qBAAqB;EACnC,eAAe,EAAEA,qBAAqB;EACtC,aAAa,EAAEA,qBAAqB;EACpC,cAAc,EAAEA,qBAAqB;EACrC,QAAQ,EAAEA,qBAAqB;EAC/B,gBAAgB,EAAEA,qBAAqB;EACvC,kBAAkB,EAAEA,qBAAqB;EACzC,WAAW,EAAEA,qBAAqB;EAClC,cAAc,EAAEA,qBAAqB;EACrC,YAAY,EAAEA,qBAAqB;EACnC,aAAa,EAAEA,qBAAqB;EACpC,MAAM,EAAEA,qBAAqB;EAC7B,OAAO,EAAEA,qBAAqB;EAC9B,KAAK,EAAEA,qBAAqB;EAC5B,QAAQ,EAAEA;AACZ,CAAC;AAED,MAAMI,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACH,YAAY,CAAC;AAClD,MAAMI,eAAe,GAAGH,gBAAgB,CAACI,MAAM;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAyCC,MAAqC,IAAQ;EAC1GL,MAAM,CAACM,MAAM,CAACD,MAAM,CAAC,CAACE,OAAO,CAAEC,KAAK,IAAK;IACvC;IACA,MAAMC,SAAS,GAAGT,MAAM,CAACC,IAAI,CAACO,KAAK,CAAC;IACpC,MAAME,QAAQ,GAAGD,SAAS,CAACN,MAAM;IAEjC,MAAMF,IAAI,GAAGS,QAAQ,GAAGR,eAAe,GAAGO,SAAS,GAAGV,gBAAgB;IACtEE,IAAI,CAACM,OAAO,CAAEI,GAAG,IAAK;MACpB;MACA,IAAIb,YAAY,CAACa,GAAG,CAAC,IAAI,OAAOH,KAAK,CAACG,GAAG,CAAC,KAAK,WAAW,EAAEH,KAAK,CAACG,GAAG,CAAC,GAAGb,YAAY,CAACa,GAAG,CAAC,CAACH,KAAK,CAACG,GAAG,CAAC,CAAC;IACxG,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOC,uBAAU,CAACC,MAAM,CAAIR,MAAM,CAAC;AACrC,CAAC;AAAC,IAAAS,QAAA,GAEaV,gBAAgB;AAAAW,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_reactNative","require","_createScaleFactor","SCALE_FACTOR_WITH_DIMENSION_VALUE","val","DEFAULT_SCALE_FACTOR","DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE","preProcessor","preProcessorKeys","Object","keys","preProcessorLen","length","createStyleSheet","styles","values","forEach","style","styleKeys","styleLen","key","StyleSheet","create","_default","exports","default"],"sources":["createStyleSheet.ts"],"sourcesContent":["import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\nimport { AnimatableNumericValue, DimensionValue } from 'react-native/Libraries/StyleSheet/StyleSheetTypes';\n\nimport { DEFAULT_SCALE_FACTOR } from './createScaleFactor';\n\ntype Styles = ViewStyle | TextStyle | ImageStyle;\ntype StylePreprocessor<T extends Styles = Styles> = { [key in keyof T]: (val: NonNullable<T[key]>) => typeof val };\n\nconst SCALE_FACTOR_WITH_DIMENSION_VALUE = (\n val: NonNullable<DimensionValue | undefined>,\n): NonNullable<DimensionValue | undefined> => {\n return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;\n};\n\nconst DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE = (\n val: NonNullable<AnimatableNumericValue | undefined>,\n): NonNullable<AnimatableNumericValue | undefined> => {\n return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;\n};\n\nconst preProcessor: Partial<StylePreprocessor> = {\n 'fontSize': DEFAULT_SCALE_FACTOR,\n 'lineHeight': DEFAULT_SCALE_FACTOR,\n 'borderRadius': DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE,\n 'minWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'maxWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'minHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'maxHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'height': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'width': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'padding': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'margin': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'left': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'right': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'top': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'bottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n};\n\nconst preProcessorKeys = Object.keys(preProcessor);\nconst preProcessorLen = preProcessorKeys.length;\n\n/**\n * Create StyleSheet with customized pre-processor\n * Return a StyleSheet that pre-processed\n * @param styles\n * @returns StyleSheet\n * */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst createStyleSheet = <T extends StyleSheet.NamedStyles<T> | StyleSheet.NamedStyles<any>>(\n styles: T & StyleSheet.NamedStyles<any>,\n): T => {\n Object.values(styles).forEach((style) => {\n // @ts-ignore\n const styleKeys = Object.keys(style);\n const styleLen = styleKeys.length;\n\n const keys = styleLen < preProcessorLen ? styleKeys : preProcessorKeys;\n keys.forEach((key) => {\n // @ts-ignore\n if (preProcessor[key] && typeof style[key] !== 'undefined') style[key] = preProcessor[key](style[key]);\n });\n });\n\n return StyleSheet.create<T>(styles);\n};\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport default createStyleSheet;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,kBAAA,GAAAD,OAAA;AAKA,MAAME,iCAAiC,GACrCC,GAA4C,IACA;EAC5C,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAAG,IAAAC,uCAAoB,EAACD,GAAG,CAAC,GAAGA,GAAG;AAClE,CAAC;AAED,MAAME,uCAAuC,GAC3CF,GAAoD,IACA;EACpD,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAAG,IAAAC,uCAAoB,EAACD,GAAG,CAAC,GAAGA,GAAG;AAClE,CAAC;AAED,MAAMG,YAAwC,GAAG;EAC/C,UAAU,EAAEF,uCAAoB;EAChC,YAAY,EAAEA,uCAAoB;EAClC,cAAc,EAAEC,uCAAuC;EACvD,UAAU,EAAEH,iCAAiC;EAC7C,UAAU,EAAEA,iCAAiC;EAC7C,WAAW,EAAEA,iCAAiC;EAC9C,WAAW,EAAEA,iCAAiC;EAC9C,QAAQ,EAAEA,iCAAiC;EAC3C,OAAO,EAAEA,iCAAiC;EAC1C,SAAS,EAAEA,iCAAiC;EAC5C,iBAAiB,EAAEA,iCAAiC;EACpD,mBAAmB,EAAEA,iCAAiC;EACtD,YAAY,EAAEA,iCAAiC;EAC/C,eAAe,EAAEA,iCAAiC;EAClD,aAAa,EAAEA,iCAAiC;EAChD,cAAc,EAAEA,iCAAiC;EACjD,QAAQ,EAAEA,iCAAiC;EAC3C,gBAAgB,EAAEA,iCAAiC;EACnD,kBAAkB,EAAEA,iCAAiC;EACrD,WAAW,EAAEA,iCAAiC;EAC9C,cAAc,EAAEA,iCAAiC;EACjD,YAAY,EAAEA,iCAAiC;EAC/C,aAAa,EAAEA,iCAAiC;EAChD,MAAM,EAAEA,iCAAiC;EACzC,OAAO,EAAEA,iCAAiC;EAC1C,KAAK,EAAEA,iCAAiC;EACxC,QAAQ,EAAEA;AACZ,CAAC;AAED,MAAMK,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACH,YAAY,CAAC;AAClD,MAAMI,eAAe,GAAGH,gBAAgB,CAACI,MAAM;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GACpBC,MAAuC,IACjC;EACNL,MAAM,CAACM,MAAM,CAACD,MAAM,CAAC,CAACE,OAAO,CAAEC,KAAK,IAAK;IACvC;IACA,MAAMC,SAAS,GAAGT,MAAM,CAACC,IAAI,CAACO,KAAK,CAAC;IACpC,MAAME,QAAQ,GAAGD,SAAS,CAACN,MAAM;IAEjC,MAAMF,IAAI,GAAGS,QAAQ,GAAGR,eAAe,GAAGO,SAAS,GAAGV,gBAAgB;IACtEE,IAAI,CAACM,OAAO,CAAEI,GAAG,IAAK;MACpB;MACA,IAAIb,YAAY,CAACa,GAAG,CAAC,IAAI,OAAOH,KAAK,CAACG,GAAG,CAAC,KAAK,WAAW,EAAEH,KAAK,CAACG,GAAG,CAAC,GAAGb,YAAY,CAACa,GAAG,CAAC,CAACH,KAAK,CAACG,GAAG,CAAC,CAAC;IACxG,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOC,uBAAU,CAACC,MAAM,CAAIR,MAAM,CAAC;AACrC,CAAC;AACD;AAAA,IAAAS,QAAA,GAEeV,gBAAgB;AAAAW,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -19,9 +19,9 @@ function convertSource(source) {
19
19
  return source;
20
20
  }
21
21
  return {
22
- uri: source.uri,
23
- headers: source.headers,
24
- cache: convertCache(source.cache) //'immutable' | 'web' | 'cacheOnly'
22
+ uri: source === null || source === void 0 ? void 0 : source.uri,
23
+ headers: source === null || source === void 0 ? void 0 : source.headers,
24
+ cache: convertCache(source === null || source === void 0 ? void 0 : source.cache) //'immutable' | 'web' | 'cacheOnly'
25
25
  };
26
26
  }
27
27
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","Image","FastImageInternal","convertCache","cache","convertSource","source","Array","isArray","uri","headers","convertDefaultSource","undefined","convertResizeMode","mode","Image_FastImage","_ref","defaultSource","resizeMode","onLoad","onError","style","tintColor","disableFastImage","props","createElement","_extends","e","nativeEvent"],"sources":["Image.fastimage.tsx"],"sourcesContent":["import React from 'react';\nimport { Image } from 'react-native';\nimport type { FastImageProps, ResizeMode, Source } from 'react-native-fast-image';\n\nimport FastImageInternal from './FastImageInternal';\nimport type { SendbirdImageComponent, SendbirdImageProps } from './index';\n\nfunction convertCache(\n cache?: 'default' | 'reload' | 'force-cache' | 'only-if-cached' | undefined,\n): 'immutable' | 'web' | 'cacheOnly' {\n switch (cache) {\n case 'force-cache':\n case 'only-if-cached':\n return 'cacheOnly';\n default:\n return 'immutable';\n }\n}\n\nfunction convertSource(source: SendbirdImageProps['source']): Source | number {\n if (Array.isArray(source)) {\n return convertSource(source[0]);\n }\n\n if (typeof source === 'number') {\n return source;\n }\n\n return {\n uri: source.uri,\n headers: source.headers,\n cache: convertCache(source.cache), //'immutable' | 'web' | 'cacheOnly'\n };\n}\nfunction convertDefaultSource(source?: SendbirdImageProps['defaultSource']): number | undefined {\n if (typeof source === 'number') {\n return source;\n }\n\n return undefined;\n}\n\nfunction convertResizeMode(mode?: SendbirdImageProps['resizeMode']): ResizeMode | undefined {\n switch (mode) {\n case 'center':\n return 'center';\n case 'contain':\n return 'contain';\n case 'cover':\n return 'cover';\n case 'stretch':\n return 'stretch';\n default:\n return undefined;\n }\n}\n\nconst Image_FastImage: SendbirdImageComponent = ({\n source,\n defaultSource,\n resizeMode,\n onLoad,\n onError,\n style,\n tintColor,\n disableFastImage = false,\n ...props\n}) => {\n if (disableFastImage) {\n return (\n <Image\n {...props}\n source={source}\n style={[style, { tintColor }]}\n onError={onError && ((e) => onError(e.nativeEvent))}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent.source))}\n />\n );\n }\n return (\n <FastImageInternal\n {...props}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent))}\n onError={onError && (() => onError({}))}\n style={style as FastImageProps['style']}\n source={convertSource(source)}\n defaultSource={convertDefaultSource(defaultSource)}\n resizeMode={convertResizeMode(resizeMode)}\n />\n );\n};\n\nexport default Image_FastImage;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,QAAQ,cAAc;AAGpC,OAAOC,iBAAiB,MAAM,qBAAqB;AAGnD,SAASC,YAAYA,CACnBC,KAA2E,EACxC;EACnC,QAAQA,KAAK;IACX,KAAK,aAAa;IAClB,KAAK,gBAAgB;MACnB,OAAO,WAAW;IACpB;MACE,OAAO,WAAW;EAAC;AAEzB;AAEA,SAASC,aAAaA,CAACC,MAAoC,EAAmB;EAC5E,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IACzB,OAAOD,aAAa,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;EACjC;EAEA,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM;EACf;EAEA,OAAO;IACLG,GAAG,EAAEH,MAAM,CAACG,GAAG;IACfC,OAAO,EAAEJ,MAAM,CAACI,OAAO;IACvBN,KAAK,EAAED,YAAY,CAACG,MAAM,CAACF,KAAK,CAAC,CAAE;EACrC,CAAC;AACH;;AACA,SAASO,oBAAoBA,CAACL,MAA4C,EAAsB;EAC9F,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM;EACf;EAEA,OAAOM,SAAS;AAClB;AAEA,SAASC,iBAAiBA,CAACC,IAAuC,EAA0B;EAC1F,QAAQA,IAAI;IACV,KAAK,QAAQ;MACX,OAAO,QAAQ;IACjB,KAAK,SAAS;MACZ,OAAO,SAAS;IAClB,KAAK,OAAO;MACV,OAAO,OAAO;IAChB,KAAK,SAAS;MACZ,OAAO,SAAS;IAClB;MACE,OAAOF,SAAS;EAAC;AAEvB;AAEA,MAAMG,eAAuC,GAAGC,IAAA,IAU1C;EAAA,IAV2C;IAC/CV,MAAM;IACNW,aAAa;IACbC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,KAAK;IACLC,SAAS;IACTC,gBAAgB,GAAG,KAAK;IACxB,GAAGC;EACL,CAAC,GAAAR,IAAA;EACC,IAAIO,gBAAgB,EAAE;IACpB,oBACEvB,KAAA,CAAAyB,aAAA,CAACxB,KAAK,EAAAyB,QAAA,KACAF,KAAK;MACTlB,MAAM,EAAEA,MAAO;MACfe,KAAK,EAAE,CAACA,KAAK,EAAE;QAAEC;MAAU,CAAC,CAAE;MAC9BF,OAAO,EAAEA,OAAO,KAAMO,CAAC,IAAKP,OAAO,CAACO,CAAC,CAACC,WAAW,CAAC,CAAE;MACpDT,MAAM,EAAEA,MAAM,KAAMQ,CAAC,IAAKR,MAAM,CAACQ,CAAC,CAACC,WAAW,CAACtB,MAAM,CAAC;IAAE,GACxD;EAEN;EACA,oBACEN,KAAA,CAAAyB,aAAA,CAACvB,iBAAiB,EAAAwB,QAAA,KACZF,KAAK;IACTL,MAAM,EAAEA,MAAM,KAAMQ,CAAC,IAAKR,MAAM,CAACQ,CAAC,CAACC,WAAW,CAAC,CAAE;IACjDR,OAAO,EAAEA,OAAO,KAAK,MAAMA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE;IACxCC,KAAK,EAAEA,KAAiC;IACxCf,MAAM,EAAED,aAAa,CAACC,MAAM,CAAE;IAC9BW,aAAa,EAAEN,oBAAoB,CAACM,aAAa,CAAE;IACnDC,UAAU,EAAEL,iBAAiB,CAACK,UAAU;EAAE,GAC1C;AAEN,CAAC;AAED,eAAeH,eAAe"}
1
+ {"version":3,"names":["React","Image","FastImageInternal","convertCache","cache","convertSource","source","Array","isArray","uri","headers","convertDefaultSource","undefined","convertResizeMode","mode","Image_FastImage","_ref","defaultSource","resizeMode","onLoad","onError","style","tintColor","disableFastImage","props","createElement","_extends","e","nativeEvent"],"sources":["Image.fastimage.tsx"],"sourcesContent":["import React from 'react';\nimport { Image } from 'react-native';\nimport type { FastImageProps, ResizeMode, Source } from 'react-native-fast-image';\n\nimport FastImageInternal from './FastImageInternal';\nimport type { SendbirdImageComponent, SendbirdImageProps } from './index';\n\nfunction convertCache(\n cache?: 'default' | 'reload' | 'force-cache' | 'only-if-cached' | undefined,\n): 'immutable' | 'web' | 'cacheOnly' {\n switch (cache) {\n case 'force-cache':\n case 'only-if-cached':\n return 'cacheOnly';\n default:\n return 'immutable';\n }\n}\n\nfunction convertSource(source: SendbirdImageProps['source']): Source | number {\n if (Array.isArray(source)) {\n return convertSource(source[0]);\n }\n\n if (typeof source === 'number') {\n return source;\n }\n\n return {\n uri: source?.uri,\n headers: source?.headers,\n cache: convertCache(source?.cache), //'immutable' | 'web' | 'cacheOnly'\n };\n}\nfunction convertDefaultSource(source?: SendbirdImageProps['defaultSource']): number | undefined {\n if (typeof source === 'number') {\n return source;\n }\n\n return undefined;\n}\n\nfunction convertResizeMode(mode?: SendbirdImageProps['resizeMode']): ResizeMode | undefined {\n switch (mode) {\n case 'center':\n return 'center';\n case 'contain':\n return 'contain';\n case 'cover':\n return 'cover';\n case 'stretch':\n return 'stretch';\n default:\n return undefined;\n }\n}\n\nconst Image_FastImage: SendbirdImageComponent = ({\n source,\n defaultSource,\n resizeMode,\n onLoad,\n onError,\n style,\n tintColor,\n disableFastImage = false,\n ...props\n}) => {\n if (disableFastImage) {\n return (\n <Image\n {...props}\n source={source}\n style={[style, { tintColor }]}\n onError={onError && ((e) => onError(e.nativeEvent))}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent.source))}\n />\n );\n }\n return (\n <FastImageInternal\n {...props}\n onLoad={onLoad && ((e) => onLoad(e.nativeEvent))}\n onError={onError && (() => onError({}))}\n style={style as FastImageProps['style']}\n source={convertSource(source)}\n defaultSource={convertDefaultSource(defaultSource)}\n resizeMode={convertResizeMode(resizeMode)}\n />\n );\n};\n\nexport default Image_FastImage;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,QAAQ,cAAc;AAGpC,OAAOC,iBAAiB,MAAM,qBAAqB;AAGnD,SAASC,YAAYA,CACnBC,KAA2E,EACxC;EACnC,QAAQA,KAAK;IACX,KAAK,aAAa;IAClB,KAAK,gBAAgB;MACnB,OAAO,WAAW;IACpB;MACE,OAAO,WAAW;EAAC;AAEzB;AAEA,SAASC,aAAaA,CAACC,MAAoC,EAAmB;EAC5E,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IACzB,OAAOD,aAAa,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;EACjC;EAEA,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM;EACf;EAEA,OAAO;IACLG,GAAG,EAAEH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,GAAG;IAChBC,OAAO,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,OAAO;IACxBN,KAAK,EAAED,YAAY,CAACG,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEF,KAAK,CAAC,CAAE;EACtC,CAAC;AACH;;AACA,SAASO,oBAAoBA,CAACL,MAA4C,EAAsB;EAC9F,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM;EACf;EAEA,OAAOM,SAAS;AAClB;AAEA,SAASC,iBAAiBA,CAACC,IAAuC,EAA0B;EAC1F,QAAQA,IAAI;IACV,KAAK,QAAQ;MACX,OAAO,QAAQ;IACjB,KAAK,SAAS;MACZ,OAAO,SAAS;IAClB,KAAK,OAAO;MACV,OAAO,OAAO;IAChB,KAAK,SAAS;MACZ,OAAO,SAAS;IAClB;MACE,OAAOF,SAAS;EAAC;AAEvB;AAEA,MAAMG,eAAuC,GAAGC,IAAA,IAU1C;EAAA,IAV2C;IAC/CV,MAAM;IACNW,aAAa;IACbC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,KAAK;IACLC,SAAS;IACTC,gBAAgB,GAAG,KAAK;IACxB,GAAGC;EACL,CAAC,GAAAR,IAAA;EACC,IAAIO,gBAAgB,EAAE;IACpB,oBACEvB,KAAA,CAAAyB,aAAA,CAACxB,KAAK,EAAAyB,QAAA,KACAF,KAAK;MACTlB,MAAM,EAAEA,MAAO;MACfe,KAAK,EAAE,CAACA,KAAK,EAAE;QAAEC;MAAU,CAAC,CAAE;MAC9BF,OAAO,EAAEA,OAAO,KAAMO,CAAC,IAAKP,OAAO,CAACO,CAAC,CAACC,WAAW,CAAC,CAAE;MACpDT,MAAM,EAAEA,MAAM,KAAMQ,CAAC,IAAKR,MAAM,CAACQ,CAAC,CAACC,WAAW,CAACtB,MAAM,CAAC;IAAE,GACxD;EAEN;EACA,oBACEN,KAAA,CAAAyB,aAAA,CAACvB,iBAAiB,EAAAwB,QAAA,KACZF,KAAK;IACTL,MAAM,EAAEA,MAAM,KAAMQ,CAAC,IAAKR,MAAM,CAACQ,CAAC,CAACC,WAAW,CAAC,CAAE;IACjDR,OAAO,EAAEA,OAAO,KAAK,MAAMA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE;IACxCC,KAAK,EAAEA,KAAiC;IACxCf,MAAM,EAAED,aAAa,CAACC,MAAM,CAAE;IAC9BW,aAAa,EAAEN,oBAAoB,CAACM,aAAa,CAAE;IACnDC,UAAU,EAAEL,iBAAiB,CAACK,UAAU;EAAE,GAC1C;AAEN,CAAC;AAED,eAAeH,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","Platform","StyleSheet","useForceUpdate","createStyleSheet","useUIKitTheme","Box","Icon","Image","useRetry","hasError","retryCount","arguments","length","undefined","OS","forceUpdate","retryCountRef","retryTimeoutRef","reloadReservation","current","setTimeout","clearTimeout","ImageWithPlaceholder","props","palette","select","colors","imageNotFound","setImageNotFound","key","createElement","style","overflow","width","height","backgroundColor","dark","background400","light","background100","source","absoluteFill","styles","hide","resizeMode","resizeMethod","onError","onLoad","containerStyle","icon","size","color","onBackground02","display"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Box from '../Box';\nimport Icon from '../Icon';\nimport Image from '../Image';\n\nconst useRetry = (hasError: boolean, retryCount = 5) => {\n // NOTE: Glide(fast-image) will retry automatically on Android\n if (Platform.OS === 'android') return '';\n\n const forceUpdate = useForceUpdate();\n const retryCountRef = useRef(1);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n if (hasError) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n forceUpdate();\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [hasError]);\n\n return retryCountRef.current;\n};\n\ntype Props = {\n source: number | { uri: string };\n width?: number | string;\n height?: number | string;\n style?: StyleProp<ViewStyle>;\n};\nconst ImageWithPlaceholder = (props: Props) => {\n const { palette, select, colors } = useUIKitTheme();\n const [imageNotFound, setImageNotFound] = useState(false);\n\n const key = useRetry(imageNotFound);\n return (\n <Box\n style={[{ overflow: 'hidden', width: props.width, height: props.height }, props.style]}\n backgroundColor={select({ dark: palette.background400, light: palette.background100 })}\n >\n <Image\n key={key}\n source={props.source}\n style={[StyleSheet.absoluteFill, imageNotFound && styles.hide]}\n resizeMode={'cover'}\n resizeMethod={'resize'}\n onError={() => setImageNotFound(true)}\n onLoad={() => setImageNotFound(false)}\n />\n {imageNotFound && (\n <Icon\n containerStyle={StyleSheet.absoluteFill}\n icon={'thumbnail-none'}\n size={48}\n color={colors.onBackground02}\n />\n )}\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n hide: {\n display: 'none',\n },\n});\n\nexport default ImageWithPlaceholder;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","Platform","StyleSheet","useForceUpdate","createStyleSheet","useUIKitTheme","Box","Icon","Image","useRetry","hasError","retryCount","arguments","length","undefined","OS","forceUpdate","retryCountRef","retryTimeoutRef","reloadReservation","current","setTimeout","clearTimeout","ImageWithPlaceholder","props","palette","select","colors","imageNotFound","setImageNotFound","key","createElement","style","overflow","width","height","backgroundColor","dark","background400","light","background100","source","absoluteFill","styles","hide","resizeMode","resizeMethod","onError","onLoad","containerStyle","icon","size","color","onBackground02","display"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Box from '../Box';\nimport Icon from '../Icon';\nimport Image from '../Image';\n\nconst useRetry = (hasError: boolean, retryCount = 5) => {\n // NOTE: Glide(fast-image) will retry automatically on Android\n if (Platform.OS === 'android') return '';\n\n const forceUpdate = useForceUpdate();\n const retryCountRef = useRef(1);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n if (hasError) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n forceUpdate();\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [hasError]);\n\n return retryCountRef.current;\n};\n\ntype Props = {\n source: number | { uri: string };\n width?: number | `${number}%`;\n height?: number | `${number}%`;\n style?: StyleProp<ViewStyle>;\n};\nconst ImageWithPlaceholder = (props: Props) => {\n const { palette, select, colors } = useUIKitTheme();\n const [imageNotFound, setImageNotFound] = useState(false);\n\n const key = useRetry(imageNotFound);\n return (\n <Box\n style={[{ overflow: 'hidden', width: props.width, height: props.height }, props.style]}\n backgroundColor={select({ dark: palette.background400, light: palette.background100 })}\n >\n <Image\n key={key}\n source={props.source}\n style={[StyleSheet.absoluteFill, imageNotFound && styles.hide]}\n resizeMode={'cover'}\n resizeMethod={'resize'}\n onError={() => setImageNotFound(true)}\n onLoad={() => setImageNotFound(false)}\n />\n {imageNotFound && (\n <Icon\n containerStyle={StyleSheet.absoluteFill}\n icon={'thumbnail-none'}\n size={48}\n color={colors.onBackground02}\n />\n )}\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n hide: {\n display: 'none',\n },\n});\n\nexport default ImageWithPlaceholder;\n"],"mappings":"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"}
@@ -1,34 +1,39 @@
1
1
  import { StyleSheet } from 'react-native';
2
2
  import { DEFAULT_SCALE_FACTOR } from './createScaleFactor';
3
- const SCALE_FACTOR_WITH_STR = val => typeof val === 'string' ? val : DEFAULT_SCALE_FACTOR(val);
3
+ const SCALE_FACTOR_WITH_DIMENSION_VALUE = val => {
4
+ return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;
5
+ };
6
+ const DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE = val => {
7
+ return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;
8
+ };
4
9
  const preProcessor = {
5
10
  'fontSize': DEFAULT_SCALE_FACTOR,
6
11
  'lineHeight': DEFAULT_SCALE_FACTOR,
7
- 'borderRadius': DEFAULT_SCALE_FACTOR,
8
- 'minWidth': SCALE_FACTOR_WITH_STR,
9
- 'maxWidth': SCALE_FACTOR_WITH_STR,
10
- 'minHeight': SCALE_FACTOR_WITH_STR,
11
- 'maxHeight': SCALE_FACTOR_WITH_STR,
12
- 'height': SCALE_FACTOR_WITH_STR,
13
- 'width': SCALE_FACTOR_WITH_STR,
14
- 'padding': SCALE_FACTOR_WITH_STR,
15
- 'paddingVertical': SCALE_FACTOR_WITH_STR,
16
- 'paddingHorizontal': SCALE_FACTOR_WITH_STR,
17
- 'paddingTop': SCALE_FACTOR_WITH_STR,
18
- 'paddingBottom': SCALE_FACTOR_WITH_STR,
19
- 'paddingLeft': SCALE_FACTOR_WITH_STR,
20
- 'paddingRight': SCALE_FACTOR_WITH_STR,
21
- 'margin': SCALE_FACTOR_WITH_STR,
22
- 'marginVertical': SCALE_FACTOR_WITH_STR,
23
- 'marginHorizontal': SCALE_FACTOR_WITH_STR,
24
- 'marginTop': SCALE_FACTOR_WITH_STR,
25
- 'marginBottom': SCALE_FACTOR_WITH_STR,
26
- 'marginLeft': SCALE_FACTOR_WITH_STR,
27
- 'marginRight': SCALE_FACTOR_WITH_STR,
28
- 'left': SCALE_FACTOR_WITH_STR,
29
- 'right': SCALE_FACTOR_WITH_STR,
30
- 'top': SCALE_FACTOR_WITH_STR,
31
- 'bottom': SCALE_FACTOR_WITH_STR
12
+ 'borderRadius': DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE,
13
+ 'minWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,
14
+ 'maxWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,
15
+ 'minHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
16
+ 'maxHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
17
+ 'height': SCALE_FACTOR_WITH_DIMENSION_VALUE,
18
+ 'width': SCALE_FACTOR_WITH_DIMENSION_VALUE,
19
+ 'padding': SCALE_FACTOR_WITH_DIMENSION_VALUE,
20
+ 'paddingVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,
21
+ 'paddingHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,
22
+ 'paddingTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,
23
+ 'paddingBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,
24
+ 'paddingLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,
25
+ 'paddingRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
26
+ 'margin': SCALE_FACTOR_WITH_DIMENSION_VALUE,
27
+ 'marginVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,
28
+ 'marginHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,
29
+ 'marginTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,
30
+ 'marginBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,
31
+ 'marginLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,
32
+ 'marginRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
33
+ 'left': SCALE_FACTOR_WITH_DIMENSION_VALUE,
34
+ 'right': SCALE_FACTOR_WITH_DIMENSION_VALUE,
35
+ 'top': SCALE_FACTOR_WITH_DIMENSION_VALUE,
36
+ 'bottom': SCALE_FACTOR_WITH_DIMENSION_VALUE
32
37
  };
33
38
  const preProcessorKeys = Object.keys(preProcessor);
34
39
  const preProcessorLen = preProcessorKeys.length;
@@ -39,6 +44,7 @@ const preProcessorLen = preProcessorKeys.length;
39
44
  * @param styles
40
45
  * @returns StyleSheet
41
46
  * */
47
+ /* eslint-disable @typescript-eslint/no-explicit-any */
42
48
  const createStyleSheet = styles => {
43
49
  Object.values(styles).forEach(style => {
44
50
  // @ts-ignore
@@ -52,5 +58,7 @@ const createStyleSheet = styles => {
52
58
  });
53
59
  return StyleSheet.create(styles);
54
60
  };
61
+ /* eslint-enable @typescript-eslint/no-explicit-any */
62
+
55
63
  export default createStyleSheet;
56
64
  //# sourceMappingURL=createStyleSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","DEFAULT_SCALE_FACTOR","SCALE_FACTOR_WITH_STR","val","preProcessor","preProcessorKeys","Object","keys","preProcessorLen","length","createStyleSheet","styles","values","forEach","style","styleKeys","styleLen","key","create"],"sources":["createStyleSheet.ts"],"sourcesContent":["import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\n\nimport { DEFAULT_SCALE_FACTOR } from './createScaleFactor';\n\ntype Styles = ViewStyle | TextStyle | ImageStyle;\ntype StylePreprocessor<T extends Styles = Styles> = { [key in keyof T]: (val: NonNullable<T[key]>) => typeof val };\n\nconst SCALE_FACTOR_WITH_STR = (val: string | number) => (typeof val === 'string' ? val : DEFAULT_SCALE_FACTOR(val));\n\nconst preProcessor: Partial<StylePreprocessor> = {\n 'fontSize': DEFAULT_SCALE_FACTOR,\n 'lineHeight': DEFAULT_SCALE_FACTOR,\n 'borderRadius': DEFAULT_SCALE_FACTOR,\n 'minWidth': SCALE_FACTOR_WITH_STR,\n 'maxWidth': SCALE_FACTOR_WITH_STR,\n 'minHeight': SCALE_FACTOR_WITH_STR,\n 'maxHeight': SCALE_FACTOR_WITH_STR,\n 'height': SCALE_FACTOR_WITH_STR,\n 'width': SCALE_FACTOR_WITH_STR,\n 'padding': SCALE_FACTOR_WITH_STR,\n 'paddingVertical': SCALE_FACTOR_WITH_STR,\n 'paddingHorizontal': SCALE_FACTOR_WITH_STR,\n 'paddingTop': SCALE_FACTOR_WITH_STR,\n 'paddingBottom': SCALE_FACTOR_WITH_STR,\n 'paddingLeft': SCALE_FACTOR_WITH_STR,\n 'paddingRight': SCALE_FACTOR_WITH_STR,\n 'margin': SCALE_FACTOR_WITH_STR,\n 'marginVertical': SCALE_FACTOR_WITH_STR,\n 'marginHorizontal': SCALE_FACTOR_WITH_STR,\n 'marginTop': SCALE_FACTOR_WITH_STR,\n 'marginBottom': SCALE_FACTOR_WITH_STR,\n 'marginLeft': SCALE_FACTOR_WITH_STR,\n 'marginRight': SCALE_FACTOR_WITH_STR,\n 'left': SCALE_FACTOR_WITH_STR,\n 'right': SCALE_FACTOR_WITH_STR,\n 'top': SCALE_FACTOR_WITH_STR,\n 'bottom': SCALE_FACTOR_WITH_STR,\n};\n\nconst preProcessorKeys = Object.keys(preProcessor);\nconst preProcessorLen = preProcessorKeys.length;\n\n/**\n * Create StyleSheet with customized pre-processor\n * Return a StyleSheet that pre-processed\n * @param styles\n * @returns StyleSheet\n * */\nconst createStyleSheet = <T extends StyleSheet.NamedStyles<T>>(styles: T | StyleSheet.NamedStyles<T>): T => {\n Object.values(styles).forEach((style) => {\n // @ts-ignore\n const styleKeys = Object.keys(style);\n const styleLen = styleKeys.length;\n\n const keys = styleLen < preProcessorLen ? styleKeys : preProcessorKeys;\n keys.forEach((key) => {\n // @ts-ignore\n if (preProcessor[key] && typeof style[key] !== 'undefined') style[key] = preProcessor[key](style[key]);\n });\n });\n\n return StyleSheet.create<T>(styles);\n};\n\nexport default createStyleSheet;\n"],"mappings":"AAAA,SAAqBA,UAAU,QAA8B,cAAc;AAE3E,SAASC,oBAAoB,QAAQ,qBAAqB;AAK1D,MAAMC,qBAAqB,GAAIC,GAAoB,IAAM,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGF,oBAAoB,CAACE,GAAG,CAAE;AAEnH,MAAMC,YAAwC,GAAG;EAC/C,UAAU,EAAEH,oBAAoB;EAChC,YAAY,EAAEA,oBAAoB;EAClC,cAAc,EAAEA,oBAAoB;EACpC,UAAU,EAAEC,qBAAqB;EACjC,UAAU,EAAEA,qBAAqB;EACjC,WAAW,EAAEA,qBAAqB;EAClC,WAAW,EAAEA,qBAAqB;EAClC,QAAQ,EAAEA,qBAAqB;EAC/B,OAAO,EAAEA,qBAAqB;EAC9B,SAAS,EAAEA,qBAAqB;EAChC,iBAAiB,EAAEA,qBAAqB;EACxC,mBAAmB,EAAEA,qBAAqB;EAC1C,YAAY,EAAEA,qBAAqB;EACnC,eAAe,EAAEA,qBAAqB;EACtC,aAAa,EAAEA,qBAAqB;EACpC,cAAc,EAAEA,qBAAqB;EACrC,QAAQ,EAAEA,qBAAqB;EAC/B,gBAAgB,EAAEA,qBAAqB;EACvC,kBAAkB,EAAEA,qBAAqB;EACzC,WAAW,EAAEA,qBAAqB;EAClC,cAAc,EAAEA,qBAAqB;EACrC,YAAY,EAAEA,qBAAqB;EACnC,aAAa,EAAEA,qBAAqB;EACpC,MAAM,EAAEA,qBAAqB;EAC7B,OAAO,EAAEA,qBAAqB;EAC9B,KAAK,EAAEA,qBAAqB;EAC5B,QAAQ,EAAEA;AACZ,CAAC;AAED,MAAMG,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACH,YAAY,CAAC;AAClD,MAAMI,eAAe,GAAGH,gBAAgB,CAACI,MAAM;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAyCC,MAAqC,IAAQ;EAC1GL,MAAM,CAACM,MAAM,CAACD,MAAM,CAAC,CAACE,OAAO,CAAEC,KAAK,IAAK;IACvC;IACA,MAAMC,SAAS,GAAGT,MAAM,CAACC,IAAI,CAACO,KAAK,CAAC;IACpC,MAAME,QAAQ,GAAGD,SAAS,CAACN,MAAM;IAEjC,MAAMF,IAAI,GAAGS,QAAQ,GAAGR,eAAe,GAAGO,SAAS,GAAGV,gBAAgB;IACtEE,IAAI,CAACM,OAAO,CAAEI,GAAG,IAAK;MACpB;MACA,IAAIb,YAAY,CAACa,GAAG,CAAC,IAAI,OAAOH,KAAK,CAACG,GAAG,CAAC,KAAK,WAAW,EAAEH,KAAK,CAACG,GAAG,CAAC,GAAGb,YAAY,CAACa,GAAG,CAAC,CAACH,KAAK,CAACG,GAAG,CAAC,CAAC;IACxG,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOjB,UAAU,CAACkB,MAAM,CAAIP,MAAM,CAAC;AACrC,CAAC;AAED,eAAeD,gBAAgB"}
1
+ {"version":3,"names":["StyleSheet","DEFAULT_SCALE_FACTOR","SCALE_FACTOR_WITH_DIMENSION_VALUE","val","DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE","preProcessor","preProcessorKeys","Object","keys","preProcessorLen","length","createStyleSheet","styles","values","forEach","style","styleKeys","styleLen","key","create"],"sources":["createStyleSheet.ts"],"sourcesContent":["import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\nimport { AnimatableNumericValue, DimensionValue } from 'react-native/Libraries/StyleSheet/StyleSheetTypes';\n\nimport { DEFAULT_SCALE_FACTOR } from './createScaleFactor';\n\ntype Styles = ViewStyle | TextStyle | ImageStyle;\ntype StylePreprocessor<T extends Styles = Styles> = { [key in keyof T]: (val: NonNullable<T[key]>) => typeof val };\n\nconst SCALE_FACTOR_WITH_DIMENSION_VALUE = (\n val: NonNullable<DimensionValue | undefined>,\n): NonNullable<DimensionValue | undefined> => {\n return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;\n};\n\nconst DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE = (\n val: NonNullable<AnimatableNumericValue | undefined>,\n): NonNullable<AnimatableNumericValue | undefined> => {\n return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;\n};\n\nconst preProcessor: Partial<StylePreprocessor> = {\n 'fontSize': DEFAULT_SCALE_FACTOR,\n 'lineHeight': DEFAULT_SCALE_FACTOR,\n 'borderRadius': DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE,\n 'minWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'maxWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'minHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'maxHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'height': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'width': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'padding': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'paddingRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'margin': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'marginRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'left': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'right': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'top': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n 'bottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,\n};\n\nconst preProcessorKeys = Object.keys(preProcessor);\nconst preProcessorLen = preProcessorKeys.length;\n\n/**\n * Create StyleSheet with customized pre-processor\n * Return a StyleSheet that pre-processed\n * @param styles\n * @returns StyleSheet\n * */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst createStyleSheet = <T extends StyleSheet.NamedStyles<T> | StyleSheet.NamedStyles<any>>(\n styles: T & StyleSheet.NamedStyles<any>,\n): T => {\n Object.values(styles).forEach((style) => {\n // @ts-ignore\n const styleKeys = Object.keys(style);\n const styleLen = styleKeys.length;\n\n const keys = styleLen < preProcessorLen ? styleKeys : preProcessorKeys;\n keys.forEach((key) => {\n // @ts-ignore\n if (preProcessor[key] && typeof style[key] !== 'undefined') style[key] = preProcessor[key](style[key]);\n });\n });\n\n return StyleSheet.create<T>(styles);\n};\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport default createStyleSheet;\n"],"mappings":"AAAA,SAAqBA,UAAU,QAA8B,cAAc;AAG3E,SAASC,oBAAoB,QAAQ,qBAAqB;AAK1D,MAAMC,iCAAiC,GACrCC,GAA4C,IACA;EAC5C,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAAGF,oBAAoB,CAACE,GAAG,CAAC,GAAGA,GAAG;AAClE,CAAC;AAED,MAAMC,uCAAuC,GAC3CD,GAAoD,IACA;EACpD,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAAGF,oBAAoB,CAACE,GAAG,CAAC,GAAGA,GAAG;AAClE,CAAC;AAED,MAAME,YAAwC,GAAG;EAC/C,UAAU,EAAEJ,oBAAoB;EAChC,YAAY,EAAEA,oBAAoB;EAClC,cAAc,EAAEG,uCAAuC;EACvD,UAAU,EAAEF,iCAAiC;EAC7C,UAAU,EAAEA,iCAAiC;EAC7C,WAAW,EAAEA,iCAAiC;EAC9C,WAAW,EAAEA,iCAAiC;EAC9C,QAAQ,EAAEA,iCAAiC;EAC3C,OAAO,EAAEA,iCAAiC;EAC1C,SAAS,EAAEA,iCAAiC;EAC5C,iBAAiB,EAAEA,iCAAiC;EACpD,mBAAmB,EAAEA,iCAAiC;EACtD,YAAY,EAAEA,iCAAiC;EAC/C,eAAe,EAAEA,iCAAiC;EAClD,aAAa,EAAEA,iCAAiC;EAChD,cAAc,EAAEA,iCAAiC;EACjD,QAAQ,EAAEA,iCAAiC;EAC3C,gBAAgB,EAAEA,iCAAiC;EACnD,kBAAkB,EAAEA,iCAAiC;EACrD,WAAW,EAAEA,iCAAiC;EAC9C,cAAc,EAAEA,iCAAiC;EACjD,YAAY,EAAEA,iCAAiC;EAC/C,aAAa,EAAEA,iCAAiC;EAChD,MAAM,EAAEA,iCAAiC;EACzC,OAAO,EAAEA,iCAAiC;EAC1C,KAAK,EAAEA,iCAAiC;EACxC,QAAQ,EAAEA;AACZ,CAAC;AAED,MAAMI,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACH,YAAY,CAAC;AAClD,MAAMI,eAAe,GAAGH,gBAAgB,CAACI,MAAM;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GACpBC,MAAuC,IACjC;EACNL,MAAM,CAACM,MAAM,CAACD,MAAM,CAAC,CAACE,OAAO,CAAEC,KAAK,IAAK;IACvC;IACA,MAAMC,SAAS,GAAGT,MAAM,CAACC,IAAI,CAACO,KAAK,CAAC;IACpC,MAAME,QAAQ,GAAGD,SAAS,CAACN,MAAM;IAEjC,MAAMF,IAAI,GAAGS,QAAQ,GAAGR,eAAe,GAAGO,SAAS,GAAGV,gBAAgB;IACtEE,IAAI,CAACM,OAAO,CAAEI,GAAG,IAAK;MACpB;MACA,IAAIb,YAAY,CAACa,GAAG,CAAC,IAAI,OAAOH,KAAK,CAACG,GAAG,CAAC,KAAK,WAAW,EAAEH,KAAK,CAACG,GAAG,CAAC,GAAGb,YAAY,CAACa,GAAG,CAAC,CAACH,KAAK,CAACG,GAAG,CAAC,CAAC;IACxG,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOlB,UAAU,CAACmB,MAAM,CAAIP,MAAM,CAAC;AACrC,CAAC;AACD;;AAEA,eAAeD,gBAAgB"}
@@ -4,8 +4,8 @@ type Props = {
4
4
  source: number | {
5
5
  uri: string;
6
6
  };
7
- width?: number | string;
8
- height?: number | string;
7
+ width?: number | `${number}%`;
8
+ height?: number | `${number}%`;
9
9
  style?: StyleProp<ViewStyle>;
10
10
  };
11
11
  declare const ImageWithPlaceholder: (props: Props) => React.JSX.Element;
@@ -5,5 +5,5 @@ import { StyleSheet } from 'react-native';
5
5
  * @param styles
6
6
  * @returns StyleSheet
7
7
  * */
8
- declare const createStyleSheet: <T extends StyleSheet.NamedStyles<T>>(styles: T | StyleSheet.NamedStyles<T>) => T;
8
+ declare const createStyleSheet: <T extends StyleSheet.NamedStyles<T> | StyleSheet.NamedStyles<any>>(styles: T & StyleSheet.NamedStyles<any>) => T;
9
9
  export default createStyleSheet;
@@ -15,7 +15,7 @@ declare const _default: (({ uri, square, muted, size, containerStyle }: Props) =
15
15
  children?: React.ReactNode;
16
16
  }) => React.JSX.Element;
17
17
  Icon: ({ size, icon, containerStyle, backgroundColor }: {
18
- icon: "message" | "recording" | "done" | "search" | "chat-hide" | "chat-show" | "add" | "archive" | "arrow-left" | "audio-off-filled" | "audio-off" | "audio-on-filled" | "audio-on" | "ban" | "broadcast" | "camera" | "channels" | "chat-filled" | "chat" | "checkbox-off" | "checkbox-on" | "chevron-down" | "chevron-right" | "close" | "copy" | "create" | "delete" | "document" | "done-all" | "download" | "edit" | "emoji-more" | "error" | "file-audio" | "file-document" | "freeze" | "gif" | "info" | "leave" | "members" | "moderation" | "more" | "mute" | "notifications-filled" | "notifications-off-filled" | "notifications" | "operator" | "pause" | "photo" | "play" | "plus" | "question" | "radio-off" | "radio-on" | "refresh" | "remove" | "reply-filled" | "reply" | "send" | "settings-filled" | "spinner" | "stop" | "streaming" | "supergroup" | "theme" | "thread" | "thumbnail-none" | "unarchive" | "user";
18
+ icon: "message" | "recording" | "done" | "search" | "document" | "chat-hide" | "chat-show" | "add" | "archive" | "arrow-left" | "audio-off-filled" | "audio-off" | "audio-on-filled" | "audio-on" | "ban" | "broadcast" | "camera" | "channels" | "chat-filled" | "chat" | "checkbox-off" | "checkbox-on" | "chevron-down" | "chevron-right" | "close" | "copy" | "create" | "delete" | "done-all" | "download" | "edit" | "emoji-more" | "error" | "file-audio" | "file-document" | "freeze" | "gif" | "info" | "leave" | "members" | "moderation" | "more" | "mute" | "notifications-filled" | "notifications-off-filled" | "notifications" | "operator" | "pause" | "photo" | "play" | "plus" | "question" | "radio-off" | "radio-on" | "refresh" | "remove" | "reply-filled" | "reply" | "send" | "settings-filled" | "spinner" | "stop" | "streaming" | "supergroup" | "theme" | "thread" | "thumbnail-none" | "unarchive" | "user";
19
19
  size?: number | undefined;
20
20
  backgroundColor?: string | undefined;
21
21
  containerStyle?: StyleProp<ViewStyle>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-react-native-foundation",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "description": "A foundational UI kit for building chat-enabled React Native apps.",
5
5
  "keywords": [
6
6
  "sendbird",
@@ -48,16 +48,16 @@
48
48
  "access": "public"
49
49
  },
50
50
  "dependencies": {
51
- "@sendbird/uikit-utils": "3.6.0"
51
+ "@sendbird/uikit-utils": "3.7.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/react": "*",
55
55
  "@types/react-native": "*",
56
- "react": "17.0.2",
57
- "react-native": "0.67.5",
56
+ "react": "18.2.0",
57
+ "react-native": "0.74.3",
58
58
  "react-native-builder-bob": "^0.18.0",
59
- "react-native-fast-image": "^8.5.11",
60
- "react-native-safe-area-context": "^3.3.2",
59
+ "react-native-fast-image": "^8.6.3",
60
+ "react-native-safe-area-context": "^4.10.8",
61
61
  "typescript": "5.2.2"
62
62
  },
63
63
  "peerDependencies": {
@@ -85,5 +85,5 @@
85
85
  ]
86
86
  ]
87
87
  },
88
- "gitHead": "74380f45cc34ef2d9f8a6b7f5cb9144329457c5b"
88
+ "gitHead": "51d39985ece857b026d311c621ec3c555cf896a1"
89
89
  }
@@ -27,9 +27,9 @@ function convertSource(source: SendbirdImageProps['source']): Source | number {
27
27
  }
28
28
 
29
29
  return {
30
- uri: source.uri,
31
- headers: source.headers,
32
- cache: convertCache(source.cache), //'immutable' | 'web' | 'cacheOnly'
30
+ uri: source?.uri,
31
+ headers: source?.headers,
32
+ cache: convertCache(source?.cache), //'immutable' | 'web' | 'cacheOnly'
33
33
  };
34
34
  }
35
35
  function convertDefaultSource(source?: SendbirdImageProps['defaultSource']): number | undefined {
@@ -40,8 +40,8 @@ const useRetry = (hasError: boolean, retryCount = 5) => {
40
40
 
41
41
  type Props = {
42
42
  source: number | { uri: string };
43
- width?: number | string;
44
- height?: number | string;
43
+ width?: number | `${number}%`;
44
+ height?: number | `${number}%`;
45
45
  style?: StyleProp<ViewStyle>;
46
46
  };
47
47
  const ImageWithPlaceholder = (props: Props) => {
@@ -1,40 +1,51 @@
1
1
  import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';
2
+ import { AnimatableNumericValue, DimensionValue } from 'react-native/Libraries/StyleSheet/StyleSheetTypes';
2
3
 
3
4
  import { DEFAULT_SCALE_FACTOR } from './createScaleFactor';
4
5
 
5
6
  type Styles = ViewStyle | TextStyle | ImageStyle;
6
7
  type StylePreprocessor<T extends Styles = Styles> = { [key in keyof T]: (val: NonNullable<T[key]>) => typeof val };
7
8
 
8
- const SCALE_FACTOR_WITH_STR = (val: string | number) => (typeof val === 'string' ? val : DEFAULT_SCALE_FACTOR(val));
9
+ const SCALE_FACTOR_WITH_DIMENSION_VALUE = (
10
+ val: NonNullable<DimensionValue | undefined>,
11
+ ): NonNullable<DimensionValue | undefined> => {
12
+ return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;
13
+ };
14
+
15
+ const DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE = (
16
+ val: NonNullable<AnimatableNumericValue | undefined>,
17
+ ): NonNullable<AnimatableNumericValue | undefined> => {
18
+ return typeof val === 'number' ? DEFAULT_SCALE_FACTOR(val) : val;
19
+ };
9
20
 
10
21
  const preProcessor: Partial<StylePreprocessor> = {
11
22
  'fontSize': DEFAULT_SCALE_FACTOR,
12
23
  'lineHeight': DEFAULT_SCALE_FACTOR,
13
- 'borderRadius': DEFAULT_SCALE_FACTOR,
14
- 'minWidth': SCALE_FACTOR_WITH_STR,
15
- 'maxWidth': SCALE_FACTOR_WITH_STR,
16
- 'minHeight': SCALE_FACTOR_WITH_STR,
17
- 'maxHeight': SCALE_FACTOR_WITH_STR,
18
- 'height': SCALE_FACTOR_WITH_STR,
19
- 'width': SCALE_FACTOR_WITH_STR,
20
- 'padding': SCALE_FACTOR_WITH_STR,
21
- 'paddingVertical': SCALE_FACTOR_WITH_STR,
22
- 'paddingHorizontal': SCALE_FACTOR_WITH_STR,
23
- 'paddingTop': SCALE_FACTOR_WITH_STR,
24
- 'paddingBottom': SCALE_FACTOR_WITH_STR,
25
- 'paddingLeft': SCALE_FACTOR_WITH_STR,
26
- 'paddingRight': SCALE_FACTOR_WITH_STR,
27
- 'margin': SCALE_FACTOR_WITH_STR,
28
- 'marginVertical': SCALE_FACTOR_WITH_STR,
29
- 'marginHorizontal': SCALE_FACTOR_WITH_STR,
30
- 'marginTop': SCALE_FACTOR_WITH_STR,
31
- 'marginBottom': SCALE_FACTOR_WITH_STR,
32
- 'marginLeft': SCALE_FACTOR_WITH_STR,
33
- 'marginRight': SCALE_FACTOR_WITH_STR,
34
- 'left': SCALE_FACTOR_WITH_STR,
35
- 'right': SCALE_FACTOR_WITH_STR,
36
- 'top': SCALE_FACTOR_WITH_STR,
37
- 'bottom': SCALE_FACTOR_WITH_STR,
24
+ 'borderRadius': DEFAULT_SCALE_FACTOR_WITH_NUMERIC_VALUE,
25
+ 'minWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,
26
+ 'maxWidth': SCALE_FACTOR_WITH_DIMENSION_VALUE,
27
+ 'minHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
28
+ 'maxHeight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
29
+ 'height': SCALE_FACTOR_WITH_DIMENSION_VALUE,
30
+ 'width': SCALE_FACTOR_WITH_DIMENSION_VALUE,
31
+ 'padding': SCALE_FACTOR_WITH_DIMENSION_VALUE,
32
+ 'paddingVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,
33
+ 'paddingHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,
34
+ 'paddingTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,
35
+ 'paddingBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,
36
+ 'paddingLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,
37
+ 'paddingRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
38
+ 'margin': SCALE_FACTOR_WITH_DIMENSION_VALUE,
39
+ 'marginVertical': SCALE_FACTOR_WITH_DIMENSION_VALUE,
40
+ 'marginHorizontal': SCALE_FACTOR_WITH_DIMENSION_VALUE,
41
+ 'marginTop': SCALE_FACTOR_WITH_DIMENSION_VALUE,
42
+ 'marginBottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,
43
+ 'marginLeft': SCALE_FACTOR_WITH_DIMENSION_VALUE,
44
+ 'marginRight': SCALE_FACTOR_WITH_DIMENSION_VALUE,
45
+ 'left': SCALE_FACTOR_WITH_DIMENSION_VALUE,
46
+ 'right': SCALE_FACTOR_WITH_DIMENSION_VALUE,
47
+ 'top': SCALE_FACTOR_WITH_DIMENSION_VALUE,
48
+ 'bottom': SCALE_FACTOR_WITH_DIMENSION_VALUE,
38
49
  };
39
50
 
40
51
  const preProcessorKeys = Object.keys(preProcessor);
@@ -46,7 +57,10 @@ const preProcessorLen = preProcessorKeys.length;
46
57
  * @param styles
47
58
  * @returns StyleSheet
48
59
  * */
49
- const createStyleSheet = <T extends StyleSheet.NamedStyles<T>>(styles: T | StyleSheet.NamedStyles<T>): T => {
60
+ /* eslint-disable @typescript-eslint/no-explicit-any */
61
+ const createStyleSheet = <T extends StyleSheet.NamedStyles<T> | StyleSheet.NamedStyles<any>>(
62
+ styles: T & StyleSheet.NamedStyles<any>,
63
+ ): T => {
50
64
  Object.values(styles).forEach((style) => {
51
65
  // @ts-ignore
52
66
  const styleKeys = Object.keys(style);
@@ -61,5 +75,6 @@ const createStyleSheet = <T extends StyleSheet.NamedStyles<T>>(styles: T | Style
61
75
 
62
76
  return StyleSheet.create<T>(styles);
63
77
  };
78
+ /* eslint-enable @typescript-eslint/no-explicit-any */
64
79
 
65
80
  export default createStyleSheet;