@react-native-vector-icons/common 0.0.1-alpha.1 → 0.0.1-alpha.10

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.
Files changed (47) hide show
  1. package/README.md +373 -0
  2. package/android/build.gradle +3 -3
  3. package/ios/VectorIcons.mm +83 -69
  4. package/lib/commonjs/NativeVectorIcons.js.map +1 -1
  5. package/lib/commonjs/NativeVectorIcons.web.js.map +1 -1
  6. package/lib/commonjs/create-icon-set.js +9 -5
  7. package/lib/commonjs/create-icon-set.js.map +1 -1
  8. package/lib/commonjs/create-icon-source-cache.js +3 -2
  9. package/lib/commonjs/create-icon-source-cache.js.map +1 -1
  10. package/lib/commonjs/ensure-native-module-available.js.map +1 -1
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/scripts/getFonts.js +1 -1
  13. package/lib/commonjs/scripts/getFonts.js.map +1 -1
  14. package/lib/module/NativeVectorIcons.js.map +1 -1
  15. package/lib/module/NativeVectorIcons.web.js.map +1 -1
  16. package/lib/module/create-icon-set.js +9 -5
  17. package/lib/module/create-icon-set.js.map +1 -1
  18. package/lib/module/create-icon-source-cache.js +3 -2
  19. package/lib/module/create-icon-source-cache.js.map +1 -1
  20. package/lib/module/ensure-native-module-available.js.map +1 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/scripts/getFonts.js +1 -1
  23. package/lib/module/scripts/getFonts.js.map +1 -1
  24. package/lib/typescript/src/NativeVectorIcons.d.ts.map +1 -1
  25. package/lib/typescript/src/create-icon-set.d.ts.map +1 -1
  26. package/lib/typescript/src/create-icon-source-cache.d.ts.map +1 -1
  27. package/package.json +13 -47
  28. package/react-native-vector-icons.podspec +26 -7
  29. package/src/NativeVectorIcons.ts +2 -12
  30. package/src/create-icon-set.tsx +24 -28
  31. package/src/create-icon-source-cache.ts +6 -9
  32. package/src/ensure-native-module-available.ts +1 -1
  33. package/src/scripts/getFonts.ts +1 -1
  34. package/lib/commonjs/icon-button.js +0 -72
  35. package/lib/commonjs/icon-button.js.map +0 -1
  36. package/lib/commonjs/object-utils.js +0 -20
  37. package/lib/commonjs/object-utils.js.map +0 -1
  38. package/lib/module/icon-button.js +0 -64
  39. package/lib/module/icon-button.js.map +0 -1
  40. package/lib/module/object-utils.js +0 -12
  41. package/lib/module/object-utils.js.map +0 -1
  42. package/lib/typescript/src/icon-button.d.ts +0 -13
  43. package/lib/typescript/src/icon-button.d.ts.map +0 -1
  44. package/lib/typescript/src/object-utils.d.ts +0 -3
  45. package/lib/typescript/src/object-utils.d.ts.map +0 -1
  46. package/src/icon-button.tsx +0 -142
  47. package/src/object-utils.ts +0 -25
@@ -3,27 +3,24 @@ const TYPE_ERROR = 'error';
3
3
 
4
4
  type ValueData = { uri: string; scale: number };
5
5
 
6
- type Value =
7
- | { type: typeof TYPE_VALUE; data: ValueData }
8
- | { type: typeof TYPE_ERROR; data: Error };
6
+ type Value = { type: typeof TYPE_VALUE; data: ValueData } | { type: typeof TYPE_ERROR; data: Error };
9
7
 
