@herca/rn-kit 0.1.31 → 0.1.33

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 (43) hide show
  1. package/README.md +5 -3
  2. package/lib/module/Chip/Chip.js +17 -7
  3. package/lib/module/Chip/Chip.js.map +1 -1
  4. package/lib/module/Chip/ChipItem.js +3 -1
  5. package/lib/module/Chip/ChipItem.js.map +1 -1
  6. package/lib/module/Chip/README_CHIP_ITEM.md +73 -0
  7. package/lib/module/Select/README.md +26 -17
  8. package/lib/module/Select/Select.js +42 -30
  9. package/lib/module/Select/Select.js.map +1 -1
  10. package/lib/module/Skeleton/README.md +79 -0
  11. package/lib/module/Skeleton/Skeleton.js +73 -0
  12. package/lib/module/Skeleton/Skeleton.js.map +1 -0
  13. package/lib/module/Skeleton/type.js +4 -0
  14. package/lib/module/Skeleton/type.js.map +1 -0
  15. package/lib/module/index.js +3 -0
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/typescript/src/Chip/Chip.d.ts.map +1 -1
  18. package/lib/typescript/src/Chip/ChipItem.d.ts +1 -1
  19. package/lib/typescript/src/Chip/ChipItem.d.ts.map +1 -1
  20. package/lib/typescript/src/Chip/type.d.ts +2 -1
  21. package/lib/typescript/src/Chip/type.d.ts.map +1 -1
  22. package/lib/typescript/src/Select/Select.d.ts +1 -1
  23. package/lib/typescript/src/Select/Select.d.ts.map +1 -1
  24. package/lib/typescript/src/Select/type.d.ts +2 -0
  25. package/lib/typescript/src/Select/type.d.ts.map +1 -1
  26. package/lib/typescript/src/Skeleton/Skeleton.d.ts +5 -0
  27. package/lib/typescript/src/Skeleton/Skeleton.d.ts.map +1 -0
  28. package/lib/typescript/src/Skeleton/type.d.ts +10 -0
  29. package/lib/typescript/src/Skeleton/type.d.ts.map +1 -0
  30. package/lib/typescript/src/index.d.ts +4 -0
  31. package/lib/typescript/src/index.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/Chip/Chip.tsx +19 -4
  34. package/src/Chip/ChipItem.tsx +2 -0
  35. package/src/Chip/README_CHIP_ITEM.md +73 -0
  36. package/src/Chip/type.tsx +2 -1
  37. package/src/Select/README.md +26 -17
  38. package/src/Select/Select.tsx +47 -34
  39. package/src/Select/type.tsx +2 -0
  40. package/src/Skeleton/README.md +79 -0
  41. package/src/Skeleton/Skeleton.tsx +99 -0
  42. package/src/Skeleton/type.ts +10 -0
  43. package/src/index.tsx +4 -0
