@herca/rn-kit 0.1.10 → 0.1.11

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 (53) hide show
  1. package/README.md +1 -1
  2. package/lib/module/Chip/Chip.js +10 -5
  3. package/lib/module/Chip/Chip.js.map +1 -1
  4. package/lib/module/Drawing/Drawing.js +33 -12
  5. package/lib/module/Drawing/Drawing.js.map +1 -1
  6. package/lib/module/Drawing/README.md +31 -0
  7. package/lib/module/Drawing/type.js +2 -0
  8. package/lib/module/Drawing/type.js.map +1 -0
  9. package/lib/module/FileView/PdfView.js +12 -19
  10. package/lib/module/FileView/PdfView.js.map +1 -1
  11. package/lib/module/Provider/FooterProvider.js +4 -1
  12. package/lib/module/Provider/FooterProvider.js.map +1 -1
  13. package/lib/module/Select/Select.js +20 -13
  14. package/lib/module/Select/Select.js.map +1 -1
  15. package/lib/module/Tab/TabItem.js +1 -5
  16. package/lib/module/Tab/TabItem.js.map +1 -1
  17. package/lib/module/Ui/Footer.js +11 -9
  18. package/lib/module/Ui/Footer.js.map +1 -1
  19. package/lib/module/hooks/useOptionalFocusEffect.js +19 -0
  20. package/lib/module/hooks/useOptionalFocusEffect.js.map +1 -0
  21. package/lib/typescript/src/Chip/Chip.d.ts.map +1 -1
  22. package/lib/typescript/src/Chip/type.d.ts +2 -0
  23. package/lib/typescript/src/Chip/type.d.ts.map +1 -1
  24. package/lib/typescript/src/Drawing/Drawing.d.ts +4 -2
  25. package/lib/typescript/src/Drawing/Drawing.d.ts.map +1 -1
  26. package/lib/typescript/src/Drawing/type.d.ts +1 -0
  27. package/lib/typescript/src/Drawing/type.d.ts.map +1 -0
  28. package/lib/typescript/src/FileView/PdfView.d.ts +11 -1
  29. package/lib/typescript/src/FileView/PdfView.d.ts.map +1 -1
  30. package/lib/typescript/src/Provider/FooterProvider.d.ts.map +1 -1
  31. package/lib/typescript/src/Select/Select.d.ts +1 -1
  32. package/lib/typescript/src/Select/Select.d.ts.map +1 -1
  33. package/lib/typescript/src/Select/type.d.ts +2 -0
  34. package/lib/typescript/src/Select/type.d.ts.map +1 -1
  35. package/lib/typescript/src/Tab/TabItem.d.ts +3 -1
  36. package/lib/typescript/src/Tab/TabItem.d.ts.map +1 -1
  37. package/lib/typescript/src/Ui/Footer.d.ts +1 -1
  38. package/lib/typescript/src/Ui/Footer.d.ts.map +1 -1
  39. package/lib/typescript/src/hooks/useOptionalFocusEffect.d.ts +2 -0
  40. package/lib/typescript/src/hooks/useOptionalFocusEffect.d.ts.map +1 -0
  41. package/package.json +1 -1
  42. package/src/Chip/Chip.tsx +9 -3
  43. package/src/Chip/type.tsx +2 -0
  44. package/src/Drawing/Drawing.tsx +44 -17
  45. package/src/Drawing/README.md +31 -0
  46. package/src/Drawing/type.tsx +0 -0
  47. package/src/FileView/PdfView.tsx +22 -19
  48. package/src/Provider/FooterProvider.tsx +2 -1
  49. package/src/Select/Select.tsx +20 -11
  50. package/src/Select/type.tsx +2 -0
  51. package/src/Tab/TabItem.tsx +3 -4
  52. package/src/Ui/Footer.tsx +14 -9
  53. package/src/hooks/useOptionalFocusEffect.ts +18 -0
package/README.md CHANGED
@@ -61,7 +61,7 @@ npm install @herca/rn-kit
61
61
  Atau dengan yarn
62
62
 
63
63
  ```bash
64
- npm install @herca/rn-kit
64
+ yarn add @herca/rn-kit
65
65
  ```
66
66
  Pod install
67
67
 
@@ -17,7 +17,9 @@ const Chip = ({
17
17
  block = false,
18
18
  size = 'medium',
19
19
  onRefresh,
20
- refreshing = false
20
+ refreshing = false,
21
+ onEndReached,
22
+ footer
21
23
  }) => {
22
24
  const isHorizontal = direction === 'horizontal';
23
25
  const normalizeSelected = val => Array.isArray(val) ? val : val ? [val] : [];
@@ -64,6 +66,7 @@ const Chip = ({
64
66
  }),
65
67
  keyExtractor: item => String(item.value),
66
68
  horizontal: isHorizontal,
69
+ onEndReached: onEndReached,
67
70
  onRefresh: onRefresh,
68
71
  refreshing: refreshing,
69
72
  scrollEnabled: scrollable,
@@ -73,16 +76,18 @@ const Chip = ({
73
76
  flexDirection: isHorizontal ? 'row' : 'column',
74
77
  alignItems: block ? 'stretch' : 'flex-start'
75
78
  }],
76
- columnWrapperStyle: numColumns > 1 ? {
77
- gap: 8,
78
- flexWrap: 'wrap'
79
- } : undefined
79
+ columnWrapperStyle: numColumns > 1 ? styles.wrapperStyle : undefined,
80
+ ListFooterComponent: footer
80
81
  });
81
82
  };