10
8
  export default function createIconSourceCache() {
11
9
  const cache = new Map<string, Value>();
12
10
 
13
- const setValue = (key: string, value: ValueData) =>
14
- cache.set(key, { type: TYPE_VALUE, data: value });
11
+ const setValue = (key: string, value: ValueData) => cache.set(key, { type: TYPE_VALUE, data: value });
15
12
 
16
- const setError = (key: string, error: Error) =>
17
- cache.set(key, { type: TYPE_ERROR, data: error });
13
+ const setError = (key: string, error: Error) => cache.set(key, { type: TYPE_ERROR, data: error });
18
14
 
19
15
  const has = (key: string) => cache.has(key);
20
16
 
21
17
  const get = (key: string) => {
22
- if (!cache.has(key)) {
18
+ const value = cache.get(key);
19
+ if (!value) {
23
20
  return undefined;
24
21
  }
25
22
 
26
- const { type, data } = cache.get(key)!;
23
+ const { type, data } = value;
27
24
  if (type === TYPE_ERROR) {
28
25
  throw data;
29
26
  }
@@ -3,7 +3,7 @@ import NativeIconAPI from './NativeVectorIcons';
3
3
  export default function ensureNativeModuleAvailable() {
4
4
  if (!NativeIconAPI) {
5
5
  throw new Error(
6
- 'The native RNVectorIcons API is not available, did you properly integrate the module? Please verify your autolinking setup and recompile.'
6
+ 'The native RNVectorIcons API is not available, did you properly integrate the module? Please verify your autolinking setup and recompile.',
7
7
  );
8
8
  }
9
9
  }
@@ -44,7 +44,7 @@ const getFonts = (dir: string) => {
44
44
  }
45
45
 
46
46
  const fonts = fs.readdirSync(fontDir);
47
- fonts.forEach((font) => console.log(`${fontDir}/${font}`));
47
+ fonts.forEach((font) => console.log(`${fontDir}/${font}`)); // eslint-disable-line no-console
48
48
  });
49
49
  };