@@ -1 +1 @@
1
- {"version":3,"names":["RnKit","multiply","a","b","default","Accordion","AccordionItem","Button","Color","Typography","BottomSheet","Container","Card","DropDown","Center","Gap","Grid","Col","Chip","Footer","Devider","Select","LabelForm","Input","InputPassword","InputFile","InputOtp","Switch","CheckBox","CheckBoxList","RadioButton","Icon","Modal","Label","List","ListItem","Loading","Avatar","AvatarGroup","Badge","Alert","Timeline","TimelineItem","Theme","Provider","useFooter","Drawing","Calendar","DatePicker","YearPicker","MonthPicker","TimePicker","Step","StepItem","Tab","TabItem","Toast","TextArea","TextEditor","ToastProvider","useToast"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RnKit","multiply","a","b","default","Accordion","AccordionItem","Button","Color","Typography","BottomSheet","Container","Card","DropDown","Center","Gap","Grid","Col","Chip","ChipItem","Footer","Devider","Select","LabelForm","Input","InputPassword","InputFile","InputOtp","Switch","CheckBox","CheckBoxList","RadioButton","Icon","Modal","Label","List","ListItem","Loading","Avatar","AvatarGroup","Badge","Alert","Timeline","TimelineItem","Theme","Provider","useFooter","Drawing","Calendar","DatePicker","YearPicker","MonthPicker","TimePicker","Step","StepItem","Tab","TabItem","Toast","TextArea","TextEditor","ToastProvider","useToast","Skeleton","CounterButton"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","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,CAqG7B,CAAC;AAkCF,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,CAqH7B,CAAC;AAiCF,eAAe,IAAI,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { type ChipItem } from './type';
2
- export default function ChipItem({ item, isSelected, color, block, size, renderItem, isHorizontal, onPress, }: ChipItem): import("react/jsx-runtime").JSX.Element;
2
+ export default function ChipItem({ item, isSelected, color, block, size, renderItem, isHorizontal, onPress, onLayout, }: ChipItem): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=ChipItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChipItem.d.ts","sourceRoot":"","sources":["../../../../src/Chip/ChipItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAwB,MAAM,QAAQ,CAAC;AAG7E,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,KAAiB,EACjB,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,OAAO,GACR,EAAE,QAAQ,2CAkFV"}
1
+ {"version":3,"file":"ChipItem.d.ts","sourceRoot":"","sources":["../../../../src/Chip/ChipItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAwB,MAAM,QAAQ,CAAC;AAG7E,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,KAAiB,EACjB,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,OAAO,EACP,QAAQ,GACT,EAAE,QAAQ,2CAmFV"}
@@ -1,4 +1,4 @@
1
- import type { ColorValue } from 'react-native';
1
+ import type { ColorValue, LayoutChangeEvent } from 'react-native';
2
2
  import type { ColorVariantType } from '../Color/type';
3
3
  export declare const CHIP_COLOR_MAP: Record<ColorVariantType, {
4
4
  backgroundColor: ColorValue;
@@ -31,6 +31,7 @@ export interface ChipItem {
31
31
  renderItem?: ChipRenderItemFn;
32
32
  isHorizontal?: boolean;
33
33
  onPress?: (isDisabled: boolean, value: ChipOptionProps) => void;
34
+ onLayout?: (event: LayoutChangeEvent) => void;
34
35
  }
35
36
  export interface ChipProps {
36
37
  options: ChipOptionProps[];
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Chip/type.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Chip/type.tsx"],"names":[],"mappings":"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"}
@@ -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, footer, header, onEndReached, submitBtnLabel, }: 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, header, onEndReached, submitBtnLabel, value, }: 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":"AAcA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAgB,EAChB,QAAQ,EACR,QAAgB,EAChB,OAAe,EACf,WAAiB,EACjB,MAAM,EACN,SAAS,EACT,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,EACZ,cAAc,GACf,EAAE,WAAW,2CAmHb"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/Select/Select.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAgB,EAChB,QAAQ,EACR,QAAgB,EAChB,OAAe,EACf,WAAiB,EACjB,MAAM,EACN,SAAS,EACT,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,EACZ,cAAc,EACd,KAAK,GACN,EAAE,WAAW,2CA4Hb"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ChipOnSelectProps, ChipOptionProps } from '../Chip/type';
3
3
  import type { BottomSheetHeighProps } from '../BottomSheet/type';
4
+ import type { ChipSelectedProps } from '../Chip/type';
4
5
  export interface SelectDataProps {
5
6
  value: string | number;
6
7
  label: string | number;
@@ -22,6 +23,7 @@ export interface SelectProps {
22
23
  onEndReached?: () => void;
23
24
  refreshing?: boolean;
24
25
  submitBtnLabel?: string;
26
+ value?: ChipSelectedProps;
25
27
  footer?: React.ComponentType<any> | React.ReactElement | null | undefined;
26
28
  header?: React.ComponentType<any> | React.ReactElement | null | undefined;
27
29
  }
@@ -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,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1E,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3E"}
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;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,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,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1E,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3E"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { SkeletonProps } from './type';
3
+ declare const Skeleton: React.FC<SkeletonProps>;
4
+ export default Skeleton;
5
+ //# sourceMappingURL=Skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAUjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwErC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { DimensionValue } from 'react-native';
2
+ export interface SkeletonProps {
3
+ width?: DimensionValue;
4
+ height?: DimensionValue;
5
+ rounded?: number;
6
+ backgroundColor?: string;
7
+ shimmerColor?: string;
8
+ duration?: number;
9
+ }
10
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Skeleton/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -16,6 +16,7 @@ export { default as Gap } from './Ui/Gap';
16
16
  export { default as Grid } from './Ui/Grid';
17
17
  export { default as Col } from './Ui/Col';
18
18
  export { default as Chip } from './Chip/Chip';
19
+ export { default as ChipItem } from './Chip/ChipItem';
19
20
  export type { ChipSelectedProps, ChipOnSelectProps, ChipOptionProps, } from './Chip/type';
20
21
  export { default as Footer } from './Ui/Footer';
21
22
  export { default as Devider } from './Ui/Devider';
@@ -62,4 +63,7 @@ export { default as Toast } from './Toast/Toast';
62
63
  export { default as TextArea } from './Input/TextArea';
63
64
  export { default as TextEditor } from './TextEditor/TextEditor';
64
65
  export { ToastProvider, useToast } from './Toast/ToastContext';
66
+ export { default as Skeleton } from './Skeleton/Skeleton';
67
+ export type { SkeletonProps } from './Skeleton/type';
68
+ export { default as CounterButton } from './CounterButton/CounterButton';
65
69
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herca/rn-kit",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
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
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useEffect, useMemo } from 'react';
2
- import { FlatList, StyleSheet } from 'react-native';
2
+ import { Dimensions, FlatList, StyleSheet } from 'react-native';
3
3
  import {
4
4
  type ChipOptionProps,
5
5
  type ChipProps,
@@ -27,6 +27,11 @@ const Chip: React.FC<ChipProps> = ({
27
27
  header,
28
28
  }) => {
29
29
  const isHorizontal = direction === 'horizontal';
30
+ const [chipItemWidth, setChipItemWidth] = useState(0);
31
+ const screenWidth = Dimensions.get('window').width;
32
+ const contaierHorizontalPadding = 24;
33
+ const containerHorizontalChipGap = 8;
34
+ const availableContainerChipWidth = screenWidth - contaierHorizontalPadding;
30
35
 
31
36
  const normalizeSelected = (val: ChipSelectedProps) =>
32
37
  Array.isArray(val) ? val : val ? [val] : [];
@@ -64,8 +69,10 @@ const Chip: React.FC<ChipProps> = ({
64
69
 
65
70
  const numColumns = useMemo(() => {
66
71
  if (isHorizontal || block) return 1;
67
- return 2;
68
- }, [block, isHorizontal]);
72
+ return Math.floor(
73
+ availableContainerChipWidth / (chipItemWidth + containerHorizontalChipGap)
74
+ );
75
+ }, [block, isHorizontal, availableContainerChipWidth, chipItemWidth]);
69
76
 
70
77
  const handleOnPresChipItem = (isDisabled: boolean, item: ChipOptionProps) => {
71
78
  !isDisabled && handleSelect(item.value);
@@ -78,6 +85,7 @@ const Chip: React.FC<ChipProps> = ({
78
85
  return (
79
86
  <FlatList
80
87
  data={options}
88
+ key={`chip-${numColumns}`}
81
89
  renderItem={({ item }) => (
82
90
  <ChipItem
83
91
  item={item}
@@ -87,6 +95,14 @@ const Chip: React.FC<ChipProps> = ({
87
95
  onPress={handleOnPresChipItem}
88
96
  size={size}
89
97
  renderItem={renderItem}
98
+ onLayout={
99
+ chipItemWidth
100
+ ? undefined
101
+ : (e) => {
102
+ const { width } = e.nativeEvent.layout;
103
+ setChipItemWidth(width);
104
+ }
105
+ }
90
106
  />
91
107
  )}
92
108
  keyExtractor={(item) => String(item.value)}
@@ -114,7 +130,6 @@ const Chip: React.FC<ChipProps> = ({
114
130
  const styles = StyleSheet.create({
115
131
  container: {
116
132
  gap: 8,
117
- paddingBottom: 14,
118
133
  },
119
134
  wrapperStyle: {
120
135
  gap: 8,
@@ -12,6 +12,7 @@ export default function ChipItem({
12
12
  renderItem,
13
13
  isHorizontal,
14
14
  onPress,
15
+ onLayout,
15
16
  }: ChipItem) {
16
17
  const validColors: ColorVariantType[] = [
17
18
  'default',
@@ -74,6 +75,7 @@ export default function ChipItem({
74
75
  ]}
75
76
  onPress={() => handleOnPres(isDisabled, item)}
76
77
  disabled={isDisabled}
78
+ onLayout={onLayout}
77
79
  >
78
80
  {renderItem ? (
79
81
  renderItem(item, selectedState, isDisabled)
@@ -0,0 +1,73 @@
1
+ # 📦 Komponen `ChipItem` – React Native
2
+
3
+ Komponen `ChipItem` merupakan komponen presentasional dalam bentuk "chip" atau "pill" yang digunakan sebagai bagian dari list filter/select menggunakan UI gaya chip, baik single maupun multiple select.
4
+
5
+ ---
6
+
7
+ ## 🔧 Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ | -------------- | ------------------------------------------------------------------------------------------------ | ------------ | ---------------------------------------------------------------------------------- |
11
+ | `item` | `ChipOptionProps` | **Required** | Data item yang akan ditampilkan, berisi label, value, dan optional `disabled` |
12
+ | `isSelected` | `(value: boolean) => boolean` | **Required** | Fungsi untuk menentukan apakah item saat ini sedang terpilih |
13
+ | `color` | `'default' \| 'success' \| 'danger' \| 'primary' \| 'warning' \| 'info' \| 'purple' \| 'orange'` | `'default'` | Warna tema chip berdasarkan `CHIP_COLOR_MAP` |
14
+ | `block` | `boolean` | `false` | Apakah chip harus mengisi lebar penuh jika ditampilkan secara vertikal |
15
+ | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Ukuran padding dan font chip |
16
+ | `renderItem` | `(item: ChipOptionProps, selected: boolean, disabled: boolean) => ReactNode` | `undefined` | Fungsi untuk mengkustomisasi isi tampilan chip |
17
+ | `isHorizontal` | `boolean` | `false` | Jika true, maka `block` akan diabaikan agar chip tetap fleksibel secara horizontal |
18
+ | `onPress` | `(disabled: boolean, val: ChipOptionProps) => void` | `undefined` | Callback saat chip ditekan |
19
+ | `onLayout` | `(event: LayoutChangeEvent) => void` | `undefined` | Callback ketika layout chip dihitung oleh React Native |
20
+
21
+ ---
22
+
23
+ ## 🎨 Style Behavior
24
+
25
+ - **Warna Dinamis**: Warna border, background, dan teks akan menyesuaikan status:
26
+ - Default
27
+ - Selected
28
+ - Disabled
29
+
30
+ - **Ukuran**:
31
+ - `'small'`: Padding kecil, font size 12
32
+ - `'medium'`: Default, font size 14
33
+ - `'large'`: Padding besar, font size 16
34
+
35
+ - **Block Mode**:
36
+ - Bila `block: true` dan `isHorizontal: false`, chip akan mengisi lebar penuh kontainer
37
+
38
+ ---
39
+
40
+ ## 💡 Contoh Penggunaan
41
+
42
+ ```tsx
43
+ <ChipItem
44
+ item={{ label: 'Marketing', value: 'marketing' }}
45
+ isSelected={() => true}
46
+ color="primary"
47
+ size="medium"
48
+ onPress={(disabled, val) => console.log('Pressed:', val)}
49
+ />
50
+ ```
51
+
52
+ ---
53
+
54
+ ## 🛠️ Tips
55
+
56
+ - Gunakan `renderItem` untuk mengganti isi chip dengan tampilan kustom.
57
+ - Pastikan `isSelected` di-define dengan benar agar state visual chip sesuai.
58
+
59
+ ---
60
+
61
+ ## 🧱 Dependencies
62
+
63
+ - `Typography`
64
+ - `CHIP_COLOR_MAP`
65
+ - `Pressable` & `StyleSheet` dari React Native
66
+
67
+ ---
68
+
69
+ ## 🗂️ Related
70
+
71
+ - `Chip`
72
+ - `Select`
73
+ - `ChipOptionProps`
package/src/Chip/type.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import type { ColorValue } from 'react-native';
1
+ import type { ColorValue, LayoutChangeEvent } from 'react-native';
2
2
  import Color from '../Color/Color';
3
3
  import type { ColorVariantType } from '../Color/type';
4
4
 
@@ -134,6 +134,7 @@ export interface ChipItem {
134
134
  renderItem?: ChipRenderItemFn;
135
135
  isHorizontal?: boolean;
136
136
  onPress?: (isDisabled: boolean, value: ChipOptionProps) => void;
137
+ onLayout?: (event: LayoutChangeEvent) => void;
137
138
  }
138
139
  export interface ChipProps {
139
140
  options: ChipOptionProps[];
@@ -14,22 +14,23 @@ Komponen `Select` adalah komponen pemilihan data berbasis bottom sheet dengan du
14
14
 
15
15
  ## 📦 Props
16
16
 
17
- | Prop | Tipe | Default | Keterangan |
18
- |--------------|--------------------------------------------------|---------------|------------|
19
- | `isOpen` | `boolean` | `false` | Menentukan apakah bottom sheet terbuka |
20
- | `data` | `ChipOptionProps[]` | - | Data pilihan untuk ditampilkan |
21
- | `multiple` | `boolean` | `false` | Mengizinkan multiple selection |
22
- | `renderItem` | `(item, selected, disabled) => React.ReactNode` | - | Kustom tampilan item |
23
- | `onSubmit` | `(selected: ChipSelectedProps) => void` | - | Callback saat tombol submit ditekan |
24
- | `onClose` | `(val: boolean) => void` | - | Callback saat bottom sheet ditutup |
25
- | `onSearch` | `(val: string) => void` | - | Callback saat input pencarian berubah |
26
- | `required` | `boolean` | `false` | Jika `true`, validasi input saat submit |
27
- | `loading` | `boolean` | `false` | Menampilkan loading saat data di-fetch |
28
- | `delaySearch`| `number` | `300` | Delay pencarian dalam milidetik |
29
- | `height` | `BottomSheetHeighProps` | - | Ukuran tinggi BottomSheet |
30
- | `onRefresh` | `() => void` | - | Callback saat pull-to-refresh dilakukan |
31
- | `header` | ReactElement| – | Jika ingin chip mempunyai header. |
32
- | `footer` | ReactElement| – | Jika ingin chip mempunyai footer. |
17
+ | Prop | Tipe | Default | Keterangan |
18
+ | ------------- | ----------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
19
+ | `isOpen` | `boolean` | `false` | Menentukan apakah bottom sheet terbuka |
20
+ | `data` | `ChipOptionProps[]` | - | Data pilihan untuk ditampilkan |
21
+ | `multiple` | `boolean` | `false` | Mengizinkan multiple selection |
22
+ | `renderItem` | `(item, selected, disabled) => React.ReactNode` | - | Kustom tampilan item |
23
+ | `onSubmit` | `(selected: ChipSelectedProps) => void` | - | Callback saat tombol submit ditekan |
24
+ | `onClose` | `(val: boolean) => void` | - | Callback saat bottom sheet ditutup |
25
+ | `onSearch` | `(val: string) => void` | - | Callback saat input pencarian berubah |
26
+ | `required` | `boolean` | `false` | Jika `true`, validasi input saat submit |
27
+ | `loading` | `boolean` | `false` | Menampilkan loading saat data di-fetch |
28
+ | `delaySearch` | `number` | `300` | Delay pencarian dalam milidetik |
29
+ | `height` | `BottomSheetHeighProps` | - | Ukuran tinggi BottomSheet |
30
+ | `onRefresh` | `() => void` | - | Callback saat pull-to-refresh dilakukan |
31
+ | `header` | ReactElement | – | Jika ingin chip mempunyai header. |
32
+ | `footer` | ReactElement | – | Jika ingin chip mempunyai footer. |
33
+ | `value` | ChipSelectedProps | – | Nilai pilihan yang dikontrol dari luar. Cocok untuk membuat komponen controlled. Akan mensinkronkan state internal selected dengan value setiap kali berubah. |
33
34
 
34
35
  ## 📌 Contoh Penggunaan
35
36
 
@@ -53,6 +54,7 @@ const MyScreen = () => {
53
54
  <Button title="Pilih Data" onPress={() => setOpen(true)} />
54
55
  <Select
55
56
  isOpen={open}
57
+ value={selected}
56
58
  data={data}
57
59
  multiple={true}
58
60
  onClose={() => setOpen(false)}
@@ -77,4 +79,11 @@ const MyScreen = () => {
77
79
  - `Loading`
78
80
  - `Toast` (untuk validasi/error)
79
81
 
80
- - Jika ingin menambahkan animasi shimmer saat loading, bisa modifikasi komponen `Loading`.
82
+ - Jika ingin menambahkan animasi shimmer saat loading, bisa modifikasi komponen `Loading`.
83
+
84
+ ## ⚠️ Behavior Penting
85
+
86
+ - Jika `multiple={false}` dan `required={true}`, maka:
87
+ - Item yang dipilih akan langsung dikirim ke `onSubmit`.
88
+ - BottomSheet akan langsung tertutup tanpa menekan tombol submit.
89
+ - Jika `required={false}`, user bisa membatalkan pilihan (deselect), dan mengirim data kosong.
@@ -1,4 +1,4 @@
1
- import { useCallback, useState } from 'react';
1
+ import { useCallback, useState, useEffect } from 'react';
2
2
  import {
3
3
  Keyboard,
4
4
  StyleSheet,
@@ -32,6 +32,7 @@ export default function Select({
32
32
  header,
33
33
  onEndReached,
34
34
  submitBtnLabel,
35
+ value,
35
36
  }: SelectProps) {
36
37
  // const [isOpenSelect, setIsOpenSelect] = useState<boolean | undefined>(false);
37
38
  const [selected, setSelected] = useState<ChipSelectedProps>();
@@ -75,6 +76,12 @@ export default function Select({
75
76
  }, delaySearch);
76
77
  };
77
78
 
79
+ useEffect(() => {
80
+ if (value !== undefined) {
81
+ setSelected(value);
82
+ }
83
+ }, [value]);
84
+
78
85
  return (
79
86
  <BottomSheet
80
87
  onClose={(val: boolean) => handleOnCloseBottom(val)}
@@ -109,40 +116,43 @@ export default function Select({
109
116
  {loading ? (
110
117
  <Loading />
111
118
  ) : (
112
- <Chip
113
- options={data}
114
- direction="vertical"
115
- scrollable={true}
116
- selected={selected}
117
- multiple={multiple}
118
- onEndReached={onEndReached}
119
- color="primary"
120
- size="large"
121
- renderItem={renderItem}
122
- onRefresh={onRefresh}
123
- block
124
- refreshing={refreshing}
125
- footer={footer}
126
- header={header}
127
- onSelect={(item) => {
128
- setSelected(item);
129
- if (!multiple && required) {
130
- onSubmit?.(item);
131
- handleOnCloseBottom(false);
132
- } else if (!multiple && !required) {
133
- const isSame =
134
- Array.isArray(item) && Array.isArray(selected)
135
- ? item[0] === selected?.[0]
136
- : item === selected;
119
+ <View style={styles.containerChip}>
120
+ <Chip
121
+ options={data}
122
+ direction="vertical"
123
+ scrollable={true}
124
+ selected={selected}
125
+ multiple={multiple}
126
+ onEndReached={onEndReached}
127
+ color="primary"
128
+ size="large"
129
+ renderItem={renderItem}
130
+ onRefresh={onRefresh}
131
+ block
132
+ refreshing={refreshing}
133
+ footer={footer}
134
+ header={header}
135
+ onSelect={(item) => {
136
+ setSelected(item);
137
+ if (!multiple && required) {
138
+ onSubmit?.(item);
139
+ handleOnCloseBottom(false);
140
+ } else if (!multiple && !required) {
141
+ const isSame =
142
+ Array.isArray(item) && Array.isArray(selected)
143
+ ? item[0] === selected?.[0]
144
+ : item === selected;
137
145
 
138
- const nextValue = !multiple && !required && isSame ? [] : item;
146
+ const nextValue =
147
+ !multiple && !required && isSame ? [] : item;
139
148
 
140
- setSelected(nextValue);
141
- onSubmit?.(nextValue);
142
- handleOnCloseBottom(false);
143
- }
144
- }}
145
- />
149
+ setSelected(nextValue);
150
+ onSubmit?.(nextValue);
151
+ handleOnCloseBottom(false);
152
+ }
153
+ }}
154
+ />
155
+ </View>
146
156
  )}
147
157
  </View>
148
158
  </BottomSheet>
@@ -151,10 +161,13 @@ export default function Select({
151
161
 
152
162
  const styles = StyleSheet.create({
153
163
  container: {
154
- marginBottom: 140,
164
+ marginBottom: 195,
155
165
  },
156
166
  containerSearch: {
157
167
  gap: 14,
158
168
  paddingBottom: 12,
159
169
  },
170
+ containerChip: {
171
+ paddingBottom: 12,
172
+ },
160
173
  });
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ChipOnSelectProps, ChipOptionProps } from '../Chip/type';
3
3
  import type { BottomSheetHeighProps } from '../BottomSheet/type';
4
+ import type { ChipSelectedProps } from '../Chip/type';
4
5
 
5
6
  export interface SelectDataProps {
6
7
  value: string | number;
@@ -29,6 +30,7 @@ export interface SelectProps {
29
30
  onEndReached?: () => void;
30
31
  refreshing?: boolean;
31
32
  submitBtnLabel?: string;
33
+ value?: ChipSelectedProps;
32
34
  footer?: React.ComponentType<any> | React.ReactElement | null | undefined;
33
35
  header?: React.ComponentType<any> | React.ReactElement | null | undefined;
34
36
  }
@@ -0,0 +1,79 @@
1
+ # 🦴 Skeleton Loader Component
2
+
3
+ Komponen `Skeleton` adalah placeholder UI yang menampilkan efek shimmer animasi, berguna untuk memberikan feedback loading saat data belum tersedia.
4
+
5
+ ---
6
+
7
+ ## 📦 Props
8
+
9
+ | Prop | Tipe | Default | Deskripsi |
10
+ | ----------------- | ---------------- | ---------------------------- | ---------------------------------------------------------------------------------- |
11
+ | `width` | `DimensionValue` | `"100%"` | Lebar dari skeleton block. Bisa berupa angka atau string (`'100%'`, `'50%'`, dsb). |
12
+ | `height` | `DimensionValue` | `50` | Tinggi dari skeleton block. |
13
+ | `rounded` | `number` | `8` | Radius border untuk membuat sudut membulat. |
14
+ | `backgroundColor` | `string` | `"#F0F0F0"` | Warna latar belakang dari blok skeleton. |
15
+ | `shimmerColor` | `string` | `"rgba(255, 255, 255, 0.7)"` | Warna efek shimmer yang bergerak. |
16
+ | `duration` | `number` | `1500` | Durasi animasi shimmer (dalam milidetik). |
17
+
18
+ ---
19
+
20
+ ## 🧠 Cara Kerja
21
+
22
+ - Komponen menggunakan `Animated.Value` untuk menggerakkan efek shimmer dari kiri ke kanan secara loop.
23
+ - Lebar shimmer dihitung berdasarkan lebar aktual komponen yang didapat dari event `onLayout`.
24
+ - Shimmer bergerak dengan `translateX` menggunakan `interpolate()` untuk efek linear mulus.
25
+
26
+ ---
27
+
28
+ ## 📌 Contoh Penggunaan
29
+
30
+ ```tsx
31
+ import React from 'react';
32
+ import { View } from 'react-native';
33
+ import Skeleton from './components/Skeleton';
34
+
35
+ const MyLoadingScreen = () => {
36
+ return (
37
+ <View style={{ padding: 16 }}>
38
+ <Skeleton height={20} width="60%" />
39
+ <View style={{ height: 16 }} />
40
+ <Skeleton height={20} width="80%" />
41
+ <View style={{ height: 16 }} />
42
+ <Skeleton height={100} width="100%" rounded={12} />
43
+ </View>
44
+ );
45
+ };
46
+ ```
47
+
48
+ ---
49
+
50
+ ## 🧱 Struktur Rendered
51
+
52
+ ```tsx
53
+ <View>
54
+ {' '}
55
+ // container
56
+ <Animated.View /> // shimmer yang bergerak horizontal
57
+ </View>
58
+ ```
59
+
60
+ ---
61
+
62
+ ## ⚠️ Catatan
63
+
64
+ - Komponen ini **tidak menerima children**, hanya untuk placeholder visual.
65
+ - Efek shimmer akan selalu berjalan secara loop selama komponen hidup.
66
+ - Perhatikan performa jika digunakan secara masif di satu halaman.
67
+
68
+ ---
69
+
70
+ ## 🛠 Tips
71
+
72
+ - Gunakan `Skeleton` dalam daftar (list, table, card) untuk meningkatkan UX saat loading.
73
+ - Dapat digabungkan dengan kondisi seperti:
74
+
75
+ ```tsx
76
+ {
77
+ isLoading ? <Skeleton height={50} /> : <ActualComponent data={data} />;
78
+ }
79
+ ```