82
83
  const styles = StyleSheet.create({
83
84
  container: {
84
85
  gap: 8
85
86
  },
87
+ wrapperStyle: {
88
+ gap: 8,
89
+ flexWrap: 'wrap'
90
+ },
86
91
  chip: {
87
92
  borderRadius: 8,
88
93
  borderWidth: 1,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useMemo","FlatList","StyleSheet","ChipItem","jsx","_jsx","Chip","options","selected","onSelect","onPress","direction","color","renderItem","multiple","scrollable","block","size","onRefresh","refreshing","isHorizontal","normalizeSelected","val","Array","isArray","internalSelected","setInternalSelected","newSelected","JSON","stringify","isSelected","value","includes","handleSelect","length","filter","v","numColumns","handleOnPresChipItem","isDisabled","item","data","keyExtractor","String","horizontal","scrollEnabled","keyboardShouldPersistTaps","contentContainerStyle","styles","container","flexDirection","alignItems","columnWrapperStyle","gap","flexWrap","undefined","create","chip","borderRadius","borderWidth","alignSelf","chipSmall","paddingVertical","paddingHorizontal","chipMedium","chipLarge","blockChip","width"],"sourceRoot":"../../../src","sources":["Chip/Chip.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useMemo","FlatList","StyleSheet","ChipItem","jsx","_jsx","Chip","options","selected","onSelect","onPress","direction","color","renderItem","multiple","scrollable","block","size","onRefresh","refreshing","onEndReached","footer","isHorizontal","normalizeSelected","val","Array","isArray","internalSelected","setInternalSelected","newSelected","JSON","stringify","isSelected","value","includes","handleSelect","length","filter","v","numColumns","handleOnPresChipItem","isDisabled","item","data","keyExtractor","String","horizontal","scrollEnabled","keyboardShouldPersistTaps","contentContainerStyle","styles","container","flexDirection","alignItems","columnWrapperStyle","wrapperStyle","undefined","ListFooterComponent","create","gap","flexWrap","chip","borderRadius","borderWidth","alignSelf","chipSmall","paddingVertical","paddingHorizontal","chipMedium","chipLarge","blockChip","width"],"sourceRoot":"../../../src","sources":["Chip/Chip.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,37 +8,58 @@ import Button from "../Button/Button.js";
8
8
  import Color from "../Color/Color.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  const Drawing = ({
11
- onDraw
11
+ onChange,
12
+ onEnd,
13
+ onStart
12
14
  }) => {
13
15
  const ref = useRef(null);
14
16
  const handleSignature = signature => {
15
- if (signature && onDraw) {
16
- onDraw(signature);
17
+ if (signature && onChange) {
18
+ onChange(signature);
17
19
  }
18
20
  };
21
+ const refreshSignature = () => requestAnimationFrame(() => ref.current?.readSignature());
19
22
  const handleEmpty = () => {
20
- console.log('Signature is empty');
21
- };
22
- const handleClear = () => {
23
- console.log('Signature cleared');
23
+ if (onChange) {
24
+ onChange(null);
25
+ }
24
26
  };
25
27
  const handleError = error => {
26
28
  console.error('Signature pad error:', error);
27
29
  };
28
30
  const handleEnd = () => {
29
- ref.current?.readSignature();
31
+ refreshSignature();
32
+ if (onEnd) {
33
+ onEnd();
34
+ }
35
+ };
36
+ const handleBegin = () => {
37
+ if (onStart) {
38
+ onStart();
39
+ }
40
+ };
41
+ const undo = () => {
42
+ ref.current?.undo();
43
+ refreshSignature();
44
+ };
45
+ const redo = () => {
46
+ ref.current?.redo();
47
+ refreshSignature();
48
+ };
49
+ const clear = () => {
50
+ ref.current?.clearSignature();
51
+ if (onChange) {
52
+ onChange(null);
53
+ }
30
54
  };
31
- const undo = () => ref.current?.undo();
32
- const redo = () => ref.current?.redo();
33
- const clear = () => ref.current?.clearSignature();
34
55
  return /*#__PURE__*/_jsxs(View, {
35
56
  style: styles.container,
36
57
  children: [/*#__PURE__*/_jsx(SignatureCanvas, {
37
58
  ref: ref,
38
59
  onEnd: handleEnd,
60
+ onBegin: handleBegin,
39
61
  onOK: handleSignature,
40
62
  onEmpty: handleEmpty,
41
- onClear: handleClear,
42
63
  onError: handleError,
43
64
  descriptionText: " ",
44
65
  webStyle: `
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","StyleSheet","View","TouchableOpacity","SignatureCanvas","Icon","Button","Color","jsx","_jsx","jsxs","_jsxs","Drawing","onDraw","ref","handleSignature","signature","handleEmpty","console","log","handleClear","handleError","error","handleEnd","current","readSignature","undo","redo","clear","clearSignature","style","styles","container","children","onEnd","onOK","onEmpty","onClear","onError","descriptionText","webStyle","gray","clearText","penColor","backgroundColor","base","white100","webviewProps","cacheEnabled","androidLayerType","footerConteiner","actionButtonContainer","onPress","name","variant","color","title","size","create","height","flexDirection","justifyContent","alignContent","alignItems","gap","preview","width","marginTop"],"sourceRoot":"../../../src","sources":["Drawing/Drawing.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","StyleSheet","View","TouchableOpacity","SignatureCanvas","Icon","Button","Color","jsx","_jsx","jsxs","_jsxs","Drawing","onChange","onEnd","onStart","ref","handleSignature","signature","refreshSignature","requestAnimationFrame","current","readSignature","handleEmpty","handleError","error","console","handleEnd","handleBegin","undo","redo","clear","clearSignature","style","styles","container","children","onBegin","onOK","onEmpty","onError","descriptionText","webStyle","gray","clearText","penColor","backgroundColor","base","white100","webviewProps","cacheEnabled","androidLayerType","footerConteiner","actionButtonContainer","onPress","name","variant","color","title","size","create","height","flexDirection","justifyContent","alignContent","alignItems","gap","preview","width","marginTop"],"sourceRoot":"../../../src","sources":["Drawing/Drawing.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ ## Contoh
2
+
3
+ ```tsx
4
+ import React, { useState } from 'react';
5
+ import { View, Image } from 'react-native';
6
+ import Drawing from './components/Drawing/Drawing';
7
+
8
+ export default function SignatureForm() {
9
+ const [result, setResult] = useState<string | undefined>();
10
+
11
+ return (
12
+ <View style={{ flex: 1, padding: 16 }}>
13
+ <Drawing onDraw={setResult} />
14
+
15
+ {result && (
16
+ <Image
17
+ source={{ uri: result }}
18
+ style={{ width: 300, height: 100, marginTop: 24 }}
19
+ resizeMode="contain"
20
+ />
21
+ )}
22
+ </View>
23
+ );
24
+ }
25
+ ```
26
+
27
+ ## props
28
+
29
+ | Prop | Tipe | Default | Deskripsi |
30
+ | -------- | -------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------- |
31
+ | `onDraw` | `(value?: string \| undefined) ⇒ void` | `undefined` | Callback berisi tanda tangan **base64** saat pengguna menggambar (dipicu otomatis di `onDraw`). |
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["Drawing/type.tsx"],"mappings":"","ignoreList":[]}
@@ -1,36 +1,29 @@
1
1
  "use strict";
2
2
 
3
- import { View, Dimensions, StyleSheet } from 'react-native';
3
+ import { View, StyleSheet } from 'react-native';
4
4
  import Pdf from 'react-native-pdf';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  const PdfView = ({
7
- source = null
7
+ source
8
8
  }) => {
9
- if (!source) {
10
- return /*#__PURE__*/_jsx(View, {});
11
- }
9
+ if (!source) return /*#__PURE__*/_jsx(View, {});
12
10
  return /*#__PURE__*/_jsx(View, {
13
- style: styles.flex,
11
+ style: styles.container,
14
12
  children: /*#__PURE__*/_jsx(Pdf, {
15
13
  source: source,
16
- onLoadComplete: numberOfPages => {
17
- console.log(`number of pages: ${numberOfPages}`);
18
- },
19
- onPageChanged: page => {
20
- console.log(`current page: ${page}`);
21
- },
22
- onError: error => {
23
- console.log(error);
24
- },
25
- style: [styles.flex, {
26
- width: Dimensions.get('window').width
27
- }]
14
+ onLoadComplete: pages => console.log('number of pages:', pages),
15
+ onPageChanged: page => console.log('current page:', page),
16
+ onError: err => console.error(err),
17
+ style: styles.pdf
28
18
  })
29
19
  });
30
20
  };
31
21
  export default PdfView;
32
22
  const styles = StyleSheet.create({
33
- flex: {
23
+ container: {
24
+ flex: 1
25
+ },
26
+ pdf: {
34
27
  flex: 1
35
28
  }
36
29
  });
@@ -1 +1 @@
1
- {"version":3,"names":["View","Dimensions","StyleSheet","Pdf","jsx","_jsx","PdfView","source","style","styles","flex","children","onLoadComplete","numberOfPages","console","log","onPageChanged","page","onError","error","width","get","create"],"sourceRoot":"../../../src","sources":["FileView/PdfView.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAC3D,OAAOC,GAAG,MAAM,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnC,MAAMC,OAAO,GAAGA,CAAC;EAAEC,MAAM,GAAG;AAAK,CAAC,KAAK;EACrC,IAAI,CAACA,MAAM,EAAE;IACX,oBAAOF,IAAA,CAACL,IAAI,IAAO,CAAC;EACtB;EACA,oBACEK,IAAA,CAACL,IAAI;IAACQ,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,eACvBN,IAAA,CAACF,GAAG;MACFI,MAAM,EAAEA,MAAO;MACfK,cAAc,EAAGC,aAAa,IAAK;QACjCC,OAAO,CAACC,GAAG,CAAC,oBAAoBF,aAAa,EAAE,CAAC;MAClD,CAAE;MACFG,aAAa,EAAGC,IAAI,IAAK;QACvBH,OAAO,CAACC,GAAG,CAAC,iBAAiBE,IAAI,EAAE,CAAC;MACtC,CAAE;MACFC,OAAO,EAAGC,KAAK,IAAK;QAClBL,OAAO,CAACC,GAAG,CAACI,KAAK,CAAC;MACpB,CAAE;MACFX,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE;QAAEU,KAAK,EAAEnB,UAAU,CAACoB,GAAG,CAAC,QAAQ,CAAC,CAACD;MAAM,CAAC;IAAE,CACjE;EAAC,CACE,CAAC;AAEX,CAAC;AAED,eAAed,OAAO;AAEtB,MAAMG,MAAM,GAAGP,UAAU,CAACoB,MAAM,CAAC;EAC/BZ,IAAI,EAAE;IACJA,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["View","StyleSheet","Pdf","jsx","_jsx","PdfView","source","style","styles","container","children","onLoadComplete","pages","console","log","onPageChanged","page","onError","err","error","pdf","create","flex"],"sourceRoot":"../../../src","sources":["FileView/PdfView.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,OAAOC,GAAG,MAAM,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAanC,MAAMC,OAAO,GAAGA,CAAC;EAAEC;AAA2B,CAAC,KAAK;EAClD,IAAI,CAACA,MAAM,EAAE,oBAAOF,IAAA,CAACJ,IAAI,IAAE,CAAC;EAE5B,oBACEI,IAAA,CAACJ,IAAI;IAACO,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BN,IAAA,CAACF,GAAG;MACFI,MAAM,EAAEA,MAAO;MACfK,cAAc,EAAGC,KAAK,IAAKC,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAEF,KAAK,CAAE;MAClEG,aAAa,EAAGC,IAAI,IAAKH,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEE,IAAI,CAAE;MAC5DC,OAAO,EAAGC,GAAG,IAAKL,OAAO,CAACM,KAAK,CAACD,GAAG,CAAE;MACrCX,KAAK,EAAEC,MAAM,CAACY;IAAI,CACnB;EAAC,CACE,CAAC;AAEX,CAAC;AAED,eAAef,OAAO;AAEtB,MAAMG,MAAM,GAAGP,UAAU,CAACoB,MAAM,CAAC;EAC/BZ,SAAS,EAAE;IAAEa,IAAI,EAAE;EAAE,CAAC;EACtBF,GAAG,EAAE;IAAEE,IAAI,EAAE;EAAE;AACjB,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { createContext, useContext, useState } from 'react';
4
+ import LayoutWithFooter from "./LayoutWithFooter.js";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  const FooterContext = /*#__PURE__*/createContext(undefined);
6
7
  export const FooterProvider = ({
@@ -12,7 +13,9 @@ export const FooterProvider = ({
12
13
  footer,
13
14
  setFooter
14
15
  },
15
- children: children
16
+ children: /*#__PURE__*/_jsx(LayoutWithFooter, {
17
+ children: children
18
+ })
16
19
  });
17
20
  };
18
21
  export const useFooter = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useState","jsx","_jsx","FooterContext","undefined","FooterProvider","children","footer","setFooter","Provider","value","useFooter","context","Error"],"sourceRoot":"../../../src","sources":["Provider/FooterProvider.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAwB,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO5E,MAAMC,aAAa,gBAAGL,aAAa,CAAgCM,SAAS,CAAC;AAE7E,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAAEC;AAAkC,CAAC,KAAK;EACvE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGR,QAAQ,CAAmB,IAAI,CAAC;EAE5D,oBACEE,IAAA,CAACC,aAAa,CAACM,QAAQ;IAACC,KAAK,EAAE;MAAEH,MAAM;MAAEC;IAAU,CAAE;IAAAF,QAAA,EAClDA;EAAQ,CACa,CAAC;AAE7B,CAAC;AAED,OAAO,MAAMK,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAMC,OAAO,GAAGb,UAAU,CAACI,aAAa,CAAC;EACzC,IAAI,CAACS,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useState","LayoutWithFooter","jsx","_jsx","FooterContext","undefined","FooterProvider","children","footer","setFooter","Provider","value","useFooter","context","Error"],"sourceRoot":"../../../src","sources":["Provider/FooterProvider.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAwB,OAAO;AAC3E,OAAOC,gBAAgB,MAAM,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOlD,MAAMC,aAAa,gBAAGN,aAAa,CAAgCO,SAAS,CAAC;AAE7E,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAAEC;AAAkC,CAAC,KAAK;EACvE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGT,QAAQ,CAAmB,IAAI,CAAC;EAE5D,oBACEG,IAAA,CAACC,aAAa,CAACM,QAAQ;IAACC,KAAK,EAAE;MAAEH,MAAM;MAAEC;IAAU,CAAE;IAAAF,QAAA,eACnDJ,IAAA,CAACF,gBAAgB;MAAAM,QAAA,EAAEA;IAAQ,CAAmB;EAAC,CACzB,CAAC;AAE7B,CAAC;AAED,OAAO,MAAMK,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAMC,OAAO,GAAGd,UAAU,CAACK,aAAa,CAAC;EACzC,IAAI,CAACS,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { View, StyleSheet, TouchableWithoutFeedback, Keyboard } from 'react-native';
4
- import { useState, useEffect } from 'react';
4
+ import { useState, useCallback } from 'react';
5
5
  import BottomSheet from "../BottomSheet/BottomSheet.js";
6
6
  import Button from "../Button/Button.js";
7
7
  import Input from "../Input/Input.js";
@@ -22,25 +22,30 @@ export default function Select({
22
22
  delaySearch = 300,
23
23
  height,
24
24
  onRefresh,
25
- refreshing
25
+ refreshing,
26
+ footer,
27
+ onEndReached
26
28
  }) {
27
- const [isOpenSelect, setIsOpenSelect] = useState(false);
29
+ // const [isOpenSelect, setIsOpenSelect] = useState<boolean | undefined>(false);
28
30
  const [selected, setSelected] = useState();
29
31
  const {
30
32
  show
31
33
  } = useToast();
32
- useEffect(() => {
33
- setIsOpenSelect(isOpen);
34
- }, [isOpen]);
35
- const handleOnCloseBottom = val => {
36
- onClose?.(val);
37
- };
34
+ // useEffect(() => {
35
+ // setIsOpenSelect(isOpen);
36
+ // }, [isOpen]);
37
+
38
+ const handleOnCloseBottom = useCallback(val => {
39
+ if (onClose) {
40
+ onClose?.(val);
41
+ }
42
+ }, [onClose]);
38
43
  const handleOnPresSubmitSelect = () => {
39
44
  if (required && (!selected || selected.length === 0)) {
40
45
  show('Please fill a item');
41
46
  return false;
42
47
  }
43
- setIsOpenSelect(false);
48
+ // setIsOpenSelect(false);
44
49
  onSubmit?.(selected ? selected : []);
45
50
  return true;
46
51
  };
@@ -50,8 +55,8 @@ export default function Select({
50
55
  }, delaySearch);
51
56
  };
52
57
  return /*#__PURE__*/_jsx(BottomSheet, {
53
- onClose: handleOnCloseBottom,
54
- isOpen: isOpenSelect,
58
+ onClose: val => handleOnCloseBottom(val),
59
+ isOpen: isOpen,
55
60
  height: height,
56
61
  footer: /*#__PURE__*/_jsx(Button, {
57
62
  title: "lanjutkan",
@@ -79,12 +84,14 @@ export default function Select({
79
84
  selected: selected,
80
85
  multiple: multiple,
81
86
  onSelect: setSelected,
87
+ onEndReached: onEndReached,
82
88
  color: "primary",
83
89
  size: "large",
84
90
  renderItem: renderItem,
85
91
  onRefresh: onRefresh,
86
92
  block: true,
87
- refreshing: refreshing
93
+ refreshing: refreshing,
94
+ footer: footer
88
95
  })]
89
96
  })
90
97
  });
@@ -1 +1 @@
1
- {"version":3,"names":["View","StyleSheet","TouchableWithoutFeedback","Keyboard","useState","useEffect","BottomSheet","Button","Input","Chip","useToast","Loading","jsx","_jsx","jsxs","_jsxs","Select","isOpen","data","renderItem","onClose","onSubmit","multiple","onSearch","required","loading","delaySearch","height","onRefresh","refreshing","isOpenSelect","setIsOpenSelect","selected","setSelected","show","handleOnCloseBottom","val","handleOnPresSubmitSelect","length","handleOnSearch","setTimeout","footer","title","color","onPress","children","style","styles","container","containerSearch","dismiss","accessible","submitBehavior","icon","placeholder","onChangeText","options","direction","scrollable","onSelect","size","block","create","marginBottom","gap","padding"],"sourceRoot":"../../../src","sources":["Select/Select.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","StyleSheet","TouchableWithoutFeedback","Keyboard","useState","useCallback","BottomSheet","Button","Input","Chip","useToast","Loading","jsx","_jsx","jsxs","_jsxs","Select","isOpen","data","renderItem","onClose","onSubmit","multiple","onSearch","required","loading","delaySearch","height","onRefresh","refreshing","footer","onEndReached","selected","setSelected","show","handleOnCloseBottom","val","handleOnPresSubmitSelect","length","handleOnSearch","setTimeout","title","color","onPress","children","style","styles","container","containerSearch","dismiss","accessible","submitBehavior","icon","placeholder","onChangeText","options","direction","scrollable","onSelect","size","block","create","marginBottom","gap","padding"],"sourceRoot":"../../../src","sources":["Select/Select.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import { View } from 'react-native';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- const TabItem = () => {
6
- return /*#__PURE__*/_jsx(View, {});
7
- };
3
+ const TabItem = _props => null;
8
4
  export default TabItem;
9
5
  //# sourceMappingURL=TabItem.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","jsx","_jsx","TabItem"],"sourceRoot":"../../../src","sources":["Tab/TabItem.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpC,MAAMC,OAAO,GAAGA,CAAA,KAAM;EACpB,oBAAOD,IAAA,CAACF,IAAI,IAAO,CAAC;AACtB,CAAC;AACD,eAAeG,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["TabItem","_props"],"sourceRoot":"../../../src","sources":["Tab/TabItem.tsx"],"mappings":";;AAGA,MAAMA,OAA+B,GAAIC,MAAM,IAAK,IAAI;AACxD,eAAeD,OAAO","ignoreList":[]}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect } from 'react';
4
- import { StyleSheet, SafeAreaView } from 'react-native';
5
- import Color from "../Color/Color.js";
3
+ // Footer.tsx
4
+ import React, { useMemo } from 'react';
5
+ import { SafeAreaView, StyleSheet } from 'react-native';
6
6
  import { useFooter } from "../Provider/Provider.js";
7
+ import Color from "../Color/Color.js";
8
+ import { useOptionalFocusEffect } from "../hooks/useOptionalFocusEffect.js";
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
8
10
  const Footer = ({
9
11
  children,
@@ -12,14 +14,14 @@ const Footer = ({
12
14
  const {
13
15
  setFooter
14
16
  } = useFooter();
15
- useEffect(() => {
16
- const footerElement = /*#__PURE__*/_jsx(SafeAreaView, {
17
- style: [styles.container, style],
18
- children: children
19
- });
17
+ const footerElement = useMemo(() => /*#__PURE__*/_jsx(SafeAreaView, {
18
+ style: [styles.container, style],
19
+ children: children
20
+ }), [children, style]);
21
+ useOptionalFocusEffect(() => {
20
22
  setFooter(footerElement);
21
23
  return () => setFooter(null);
22
- }, [children, style, setFooter]);
24
+ });
23
25
  return null;
24
26
  };
25
27
  export default Footer;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","StyleSheet","SafeAreaView","Color","useFooter","jsx","_jsx","Footer","children","style","setFooter","footerElement","styles","container","create","backgroundColor","base","white100","position","bottom","left","right","zIndex"],"sourceRoot":"../../../src","sources":["Ui/Footer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAEvD,OAAOC,KAAK,MAAM,mBAAgB;AAClC,SAASC,SAAS,QAAQ,yBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMjD,MAAMC,MAA6B,GAAGA,CAAC;EAAEC,QAAQ;EAAEC;AAAM,CAAC,KAAK;EAC7D,MAAM;IAAEC;EAAU,CAAC,GAAGN,SAAS,CAAC,CAAC;EAEjCJ,SAAS,CAAC,MAAM;IACd,MAAMW,aAAa,gBACjBL,IAAA,CAACJ,YAAY;MAACO,KAAK,EAAE,CAACG,MAAM,CAACC,SAAS,EAAEJ,KAAK,CAAE;MAAAD,QAAA,EAAEA;IAAQ,CAAe,CACzE;IACDE,SAAS,CAACC,aAAa,CAAC;IAExB,OAAO,MAAMD,SAAS,CAAC,IAAI,CAAC;EAC9B,CAAC,EAAE,CAACF,QAAQ,EAAEC,KAAK,EAAEC,SAAS,CAAC,CAAC;EAEhC,OAAO,IAAI;AACb,CAAC;AAED,eAAeH,MAAM;AAErB,MAAMK,MAAM,GAAGX,UAAU,CAACa,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,eAAe,EAAEZ,KAAK,CAACa,IAAI,CAACC,QAAQ;IACpCC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","SafeAreaView","StyleSheet","useFooter","Color","useOptionalFocusEffect","jsx","_jsx","Footer","children","style","setFooter","footerElement","styles","container","create","backgroundColor","base","white100","position","bottom","left","right","zIndex"],"sourceRoot":"../../../src","sources":["Ui/Footer.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,YAAY,EAAEC,UAAU,QAAwB,cAAc;AACvE,SAASC,SAAS,QAAQ,yBAAsB;AAChD,OAAOC,KAAK,MAAM,mBAAgB;AAClC,SAASC,sBAAsB,QAAQ,oCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOzE,MAAMC,MAA6B,GAAGA,CAAC;EAAEC,QAAQ;EAAEC;AAAM,CAAC,KAAK;EAC7D,MAAM;IAAEC;EAAU,CAAC,GAAGR,SAAS,CAAC,CAAC;EAEjC,MAAMS,aAAa,GAAGZ,OAAO,CAC3B,mBACEO,IAAA,CAACN,YAAY;IAACS,KAAK,EAAE,CAACG,MAAM,CAACC,SAAS,EAAEJ,KAAK,CAAE;IAAAD,QAAA,EAAEA;EAAQ,CAAe,CACzE,EACD,CAACA,QAAQ,EAAEC,KAAK,CAClB,CAAC;EAEDL,sBAAsB,CAAC,MAAM;IAC3BM,SAAS,CAACC,aAAa,CAAC;IACxB,OAAO,MAAMD,SAAS,CAAC,IAAI,CAAC;EAC9B,CAAC,CAAC;EAEF,OAAO,IAAI;AACb,CAAC;AAED,eAAeH,MAAM;AAErB,MAAMK,MAAM,GAAGX,UAAU,CAACa,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,eAAe,EAAEZ,KAAK,CAACa,IAAI,CAACC,QAAQ;IACpCC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ // src/hooks/useOptionalFocusEffect.ts
4
+ import { useContext, useEffect, useCallback } from 'react';
5
+ import { NavigationContext, useFocusEffect } from '@react-navigation/native';
6
+ export function useOptionalFocusEffect(callback) {
7
+ const navigation = useContext(NavigationContext);
8
+ const effect = useCallback(callback, [callback]);
9
+
10
+ // eslint-disable-next-line react-hooks/rules-of-hooks
11
+ if (navigation) {
12
+ // eslint-disable-next-line react-hooks/rules-of-hooks
13
+ useFocusEffect(effect);
14
+ } else {
15
+ // eslint-disable-next-line react-hooks/rules-of-hooks
16
+ useEffect(() => effect(), [effect]);
17
+ }
18
+ }
19
+ //# sourceMappingURL=useOptionalFocusEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useContext","useEffect","useCallback","NavigationContext","useFocusEffect","useOptionalFocusEffect","callback","navigation","effect"],"sourceRoot":"../../../src","sources":["hooks/useOptionalFocusEffect.ts"],"mappings":";;AAAA;AACA,SAASA,UAAU,EAAEC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AAC1D,SAASC,iBAAiB,EAAEC,cAAc,QAAQ,0BAA0B;AAE5E,OAAO,SAASC,sBAAsBA,CAACC,QAAmC,EAAE;EAC1E,MAAMC,UAAU,GAAGP,UAAU,CAACG,iBAAiB,CAAC;EAEhD,MAAMK,MAAM,GAAGN,WAAW,CAACI,QAAQ,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEhD;EACA,IAAIC,UAAU,EAAE;IACd;IACAH,cAAc,CAACI,MAAM,CAAC;EACxB,CAAC,MAAM;IACL;IACAP,SAAS,CAAC,MAAMO,MAAM,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EACrC;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../../../src/Chip/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAEL,KAAK,SAAS,EAGf,MAAM,QAAQ,CAAC;AAGhB,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA8F7B,CAAC;AA6BF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../../../src/Chip/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAEL,KAAK,SAAS,EAGf,MAAM,QAAQ,CAAC;AAGhB,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAgG7B,CAAC;AAiCF,eAAe,IAAI,CAAC"}
@@ -45,6 +45,8 @@ export interface ChipProps {
45
45
  size?: ChipSizeProps;
46
46
  renderItem?: ChipRenderItemFn;
47
47
  onRefresh?: () => void;
48
+ onEndReached?: () => void;
48
49
  refreshing?: boolean;
50
+ footer?: React.ReactElement;
49
51
  }
50
52
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Chip/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,gBAAgB,EAChB;IACE,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,UAAU,CAAC;IACxB,uBAAuB,EAAE,UAAU,CAAC;IACpC,mBAAmB,EAAE,UAAU,CAAC;IAChC,iBAAiB,EAAE,UAAU,CAAC;IAC9B,uBAAuB,EAAE,UAAU,CAAC;IACpC,mBAAmB,EAAE,UAAU,CAAC;IAChC,iBAAiB,EAAE,UAAU,CAAC;CAC/B,CA0FF,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AACD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,SAAS,EAAE,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,KACd,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACxC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjE;AACD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Chip/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,gBAAgB,EAChB;IACE,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,UAAU,CAAC;IACxB,uBAAuB,EAAE,UAAU,CAAC;IACpC,mBAAmB,EAAE,UAAU,CAAC;IAChC,iBAAiB,EAAE,UAAU,CAAC;IAC9B,uBAAuB,EAAE,UAAU,CAAC;IACpC,mBAAmB,EAAE,UAAU,CAAC;IAChC,iBAAiB,EAAE,UAAU,CAAC;CAC/B,CA0FF,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AACD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,SAAS,EAAE,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,KACd,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACxC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjE;AACD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAC7B"}
@@ -1,6 +1,8 @@
1
1
  interface DrawingProps {
2
- onDraw?: (value?: string | undefined) => void;
2
+ onChange?: (value?: string | undefined | null) => void;
3
+ onStart?: () => void;
4
+ onEnd?: () => void;
3
5
  }
4
- declare const Drawing: ({ onDraw }: DrawingProps) => import("react/jsx-runtime").JSX.Element;
6
+ declare const Drawing: ({ onChange, onEnd, onStart }: DrawingProps) => import("react/jsx-runtime").JSX.Element;
5
7
  export default Drawing;
6
8
  //# sourceMappingURL=Drawing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Drawing.d.ts","sourceRoot":"","sources":["../../../../src/Drawing/Drawing.tsx"],"names":[],"mappings":"AAOA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC/C;AAED,QAAA,MAAM,OAAO,GAAI,YAAY,YAAY,4CAyExC,CAAC;AA0BF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Drawing.d.ts","sourceRoot":"","sources":["../../../../src/Drawing/Drawing.tsx"],"names":[],"mappings":"AASA,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,QAAA,MAAM,OAAO,GAAI,8BAA8B,YAAY,4CAgG1D,CAAC;AA0BF,eAAe,OAAO,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Drawing/type.tsx"],"names":[],"mappings":""}
@@ -1,5 +1,15 @@
1
+ type Source = {
2
+ uri?: string;
3
+ headers?: {
4
+ [key: string]: string;
5
+ };
6
+ cache?: boolean;
7
+ cacheFileName?: string;
8
+ expiration?: number;
9
+ method?: string;
10
+ };
1
11
  declare const PdfView: ({ source }: {
2
- source?: null | undefined;
12
+ source: Source;
3
13
  }) => import("react/jsx-runtime").JSX.Element;
4
14
  export default PdfView;
5
15
  //# sourceMappingURL=PdfView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PdfView.d.ts","sourceRoot":"","sources":["../../../../src/FileView/PdfView.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,OAAO,GAAI;;CAAiB,4CAqBjC,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"PdfView.d.ts","sourceRoot":"","sources":["../../../../src/FileView/PdfView.tsx"],"names":[],"mappings":"AAGA,KAAK,MAAM,GAAG;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,OAAO,GAAI,YAAY;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,4CAc9C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FooterProvider.d.ts","sourceRoot":"","sources":["../../../../src/Provider/FooterProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5E,UAAU,iBAAiB;IACzB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;AAID,eAAO,MAAM,cAAc,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAQnE,CAAC;AAEF,eAAO,MAAM,SAAS,yBAMrB,CAAC"}
1
+ {"version":3,"file":"FooterProvider.d.ts","sourceRoot":"","sources":["../../../../src/Provider/FooterProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5E,UAAU,iBAAiB;IACzB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;AAID,eAAO,MAAM,cAAc,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAQnE,CAAC;AAEF,eAAO,MAAM,SAAS,yBAMrB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { type SelectProps } from './type';
2
- export default function Select({ isOpen, data, renderItem, onClose, onSubmit, multiple, onSearch, required, loading, delaySearch, height, onRefresh, refreshing, }: SelectProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function Select({ isOpen, data, renderItem, onClose, onSubmit, multiple, onSearch, required, loading, delaySearch, height, onRefresh, refreshing, footer, onEndReached, }: SelectProps): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/Select/Select.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAQ1C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,OAAe,EACf,WAAiB,EACjB,MAAM,EACN,SAAS,EACT,UAAU,GACX,EAAE,WAAW,2CA2Eb"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/Select/Select.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAQ1C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,OAAe,EACf,WAAiB,EACjB,MAAM,EACN,SAAS,EACT,UAAU,EACV,MAAM,EACN,YAAY,GACb,EAAE,WAAW,2CAkFb"}
@@ -19,6 +19,8 @@ export interface SelectProps {
19
19
  delaySearch?: number;
20
20
  height?: BottomSheetHeighProps;
21
21
  onRefresh?: () => void;
22
+ onEndReached?: () => void;
22
23
  refreshing?: boolean;
24
+ footer?: React.ReactElement;
23
25
  }
24
26
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Select/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,KACd,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Select/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,KACd,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAC7B"}
@@ -1,3 +1,5 @@
1
- declare const TabItem: () => import("react/jsx-runtime").JSX.Element;
1
+ import type { TabItemProps } from './type';
2
+ import React from 'react';
3
+ declare const TabItem: React.FC<TabItemProps>;
2
4
  export default TabItem;
3
5
  //# sourceMappingURL=TabItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabItem.d.ts","sourceRoot":"","sources":["../../../../src/Tab/TabItem.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,OAAO,+CAEZ,CAAC;AACF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"TabItem.d.ts","sourceRoot":"","sources":["../../../../src/Tab/TabItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAoB,CAAC;AACzD,eAAe,OAAO,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { ViewStyle } from 'react-native';
2
+ import { type ViewStyle } from 'react-native';
3
3
  interface FooterProps {
4
4
  children: React.ReactNode;
5
5
  style?: ViewStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../../src/Ui/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,UAAU,WAAW;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AACD,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAajC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../../src/Ui/Footer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKxE,UAAU,WAAW;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAgBjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function useOptionalFocusEffect(callback: () => void | (() => void)): void;
2
+ //# sourceMappingURL=useOptionalFocusEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOptionalFocusEffect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useOptionalFocusEffect.ts"],"names":[],"mappings":"AAIA,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,QAazE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herca/rn-kit",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "React Native UI Kit",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
package/src/Chip/Chip.tsx CHANGED
@@ -22,6 +22,8 @@ const Chip: React.FC<ChipProps> = ({
22
22
  size = 'medium',
23
23
  onRefresh,
24
24
  refreshing = false,
25
+ onEndReached,
26
+ footer,
25
27
  }) => {
26
28
  const isHorizontal = direction === 'horizontal';
27
29
 
@@ -85,6 +87,7 @@ const Chip: React.FC<ChipProps> = ({
85
87
  )}
86
88
  keyExtractor={(item) => String(item.value)}
87
89
  horizontal={isHorizontal}
90
+ onEndReached={onEndReached}
88
91
  onRefresh={onRefresh}
89
92
  refreshing={refreshing}
90
93
  scrollEnabled={scrollable}
@@ -97,9 +100,8 @@ const Chip: React.FC<ChipProps> = ({
97
100
  alignItems: block ? 'stretch' : 'flex-start',
98
101
  },
99
102
  ]}
100
- columnWrapperStyle={
101
- numColumns > 1 ? { gap: 8, flexWrap: 'wrap' } : undefined
102
- }
103
+ columnWrapperStyle={numColumns > 1 ? styles.wrapperStyle : undefined}
104
+ ListFooterComponent={footer}
103
105
  />
104
106
  );
105
107
  };
@@ -108,6 +110,10 @@ const styles = StyleSheet.create({
108
110
  container: {
109
111
  gap: 8,
110
112
  },
113
+ wrapperStyle: {
114
+ gap: 8,
115
+ flexWrap: 'wrap',
116
+ },
111
117
  chip: {
112
118
  borderRadius: 8,
113
119
  borderWidth: 1,
package/src/Chip/type.tsx CHANGED
@@ -148,5 +148,7 @@ export interface ChipProps {
148
148
  size?: ChipSizeProps;
149
149
  renderItem?: ChipRenderItemFn;
150
150
  onRefresh?: () => void;
151
+ onEndReached?: () => void;
151
152
  refreshing?: boolean;
153
+ footer?: React.ReactElement;
152
154
  }
@@ -1,51 +1,78 @@
1
1
  import { useRef } from 'react';
2
2
  import { StyleSheet, View, TouchableOpacity } from 'react-native';
3
- import SignatureCanvas, { type SignatureViewRef } from 'react-native-signature-canvas';
3
+ import SignatureCanvas, {
4
+ type SignatureViewRef,
5
+ } from 'react-native-signature-canvas';
4
6
  import Icon from '../Icon';
5
7
  import Button from '../Button/Button';
6
8
  import Color from '../Color/Color';
7
9
 
8
10
  interface DrawingProps {
9
- onDraw?: (value?: string | undefined) => void;
11
+ onChange?: (value?: string | undefined | null) => void;
12
+ onStart?: () => void;
13
+ onEnd?: () => void;
10
14
  }
11
15
 
12
- const Drawing = ({ onDraw }: DrawingProps) => {
16
+ const Drawing = ({ onChange, onEnd, onStart }: DrawingProps) => {
13
17
  const ref = useRef<SignatureViewRef | null>(null);
14
18
 
15
- const handleSignature = (signature : string) => {
16
- if (signature && onDraw) {
17
- onDraw(signature);
19
+ const handleSignature = (signature: string) => {
20
+ if (signature && onChange) {
21
+ onChange(signature);
18
22
  }
19
23
  };
20
24
 
21
- const handleEmpty = () => {
22
- console.log('Signature is empty');
23
- };
25
+ const refreshSignature = () =>
26
+ requestAnimationFrame(() => ref.current?.readSignature());
24
27
 
25
- const handleClear = () => {
26
- console.log('Signature cleared');
28
+ const handleEmpty = () => {
29
+ if (onChange) {
30
+ onChange(null);
31
+ }
27
32
  };
28
33
 
29
- const handleError = (error : Error) => {
34
+ const handleError = (error: Error) => {
30
35
  console.error('Signature pad error:', error);
31
36
  };
32
37
 
33
38
  const handleEnd = () => {
34
- ref.current?.readSignature();
39
+ refreshSignature();
40
+ if (onEnd) {
41
+ onEnd();
42
+ }
43
+ };
44
+
45
+ const handleBegin = () => {
46
+ if (onStart) {
47
+ onStart();
48
+ }
49
+ };
50
+
51
+ const undo = () => {
52
+ ref.current?.undo();
53
+ refreshSignature();
35
54
  };
36
55
 
37
- const undo = () => ref.current?.undo();
38
- const redo = () => ref.current?.redo();
39
- const clear = () => ref.current?.clearSignature();
56
+ const redo = () => {
57
+ ref.current?.redo();
58
+ refreshSignature();
59
+ };
60
+
61
+ const clear = () => {
62
+ ref.current?.clearSignature();
63
+ if (onChange) {
64
+ onChange(null);
65
+ }
66
+ };
40
67
 
41
68
  return (
42
69
  <View style={styles.container}>
43
70
  <SignatureCanvas
44
71
  ref={ref}
45
72
  onEnd={handleEnd}
73
+ onBegin={handleBegin}
46
74
  onOK={handleSignature}
47
75
  onEmpty={handleEmpty}
48
- onClear={handleClear}
49
76
  onError={handleError}
50
77
  descriptionText=" "
51
78
  webStyle={`
@@ -0,0 +1,31 @@
1
+ ## Contoh
2
+
3
+ ```tsx
4
+ import React, { useState } from 'react';
5
+ import { View, Image } from 'react-native';
6
+ import Drawing from './components/Drawing/Drawing';
7
+
8
+ export default function SignatureForm() {
9
+ const [result, setResult] = useState<string | undefined>();
10
+
11
+ return (
12
+ <View style={{ flex: 1, padding: 16 }}>
13
+ <Drawing onDraw={setResult} />
14
+
15
+ {result && (
16
+ <Image
17
+ source={{ uri: result }}
18
+ style={{ width: 300, height: 100, marginTop: 24 }}
19
+ resizeMode="contain"
20
+ />
21
+ )}
22
+ </View>
23
+ );
24
+ }
25
+ ```
26
+
27
+ ## props
28
+
29
+ | Prop | Tipe | Default | Deskripsi |
30
+ | -------- | -------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------- |
31
+ | `onDraw` | `(value?: string \| undefined) ⇒ void` | `undefined` | Callback berisi tanda tangan **base64** saat pengguna menggambar (dipicu otomatis di `onDraw`). |
File without changes
@@ -1,24 +1,28 @@
1
- import { View, Dimensions, StyleSheet } from 'react-native';
1
+ import { View, StyleSheet } from 'react-native';
2
2
  import Pdf from 'react-native-pdf';
3
3
 
4
- const PdfView = ({ source = null }) => {
5
- if (!source) {
6
- return <View></View>;
7
- }
4
+ type Source = {
5
+ uri?: string;
6
+ headers?: {
7
+ [key: string]: string;
8
+ };
9
+ cache?: boolean;
10
+ cacheFileName?: string;
11
+ expiration?: number;
12
+ method?: string;
13
+ };
14
+
15
+ const PdfView = ({ source }: { source: Source }) => {
16
+ if (!source) return <View />;
17
+
8
18
  return (
9
- <View style={styles.flex}>
19
+ <View style={styles.container}>
10
20
  <Pdf
11
21
  source={source}
12
- onLoadComplete={(numberOfPages) => {
13
- console.log(`number of pages: ${numberOfPages}`);
14
- }}
15
- onPageChanged={(page) => {
16
- console.log(`current page: ${page}`);
17
- }}
18
- onError={(error) => {
19
- console.log(error);
20
- }}
21
- style={[styles.flex, { width: Dimensions.get('window').width }]}
22
+ onLoadComplete={(pages) => console.log('number of pages:', pages)}
23
+ onPageChanged={(page) => console.log('current page:', page)}
24
+ onError={(err) => console.error(err)}
25
+ style={styles.pdf}
22
26
  />
23
27
  </View>
24
28
  );
@@ -27,7 +31,6 @@ const PdfView = ({ source = null }) => {
27
31
  export default PdfView;
28
32
 
29
33
  const styles = StyleSheet.create({
30
- flex: {
31
- flex: 1,
32
- },
34
+ container: { flex: 1 },
35
+ pdf: { flex: 1 },
33
36
  });
@@ -1,4 +1,5 @@
1
1
  import { createContext, useContext, useState, type ReactNode } from 'react';
2
+ import LayoutWithFooter from './LayoutWithFooter';
2
3
 
3
4
  interface FooterContextType {
4
5
  footer: ReactNode | null;
@@ -12,7 +13,7 @@ export const FooterProvider = ({ children }: { children: ReactNode }) => {
12
13
 
13
14
  return (
14
15
  <FooterContext.Provider value={{ footer, setFooter }}>
15
- {children}
16
+ <LayoutWithFooter>{children}</LayoutWithFooter>
16
17
  </FooterContext.Provider>
17
18
  );
18
19
  };
@@ -4,7 +4,7 @@ import {
4
4
  TouchableWithoutFeedback,
5
5
  Keyboard,
6
6
  } from 'react-native';
7
- import { useState, useEffect } from 'react';
7
+ import { useState, useCallback } from 'react';
8
8
  import { type SelectProps } from './type';
9
9
  import BottomSheet from '../BottomSheet/BottomSheet';
10
10
  import Button from '../Button/Button';
@@ -27,24 +27,31 @@ export default function Select({
27
27
  height,
28
28
  onRefresh,
29
29
  refreshing,
30
+ footer,
31
+ onEndReached,
30
32
  }: SelectProps) {
31
- const [isOpenSelect, setIsOpenSelect] = useState<boolean | undefined>(false);
33
+ // const [isOpenSelect, setIsOpenSelect] = useState<boolean | undefined>(false);
32
34
  const [selected, setSelected] = useState<ChipSelectedProps>();
33
35
  const { show } = useToast();
34
- useEffect(() => {
35
- setIsOpenSelect(isOpen);
36
- }, [isOpen]);
36
+ // useEffect(() => {
37
+ // setIsOpenSelect(isOpen);
38
+ // }, [isOpen]);
37
39
 
38
- const handleOnCloseBottom = (val: boolean) => {
39
- onClose?.(val);
40
- };
40
+ const handleOnCloseBottom = useCallback(
41
+ (val: boolean) => {
42
+ if (onClose) {
43
+ onClose?.(val);
44
+ }
45
+ },
46
+ [onClose]
47
+ );
41
48
 
42
49
  const handleOnPresSubmitSelect = (): boolean => {
43
50
  if (required && (!selected || selected.length === 0)) {
44
51
  show('Please fill a item');
45
52
  return false;
46
53
  }
47
- setIsOpenSelect(false);
54
+ // setIsOpenSelect(false);
48
55
  onSubmit?.(selected ? selected : []);
49
56
  return true;
50
57
  };
@@ -56,8 +63,8 @@ export default function Select({
56
63
  };
57
64
  return (
58
65
  <BottomSheet
59
- onClose={handleOnCloseBottom}
60
- isOpen={isOpenSelect}
66
+ onClose={(val: boolean) => handleOnCloseBottom(val)}
67
+ isOpen={isOpen}
61
68
  height={height}
62
69
  footer={
63
70
  <Button
@@ -91,12 +98,14 @@ export default function Select({
91
98
  selected={selected}
92
99
  multiple={multiple}
93
100
  onSelect={setSelected}
101
+ onEndReached={onEndReached}
94
102
  color="primary"
95
103
  size="large"
96
104
  renderItem={renderItem}
97
105
  onRefresh={onRefresh}
98
106
  block
99
107
  refreshing={refreshing}
108
+ footer={footer}
100
109
  />
101
110
  )}
102
111
  </View>
@@ -26,5 +26,7 @@ export interface SelectProps {
26
26
  delaySearch?: number;
27
27
  height?: BottomSheetHeighProps;
28
28
  onRefresh?: () => void;
29
+ onEndReached?: () => void;
29
30
  refreshing?: boolean;
31
+ footer?: React.ReactElement;
30
32
  }
@@ -1,6 +1,5 @@
1
- import { View } from 'react-native';
1
+ import type { TabItemProps } from './type';
2
+ import React from 'react';
2
3
 
3
- const TabItem = () => {
4
- return <View></View>;
5
- };
4
+ const TabItem: React.FC<TabItemProps> = (_props) => null;
6
5
  export default TabItem;
package/src/Ui/Footer.tsx CHANGED
@@ -1,24 +1,29 @@
1
- import React, { useEffect } from 'react';
2
- import { StyleSheet, SafeAreaView } from 'react-native';
3
- import type { ViewStyle } from 'react-native';
4
- import Color from '../Color/Color';
1
+ // Footer.tsx
2
+ import React, { useMemo } from 'react';
3
+ import { SafeAreaView, StyleSheet, type ViewStyle } from 'react-native';
5
4
  import { useFooter } from '../Provider/Provider';
5
+ import Color from '../Color/Color';
6
+ import { useOptionalFocusEffect } from '../hooks/useOptionalFocusEffect';
6
7
 
7
8
  interface FooterProps {
8
9
  children: React.ReactNode;
9
10
  style?: ViewStyle;
10
11
  }
12
+
11
13
  const Footer: React.FC<FooterProps> = ({ children, style }) => {
12
14
  const { setFooter } = useFooter();
13
15
 
14
- useEffect(() => {
15
- const footerElement = (
16
+ const footerElement = useMemo(
17
+ () => (
16
18
  <SafeAreaView style={[styles.container, style]}>{children}</SafeAreaView>
17
- );
18
- setFooter(footerElement);
19
+ ),
20
+ [children, style]
21
+ );
19
22
 
23
+ useOptionalFocusEffect(() => {
24
+ setFooter(footerElement);
20
25
  return () => setFooter(null);
21
- }, [children, style, setFooter]);
26
+ });
22
27
 
23
28
  return null;
24
29
  };
@@ -0,0 +1,18 @@
1
+ // src/hooks/useOptionalFocusEffect.ts
2
+ import { useContext, useEffect, useCallback } from 'react';
3
+ import { NavigationContext, useFocusEffect } from '@react-navigation/native';
4
+
5
+ export function useOptionalFocusEffect(callback: () => void | (() => void)) {
6
+ const navigation = useContext(NavigationContext);
7
+
8
+ const effect = useCallback(callback, [callback]);
9
+
10
+ // eslint-disable-next-line react-hooks/rules-of-hooks
11
+ if (navigation) {
12
+ // eslint-disable-next-line react-hooks/rules-of-hooks
13
+ useFocusEffect(effect);
14
+ } else {
15
+ // eslint-disable-next-line react-hooks/rules-of-hooks
16
+ useEffect(() => effect(), [effect]);
17
+ }
18
+ }