50
50
 
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.createIconButtonComponent = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactNative = require("react-native");
9
- var _objectUtils = require("./object-utils");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
12
- const styles = _reactNative.StyleSheet.create({
13
- container: {
14
- flexDirection: 'row',
15
- justifyContent: 'flex-start',
16
- alignItems: 'center',
17
- padding: 8
18
- },
19
- touchable: {
20
- overflow: 'hidden'
21
- },
22
- icon: {
23
- marginRight: 10
24
- },
25
- text: {
26
- fontWeight: '600',
27
- backgroundColor: 'transparent'
28
- }
29
- });
30
- const IOS7_BLUE = '#007AFF';
31
- const TEXT_PROP_NAMES = ['ellipsizeMode', 'numberOfLines', 'textBreakStrategy', 'selectable', 'suppressHighlighting', 'allowFontScaling', 'adjustsFontSizeToFit', 'minimumFontScale'];
32
- const TOUCHABLE_PROP_NAMES = ['accessible', 'accessibilityLabel', 'accessibilityHint', 'accessibilityComponentType', 'accessibilityRole', 'accessibilityStates', 'accessibilityTraits', 'onFocus', 'onBlur', 'disabled', 'onPress', 'onPressIn', 'onPressOut', 'onLayout', 'onLongPress', 'nativeID', 'testID', 'delayPressIn', 'delayPressOut', 'delayLongPress', 'activeOpacity', 'underlayColor', 'selectionColor', 'onShowUnderlay', 'onHideUnderlay', 'hasTVPreferredFocus', 'tvParallaxProperties'];
33
- const createIconButtonComponent = Icon => ({
34
- name,
35
- color = 'white',
36
- borderRadius = 5,
37
- iconStyle,
38
- style,
39
- backgroundColor = IOS7_BLUE,
40
- size = 20,
41
- children,
42
- ...restProps
43
- }) => {
44
- const iconProps = {
45
- ...(0, _objectUtils.pick)(restProps, ...TEXT_PROP_NAMES),
46
- style,
47
- name,
48
- size,
49
- color
50
- };
51
- const touchableProps = (0, _objectUtils.pick)(restProps, ...TOUCHABLE_PROP_NAMES);
52
- const props = (0, _objectUtils.omit)(restProps, ...Object.keys(iconProps), ...Object.keys(touchableProps));
53
- iconProps.style = iconStyle ? [styles.icon, iconStyle] : styles.icon;
54
- const colorStyle = {
55
- color
56
- };
57
- const blockStyle = {
58
- backgroundColor,
59
- borderRadius
60
- };
61
- return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableHighlight, _extends({
62
- style: [styles.touchable, blockStyle]
63
- }, touchableProps), /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
64
- style: [styles.container, blockStyle, style]
65
- }, props), /*#__PURE__*/_react.default.createElement(Icon, iconProps), typeof children === 'string' ? /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
66
- style: [styles.text, colorStyle],
67
- selectable: false
68
- }, children) : children));
69
- };
70
- exports.createIconButtonComponent = createIconButtonComponent;
71
- var _default = exports.default = createIconButtonComponent;
72
- //# sourceMappingURL=icon-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_objectUtils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","styles","StyleSheet","create","container","flexDirection","justifyContent","alignItems","padding","touchable","overflow","icon","marginRight","text","fontWeight","backgroundColor","IOS7_BLUE","TEXT_PROP_NAMES","TOUCHABLE_PROP_NAMES","createIconButtonComponent","Icon","name","color","borderRadius","iconStyle","style","size","children","restProps","iconProps","pick","touchableProps","props","omit","keys","colorStyle","blockStyle","createElement","TouchableHighlight","View","Text","selectable","exports","_default"],"sourceRoot":"../../src","sources":["icon-button.tsx"],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.pick = exports.omit = void 0;
7
- const pick = (obj, ...keys) => keys.flat().filter(key => Object.prototype.hasOwnProperty.call(obj, key)).reduce((acc, key) => {
8
- acc[key] = obj[key];
9
- return acc;
10
- }, {});
11
- exports.pick = pick;
12
- const omit = (obj, ...keysToOmit) => {
13
- const keysToOmitSet = new Set(keysToOmit.flat());
14
- return Object.getOwnPropertyNames(obj).filter(key => !keysToOmitSet.has(key)).reduce((acc, key) => {
15
- acc[key] = obj[key];
16
- return acc;
17
- }, {});
18
- };
19
- exports.omit = omit;
20
- //# sourceMappingURL=object-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["pick","obj","keys","flat","filter","key","Object","prototype","hasOwnProperty","call","reduce","acc","exports","omit","keysToOmit","keysToOmitSet","Set","getOwnPropertyNames","has"],"sourceRoot":"../../src","sources":["object-utils.ts"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAGA,CAACC,GAAwB,EAAE,GAAGC,IAAc,KAC9DA,IAAI,CACDC,IAAI,CAAC,CAAC,CACNC,MAAM,CAAEC,GAAG,IAAKC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,GAAG,EAAEI,GAAG,CAAC,CAAC,CAC/DK,MAAM,CACL,CAACC,GAAG,EAAEN,GAAG,KAAK;EACZM,GAAG,CAACN,GAAG,CAAC,GAAGJ,GAAG,CAACI,GAAG,CAAC;EACnB,OAAOM,GAAG;AACZ,CAAC,EACD,CAAC,CACH,CAAC;AAACC,OAAA,CAAAZ,IAAA,GAAAA,IAAA;AAEC,MAAMa,IAAI,GAAGA,CAACZ,GAAwB,EAAE,GAAGa,UAAoB,KAAK;EACzE,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAACF,UAAU,CAACX,IAAI,CAAC,CAAC,CAAC;EAEhD,OAAOG,MAAM,CAACW,mBAAmB,CAAChB,GAAG,CAAC,CACnCG,MAAM,CAAEC,GAAG,IAAK,CAACU,aAAa,CAACG,GAAG,CAACb,GAAG,CAAC,CAAC,CACxCK,MAAM,CACL,CAACC,GAAG,EAAEN,GAAG,KAAK;IACZM,GAAG,CAACN,GAAG,CAAC,GAAGJ,GAAG,CAACI,GAAG,CAAC;IACnB,OAAOM,GAAG;EACZ,CAAC,EACD,CAAC,CACH,CAAC;AACL,CAAC;AAACC,OAAA,CAAAC,IAAA,GAAAA,IAAA"}
@@ -1,64 +0,0 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import React from 'react';
3
- import { StyleSheet, Text, TouchableHighlight, View } from 'react-native';
4
- import { pick, omit } from './object-utils';
5
- const styles = StyleSheet.create({
6
- container: {
7
- flexDirection: 'row',
8
- justifyContent: 'flex-start',
9
- alignItems: 'center',
10
- padding: 8
11
- },
12
- touchable: {
13
- overflow: 'hidden'
14
- },
15
- icon: {
16
- marginRight: 10
17
- },
18
- text: {
19
- fontWeight: '600',
20
- backgroundColor: 'transparent'
21
- }
22
- });
23
- const IOS7_BLUE = '#007AFF';
24
- const TEXT_PROP_NAMES = ['ellipsizeMode', 'numberOfLines', 'textBreakStrategy', 'selectable', 'suppressHighlighting', 'allowFontScaling', 'adjustsFontSizeToFit', 'minimumFontScale'];
25
- const TOUCHABLE_PROP_NAMES = ['accessible', 'accessibilityLabel', 'accessibilityHint', 'accessibilityComponentType', 'accessibilityRole', 'accessibilityStates', 'accessibilityTraits', 'onFocus', 'onBlur', 'disabled', 'onPress', 'onPressIn', 'onPressOut', 'onLayout', 'onLongPress', 'nativeID', 'testID', 'delayPressIn', 'delayPressOut', 'delayLongPress', 'activeOpacity', 'underlayColor', 'selectionColor', 'onShowUnderlay', 'onHideUnderlay', 'hasTVPreferredFocus', 'tvParallaxProperties'];
26
- export const createIconButtonComponent = Icon => ({
27
- name,
28
- color = 'white',
29
- borderRadius = 5,
30
- iconStyle,
31
- style,
32
- backgroundColor = IOS7_BLUE,
33
- size = 20,
34
- children,
35
- ...restProps
36
- }) => {
37
- const iconProps = {
38
- ...pick(restProps, ...TEXT_PROP_NAMES),
39
- style,
40
- name,
41
- size,
42
- color
43
- };
44
- const touchableProps = pick(restProps, ...TOUCHABLE_PROP_NAMES);
45
- const props = omit(restProps, ...Object.keys(iconProps), ...Object.keys(touchableProps));
46
- iconProps.style = iconStyle ? [styles.icon, iconStyle] : styles.icon;
47
- const colorStyle = {
48
- color
49
- };
50
- const blockStyle = {
51
- backgroundColor,
52
- borderRadius
53
- };
54
- return /*#__PURE__*/React.createElement(TouchableHighlight, _extends({
55
- style: [styles.touchable, blockStyle]
56
- }, touchableProps), /*#__PURE__*/React.createElement(View, _extends({
57
- style: [styles.container, blockStyle, style]
58
- }, props), /*#__PURE__*/React.createElement(Icon, iconProps), typeof children === 'string' ? /*#__PURE__*/React.createElement(Text, {
59
- style: [styles.text, colorStyle],
60
- selectable: false
61
- }, children) : children));
62
- };
63
- export default createIconButtonComponent;
64
- //# sourceMappingURL=icon-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","StyleSheet","Text","TouchableHighlight","View","pick","omit","styles","create","container","flexDirection","justifyContent","alignItems","padding","touchable","overflow","icon","marginRight","text","fontWeight","backgroundColor","IOS7_BLUE","TEXT_PROP_NAMES","TOUCHABLE_PROP_NAMES","createIconButtonComponent","Icon","name","color","borderRadius","iconStyle","style","size","children","restProps","iconProps","touchableProps","props","Object","keys","colorStyle","blockStyle","createElement","_extends","selectable"],"sourceRoot":"../../src","sources":["icon-button.tsx"],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export const pick = (obj, ...keys) => keys.flat().filter(key => Object.prototype.hasOwnProperty.call(obj, key)).reduce((acc, key) => {
2
- acc[key] = obj[key];
3
- return acc;
4
- }, {});
5
- export const omit = (obj, ...keysToOmit) => {
6
- const keysToOmitSet = new Set(keysToOmit.flat());
7
- return Object.getOwnPropertyNames(obj).filter(key => !keysToOmitSet.has(key)).reduce((acc, key) => {
8
- acc[key] = obj[key];
9
- return acc;
10
- }, {});
11
- };
12
- //# sourceMappingURL=object-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["pick","obj","keys","flat","filter","key","Object","prototype","hasOwnProperty","call","reduce","acc","omit","keysToOmit","keysToOmitSet","Set","getOwnPropertyNames","has"],"sourceRoot":"../../src","sources":["object-utils.ts"],"mappings":"AAAA,OAAO,MAAMA,IAAI,GAAGA,CAACC,GAAwB,EAAE,GAAGC,IAAc,KAC9DA,IAAI,CACDC,IAAI,CAAC,CAAC,CACNC,MAAM,CAAEC,GAAG,IAAKC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,GAAG,EAAEI,GAAG,CAAC,CAAC,CAC/DK,MAAM,CACL,CAACC,GAAG,EAAEN,GAAG,KAAK;EACZM,GAAG,CAACN,GAAG,CAAC,GAAGJ,GAAG,CAACI,GAAG,CAAC;EACnB,OAAOM,GAAG;AACZ,CAAC,EACD,CAAC,CACH,CAAC;AAEL,OAAO,MAAMC,IAAI,GAAGA,CAACX,GAAwB,EAAE,GAAGY,UAAoB,KAAK;EACzE,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAACF,UAAU,CAACV,IAAI,CAAC,CAAC,CAAC;EAEhD,OAAOG,MAAM,CAACU,mBAAmB,CAACf,GAAG,CAAC,CACnCG,MAAM,CAAEC,GAAG,IAAK,CAACS,aAAa,CAACG,GAAG,CAACZ,GAAG,CAAC,CAAC,CACxCK,MAAM,CACL,CAACC,GAAG,EAAEN,GAAG,KAAK;IACZM,GAAG,CAACN,GAAG,CAAC,GAAGJ,GAAG,CAACI,GAAG,CAAC;IACnB,OAAOM,GAAG;EACZ,CAAC,EACD,CAAC,CACH,CAAC;AACL,CAAC"}
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import { type TextStyle, type ViewStyle, type TouchableHighlightProps, type TouchableNativeFeedbackProps } from 'react-native';
3
- import type { IconProps } from './create-icon-set';
4
- export type IconButtonProps<T> = IconProps<T> & TouchableHighlightProps & TouchableNativeFeedbackProps & {
5
- color?: TextStyle['color'];
6
- borderRadius?: number;
7
- iconStyle?: TextStyle;
8
- style?: ViewStyle | TextStyle;
9
- backgroundColor?: ViewStyle['backgroundColor'];
10
- };
11
- export declare const createIconButtonComponent: <T extends string>(Icon: (props: IconProps<T>) => JSX.Element) => ({ name, color, borderRadius, iconStyle, style, backgroundColor, size, children, ...restProps }: IconButtonProps<T>) => React.JSX.Element;
12
- export default createIconButtonComponent;
13
- //# sourceMappingURL=icon-button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button.d.ts","sourceRoot":"","sources":["../../../src/icon-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAgEnD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAC3C,uBAAuB,GACvB,4BAA4B,GAAG;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,eAAe,CAAC,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;CAGhD,CAAC;AAEJ,eAAO,MAAM,yBAAyB,oDACc,WAAW,8IAkD5D,CAAC;AAEJ,eAAe,yBAAyB,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare const pick: (obj: Record<string, any>, ...keys: string[]) => Record<string, object | undefined>;
2
- export declare const omit: (obj: Record<string, any>, ...keysToOmit: string[]) => Record<string, object | undefined>;
3
- //# sourceMappingURL=object-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object-utils.d.ts","sourceRoot":"","sources":["../../../src/object-utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,QAAS,OAAO,MAAM,EAAE,GAAG,CAAC,WAAW,MAAM,EAAE,uCAU3D,CAAC;AAEN,eAAO,MAAM,IAAI,QAAS,OAAO,MAAM,EAAE,GAAG,CAAC,iBAAiB,MAAM,EAAE,uCAYrE,CAAC"}
@@ -1,142 +0,0 @@
1
- import React from 'react';
2
- import {
3
- StyleSheet,
4
- Text,
5
- TouchableHighlight,
6
- View,
7
- type TextStyle,
8
- type ViewStyle,
9
- type TouchableHighlightProps,
10
- type TouchableNativeFeedbackProps,
11
- } from 'react-native';
12
- import { pick, omit } from './object-utils';
13
- import type { IconProps } from './create-icon-set';
14
-
15
- const styles = StyleSheet.create({
16
- container: {
17
- flexDirection: 'row',
18
- justifyContent: 'flex-start',
19
- alignItems: 'center',
20
- padding: 8,
21
- },
22
- touchable: {
23
- overflow: 'hidden',
24
- },
25
- icon: {
26
- marginRight: 10,
27
- },
28
- text: {
29
- fontWeight: '600',
30
- backgroundColor: 'transparent',
31
- },
32
- });
33
-
34
- const IOS7_BLUE = '#007AFF';
35
-
36
- const TEXT_PROP_NAMES = [
37
- 'ellipsizeMode',
38
- 'numberOfLines',
39
- 'textBreakStrategy',
40
- 'selectable',
41
- 'suppressHighlighting',
42
- 'allowFontScaling',
43
- 'adjustsFontSizeToFit',
44
- 'minimumFontScale',
45
- ];
46
-
47
- const TOUCHABLE_PROP_NAMES = [
48
- 'accessible',
49
- 'accessibilityLabel',
50
- 'accessibilityHint',
51
- 'accessibilityComponentType',
52
- 'accessibilityRole',
53
- 'accessibilityStates',
54
- 'accessibilityTraits',
55
- 'onFocus',
56
- 'onBlur',
57
- 'disabled',
58
- 'onPress',
59
- 'onPressIn',
60
- 'onPressOut',
61
- 'onLayout',
62
- 'onLongPress',
63
- 'nativeID',
64
- 'testID',
65
- 'delayPressIn',
66
- 'delayPressOut',
67
- 'delayLongPress',
68
- 'activeOpacity',
69
- 'underlayColor',
70
- 'selectionColor',
71
- 'onShowUnderlay',
72
- 'onHideUnderlay',
73
- 'hasTVPreferredFocus',
74
- 'tvParallaxProperties',
75
- ];
76
-
77
- export type IconButtonProps<T> = IconProps<T> &
78
- TouchableHighlightProps &
79
- TouchableNativeFeedbackProps & {
80
- color?: TextStyle['color'];
81
- borderRadius?: number;
82
- iconStyle?: TextStyle;
83
- style?: ViewStyle | TextStyle; // FIXME: should this be both
84
- backgroundColor?: ViewStyle['backgroundColor'];
85
- // size: PropTypes.number,
86
- // children: PropTypes.node,
87
- };
88
-
89
- export const createIconButtonComponent =
90
- <T extends string>(Icon: (props: IconProps<T>) => JSX.Element) =>
91
- ({
92
- name,
93
- color = 'white',
94
- borderRadius = 5,
95
- iconStyle,
96
- style,
97
- backgroundColor = IOS7_BLUE,
98
- size = 20,
99
- children,
100
- ...restProps
101
- }: IconButtonProps<T>) => {
102
- const iconProps = {
103
- ...pick(restProps, ...TEXT_PROP_NAMES),
104
- style,
105
- name,
106
- size,
107
- color,
108
- };
109
-
110
- const touchableProps = pick(restProps, ...TOUCHABLE_PROP_NAMES);
111
-
112
- const props = omit(
113
- restProps,
114
- ...Object.keys(iconProps),
115
- ...Object.keys(touchableProps)
116
- );
117
-
118
- iconProps.style = iconStyle ? [styles.icon, iconStyle] : styles.icon;
119
-
120
- const colorStyle = { color };
121
- const blockStyle = { backgroundColor, borderRadius };
122
-
123
- return (
124
- <TouchableHighlight
125
- style={[styles.touchable, blockStyle]}
126
- {...touchableProps}
127
- >
128
- <View style={[styles.container, blockStyle, style]} {...props}>
129
- <Icon {...iconProps} />
130
- {typeof children === 'string' ? (
131
- <Text style={[styles.text, colorStyle]} selectable={false}>
132
- {children}
133
- </Text>
134
- ) : (
135
- children
136
- )}
137
- </View>
138
- </TouchableHighlight>
139
- );
140
- };
141
-
142
- export default createIconButtonComponent;
@@ -1,25 +0,0 @@
1
- export const pick = (obj: Record<string, any>, ...keys: string[]) =>
2
- keys
3
- .flat()
4
- .filter((key) => Object.prototype.hasOwnProperty.call(obj, key))
5
- .reduce(
6
- (acc, key) => {
7
- acc[key] = obj[key];
8
- return acc;
9
- },
10
- {} as Record<string, object | undefined>
11
- );
12
-
13
- export const omit = (obj: Record<string, any>, ...keysToOmit: string[]) => {
14
- const keysToOmitSet = new Set(keysToOmit.flat());
15
-
16
- return Object.getOwnPropertyNames(obj)
17
- .filter((key) => !keysToOmitSet.has(key))
18
- .reduce(
19
- (acc, key) => {
20
- acc[key] = obj[key];
21
- return acc;
22
- },
23
- {} as Record<string, object | undefined>
24
- );
25
- };