@herca/rn-kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.md +33 -0
- package/RnKit.podspec +21 -0
- package/android/build.gradle +83 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/herca/rnkit/RnKitModule.kt +23 -0
- package/android/src/main/java/com/herca/rnkit/RnKitPackage.kt +33 -0
- package/ios/RnKit.h +5 -0
- package/ios/RnKit.mm +18 -0
- package/lib/module/Accordion/Accordion.js +33 -0
- package/lib/module/Accordion/Accordion.js.map +1 -0
- package/lib/module/Accordion/AccordionItem.js +13 -0
- package/lib/module/Accordion/AccordionItem.js.map +1 -0
- package/lib/module/Accordion/README.md +48 -0
- package/lib/module/Accordion/type.js +4 -0
- package/lib/module/Accordion/type.js.map +1 -0
- package/lib/module/Alert/Alert.js +121 -0
- package/lib/module/Alert/Alert.js.map +1 -0
- package/lib/module/Alert/README.md +68 -0
- package/lib/module/Avatar/Avatar.js +56 -0
- package/lib/module/Avatar/Avatar.js.map +1 -0
- package/lib/module/Avatar/AvatarGroup.js +118 -0
- package/lib/module/Avatar/AvatarGroup.js.map +1 -0
- package/lib/module/Avatar/README_AVATAR.md +57 -0
- package/lib/module/Avatar/README_AVATARGROUP.md +58 -0
- package/lib/module/Avatar/type.js +4 -0
- package/lib/module/Avatar/type.js.map +1 -0
- package/lib/module/Badge/Badge.js +119 -0
- package/lib/module/Badge/Badge.js.map +1 -0
- package/lib/module/Badge/README.md +64 -0
- package/lib/module/Badge/type.js +2 -0
- package/lib/module/Badge/type.js.map +1 -0
- package/lib/module/BottomSheet/BottomSheet.js +211 -0
- package/lib/module/BottomSheet/BottomSheet.js.map +1 -0
- package/lib/module/BottomSheet/README.md +64 -0
- package/lib/module/BottomSheet/type.js +2 -0
- package/lib/module/BottomSheet/type.js.map +1 -0
- package/lib/module/Button/Button.js +138 -0
- package/lib/module/Button/Button.js.map +1 -0
- package/lib/module/Button/README.md +94 -0
- package/lib/module/Button/type.js +262 -0
- package/lib/module/Button/type.js.map +1 -0
- package/lib/module/Calendar/Calendar.js +356 -0
- package/lib/module/Calendar/Calendar.js.map +1 -0
- package/lib/module/Calendar/CalendarPropsType.js +4 -0
- package/lib/module/Calendar/CalendarPropsType.js.map +1 -0
- package/lib/module/Calendar/README.md +73 -0
- package/lib/module/CheckBox/CheckBox.js +67 -0
- package/lib/module/CheckBox/CheckBox.js.map +1 -0
- package/lib/module/CheckBox/CheckBoxList.js +41 -0
- package/lib/module/CheckBox/CheckBoxList.js.map +1 -0
- package/lib/module/CheckBox/README_CHECKBOX.md +46 -0
- package/lib/module/CheckBox/README_CHECKBOXLIST.md +41 -0
- package/lib/module/Chip/Chip.js +109 -0
- package/lib/module/Chip/Chip.js.map +1 -0
- package/lib/module/Chip/ChipItem.js +89 -0
- package/lib/module/Chip/ChipItem.js.map +1 -0
- package/lib/module/Chip/README.md +89 -0
- package/lib/module/Chip/type.js +94 -0
- package/lib/module/Chip/type.js.map +1 -0
- package/lib/module/Color/Color.js +126 -0
- package/lib/module/Color/Color.js.map +1 -0
- package/lib/module/Color/README.md +54 -0
- package/lib/module/Color/type.js +2 -0
- package/lib/module/Color/type.js.map +1 -0
- package/lib/module/DatePicker/DatePicker.js +69 -0
- package/lib/module/DatePicker/DatePicker.js.map +1 -0
- package/lib/module/DatePicker/MonthPicker.js +179 -0
- package/lib/module/DatePicker/MonthPicker.js.map +1 -0
- package/lib/module/DatePicker/README.md +51 -0
- package/lib/module/DatePicker/TimePicker.js +200 -0
- package/lib/module/DatePicker/TimePicker.js.map +1 -0
- package/lib/module/DatePicker/YearPicker.js +217 -0
- package/lib/module/DatePicker/YearPicker.js.map +1 -0
- package/lib/module/DatePicker/helpers.js +33 -0
- package/lib/module/DatePicker/helpers.js.map +1 -0
- package/lib/module/Drawing/Drawing.js +26 -0
- package/lib/module/Drawing/Drawing.js.map +1 -0
- package/lib/module/DropDown/DropDown.js +107 -0
- package/lib/module/DropDown/DropDown.js.map +1 -0
- package/lib/module/DropDown/type.js +4 -0
- package/lib/module/DropDown/type.js.map +1 -0
- package/lib/module/FileView/Image.js +8 -0
- package/lib/module/FileView/Image.js.map +1 -0
- package/lib/module/FileView/PdfView.js +37 -0
- package/lib/module/FileView/PdfView.js.map +1 -0
- package/lib/module/Icon/Icon.js +74 -0
- package/lib/module/Icon/Icon.js.map +1 -0
- package/lib/module/Icon/icons/AirPlane.js +22 -0
- package/lib/module/Icon/icons/AirPlane.js.map +1 -0
- package/lib/module/Icon/icons/ArrowBackAlt.js +22 -0
- package/lib/module/Icon/icons/ArrowBackAlt.js.map +1 -0
- package/lib/module/Icon/icons/ArrowDown.js +22 -0
- package/lib/module/Icon/icons/ArrowDown.js.map +1 -0
- package/lib/module/Icon/icons/ArrowForwardAlt.js +22 -0
- package/lib/module/Icon/icons/ArrowForwardAlt.js.map +1 -0
- package/lib/module/Icon/icons/ArrowLeft.js +22 -0
- package/lib/module/Icon/icons/ArrowLeft.js.map +1 -0
- package/lib/module/Icon/icons/ArrowRight.js +22 -0
- package/lib/module/Icon/icons/ArrowRight.js.map +1 -0
- package/lib/module/Icon/icons/ArrowUp.js +22 -0
- package/lib/module/Icon/icons/ArrowUp.js.map +1 -0
- package/lib/module/Icon/icons/Calendar.js +22 -0
- package/lib/module/Icon/icons/Calendar.js.map +1 -0
- package/lib/module/Icon/icons/Camera.js +22 -0
- package/lib/module/Icon/icons/Camera.js.map +1 -0
- package/lib/module/Icon/icons/Check.js +22 -0
- package/lib/module/Icon/icons/Check.js.map +1 -0
- package/lib/module/Icon/icons/Document.js +22 -0
- package/lib/module/Icon/icons/Document.js.map +1 -0
- package/lib/module/Icon/icons/Download.js +22 -0
- package/lib/module/Icon/icons/Download.js.map +1 -0
- package/lib/module/Icon/icons/ExlmationMark.js +22 -0
- package/lib/module/Icon/icons/ExlmationMark.js.map +1 -0
- package/lib/module/Icon/icons/Eye.js +22 -0
- package/lib/module/Icon/icons/Eye.js.map +1 -0
- package/lib/module/Icon/icons/EyeOpen.js +22 -0
- package/lib/module/Icon/icons/EyeOpen.js.map +1 -0
- package/lib/module/Icon/icons/Filter.js +22 -0
- package/lib/module/Icon/icons/Filter.js.map +1 -0
- package/lib/module/Icon/icons/Home.js +8 -0
- package/lib/module/Icon/icons/Home.js.map +1 -0
- package/lib/module/Icon/icons/Image.js +22 -0
- package/lib/module/Icon/icons/Image.js.map +1 -0
- package/lib/module/Icon/icons/Pdf.js +22 -0
- package/lib/module/Icon/icons/Pdf.js.map +1 -0
- package/lib/module/Icon/icons/RadioButton.js +34 -0
- package/lib/module/Icon/icons/RadioButton.js.map +1 -0
- package/lib/module/Icon/icons/Search.js +22 -0
- package/lib/module/Icon/icons/Search.js.map +1 -0
- package/lib/module/Icon/icons/StickyNote.js +22 -0
- package/lib/module/Icon/icons/StickyNote.js.map +1 -0
- package/lib/module/Icon/icons/Times.js +22 -0
- package/lib/module/Icon/icons/Times.js.map +1 -0
- package/lib/module/Icon/icons/User.js +22 -0
- package/lib/module/Icon/icons/User.js.map +1 -0
- package/lib/module/Icon/icons/XCircle.js +22 -0
- package/lib/module/Icon/icons/XCircle.js.map +1 -0
- package/lib/module/Icon/index.js +6 -0
- package/lib/module/Icon/index.js.map +1 -0
- package/lib/module/Icon/type.js +4 -0
- package/lib/module/Icon/type.js.map +1 -0
- package/lib/module/Input/Input.js +125 -0
- package/lib/module/Input/Input.js.map +1 -0
- package/lib/module/Input/Input.md +51 -0
- package/lib/module/Input/InputFile.js +319 -0
- package/lib/module/Input/InputFile.js.map +1 -0
- package/lib/module/Input/InputMonth.js +4 -0
- package/lib/module/Input/InputMonth.js.map +1 -0
- package/lib/module/Input/InputNumber.js +2 -0
- package/lib/module/Input/InputNumber.js.map +1 -0
- package/lib/module/Input/InputOtp.js +74 -0
- package/lib/module/Input/InputOtp.js.map +1 -0
- package/lib/module/Input/InputPassword.js +18 -0
- package/lib/module/Input/InputPassword.js.map +1 -0
- package/lib/module/Input/InputSelect.js +8 -0
- package/lib/module/Input/InputSelect.js.map +1 -0
- package/lib/module/Input/Switch.js +91 -0
- package/lib/module/Input/Switch.js.map +1 -0
- package/lib/module/Input/TextArea.js +61 -0
- package/lib/module/Input/TextArea.js.map +1 -0
- package/lib/module/Input/assets/Ilustrasi.svg +14 -0
- package/lib/module/Input/assets/input-file.png +0 -0
- package/lib/module/Input/type.js +4 -0
- package/lib/module/Input/type.js.map +1 -0
- package/lib/module/Label/Label.js +87 -0
- package/lib/module/Label/Label.js.map +1 -0
- package/lib/module/LabelForm/LabelForm.js +17 -0
- package/lib/module/LabelForm/LabelForm.js.map +1 -0
- package/lib/module/List/List.js +31 -0
- package/lib/module/List/List.js.map +1 -0
- package/lib/module/List/ListItem.js +31 -0
- package/lib/module/List/ListItem.js.map +1 -0
- package/lib/module/List/type.js +4 -0
- package/lib/module/List/type.js.map +1 -0
- package/lib/module/Loading/Loading.js +50 -0
- package/lib/module/Loading/Loading.js.map +1 -0
- package/lib/module/Modal/Modal.js +149 -0
- package/lib/module/Modal/Modal.js.map +1 -0
- package/lib/module/NativeRnKit.js +5 -0
- package/lib/module/NativeRnKit.js.map +1 -0
- package/lib/module/Provider/FooterProvider.js +25 -0
- package/lib/module/Provider/FooterProvider.js.map +1 -0
- package/lib/module/Provider/LayoutWithFooter.js +34 -0
- package/lib/module/Provider/LayoutWithFooter.js.map +1 -0
- package/lib/module/Provider/Provider.js +43 -0
- package/lib/module/Provider/Provider.js.map +1 -0
- package/lib/module/Provider/RequiredUpdateAppsProvider.js +60 -0
- package/lib/module/Provider/RequiredUpdateAppsProvider.js.map +1 -0
- package/lib/module/Provider/type.js +2 -0
- package/lib/module/Provider/type.js.map +1 -0
- package/lib/module/RadioButton/README.md +43 -0
- package/lib/module/RadioButton/RadioButton.js +97 -0
- package/lib/module/RadioButton/RadioButton.js.map +1 -0
- package/lib/module/Select/README.md +78 -0
- package/lib/module/Select/README_Select.md +78 -0
- package/lib/module/Select/Select.js +101 -0
- package/lib/module/Select/Select.js.map +1 -0
- package/lib/module/Select/type.js +4 -0
- package/lib/module/Select/type.js.map +1 -0
- package/lib/module/Step/Step.js +83 -0
- package/lib/module/Step/Step.js.map +1 -0
- package/lib/module/Step/StepItem.js +78 -0
- package/lib/module/Step/StepItem.js.map +1 -0
- package/lib/module/Step/type.js +4 -0
- package/lib/module/Step/type.js.map +1 -0
- package/lib/module/SwitchButton/SwitchButton.js +8 -0
- package/lib/module/SwitchButton/SwitchButton.js.map +1 -0
- package/lib/module/TextArea/TextArea.js +2 -0
- package/lib/module/TextArea/TextArea.js.map +1 -0
- package/lib/module/Theme/Theme.js +31 -0
- package/lib/module/Theme/Theme.js.map +1 -0
- package/lib/module/Timeline/Timeline.js +12 -0
- package/lib/module/Timeline/Timeline.js.map +1 -0
- package/lib/module/Timeline/TimelineItem.js +66 -0
- package/lib/module/Timeline/TimelineItem.js.map +1 -0
- package/lib/module/Toast/Toast.js +143 -0
- package/lib/module/Toast/Toast.js.map +1 -0
- package/lib/module/Toast/ToastContext.js +40 -0
- package/lib/module/Toast/ToastContext.js.map +1 -0
- package/lib/module/Typography/README.md +71 -0
- package/lib/module/Typography/Typography.js +39 -0
- package/lib/module/Typography/Typography.js.map +1 -0
- package/lib/module/Typography/type.js +33 -0
- package/lib/module/Typography/type.js.map +1 -0
- package/lib/module/Ui/Card.js +50 -0
- package/lib/module/Ui/Card.js.map +1 -0
- package/lib/module/Ui/Center.js +21 -0
- package/lib/module/Ui/Center.js.map +1 -0
- package/lib/module/Ui/Col.js +20 -0
- package/lib/module/Ui/Col.js.map +1 -0
- package/lib/module/Ui/Container.js +20 -0
- package/lib/module/Ui/Container.js.map +1 -0
- package/lib/module/Ui/Devider.js +18 -0
- package/lib/module/Ui/Devider.js.map +1 -0
- package/lib/module/Ui/Footer.js +36 -0
- package/lib/module/Ui/Footer.js.map +1 -0
- package/lib/module/Ui/Gap.js +13 -0
- package/lib/module/Ui/Gap.js.map +1 -0
- package/lib/module/Ui/Grid.js +31 -0
- package/lib/module/Ui/Grid.js.map +1 -0
- package/lib/module/index.js +61 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Accordion/Accordion.d.ts +3 -0
- package/lib/typescript/src/Accordion/Accordion.d.ts.map +1 -0
- package/lib/typescript/src/Accordion/AccordionItem.d.ts +3 -0
- package/lib/typescript/src/Accordion/AccordionItem.d.ts.map +1 -0
- package/lib/typescript/src/Accordion/type.d.ts +17 -0
- package/lib/typescript/src/Accordion/type.d.ts.map +1 -0
- package/lib/typescript/src/Alert/Alert.d.ts +16 -0
- package/lib/typescript/src/Alert/Alert.d.ts.map +1 -0
- package/lib/typescript/src/Avatar/Avatar.d.ts +5 -0
- package/lib/typescript/src/Avatar/Avatar.d.ts.map +1 -0
- package/lib/typescript/src/Avatar/AvatarGroup.d.ts +4 -0
- package/lib/typescript/src/Avatar/AvatarGroup.d.ts.map +1 -0
- package/lib/typescript/src/Avatar/type.d.ts +16 -0
- package/lib/typescript/src/Avatar/type.d.ts.map +1 -0
- package/lib/typescript/src/Badge/Badge.d.ts +14 -0
- package/lib/typescript/src/Badge/Badge.d.ts.map +1 -0
- package/lib/typescript/src/Badge/type.d.ts +1 -0
- package/lib/typescript/src/Badge/type.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheet/BottomSheet.d.ts +3 -0
- package/lib/typescript/src/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheet/type.d.ts +15 -0
- package/lib/typescript/src/BottomSheet/type.d.ts.map +1 -0
- package/lib/typescript/src/Button/Button.d.ts +5 -0
- package/lib/typescript/src/Button/Button.d.ts.map +1 -0
- package/lib/typescript/src/Button/type.d.ts +49 -0
- package/lib/typescript/src/Button/type.d.ts.map +1 -0
- package/lib/typescript/src/Calendar/Calendar.d.ts +4 -0
- package/lib/typescript/src/Calendar/Calendar.d.ts.map +1 -0
- package/lib/typescript/src/Calendar/CalendarPropsType.d.ts +52 -0
- package/lib/typescript/src/Calendar/CalendarPropsType.d.ts.map +1 -0
- package/lib/typescript/src/CheckBox/CheckBox.d.ts +11 -0
- package/lib/typescript/src/CheckBox/CheckBox.d.ts.map +1 -0
- package/lib/typescript/src/CheckBox/CheckBoxList.d.ts +14 -0
- package/lib/typescript/src/CheckBox/CheckBoxList.d.ts.map +1 -0
- package/lib/typescript/src/Chip/Chip.d.ts +5 -0
- package/lib/typescript/src/Chip/Chip.d.ts.map +1 -0
- package/lib/typescript/src/Chip/ChipItem.d.ts +3 -0
- package/lib/typescript/src/Chip/ChipItem.d.ts.map +1 -0
- package/lib/typescript/src/Chip/type.d.ts +50 -0
- package/lib/typescript/src/Chip/type.d.ts.map +1 -0
- package/lib/typescript/src/Color/Color.d.ts +122 -0
- package/lib/typescript/src/Color/Color.d.ts.map +1 -0
- package/lib/typescript/src/Color/type.d.ts +2 -0
- package/lib/typescript/src/Color/type.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/DatePicker.d.ts +10 -0
- package/lib/typescript/src/DatePicker/DatePicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/MonthPicker.d.ts +13 -0
- package/lib/typescript/src/DatePicker/MonthPicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/TimePicker.d.ts +11 -0
- package/lib/typescript/src/DatePicker/TimePicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/YearPicker.d.ts +13 -0
- package/lib/typescript/src/DatePicker/YearPicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/helpers.d.ts +21 -0
- package/lib/typescript/src/DatePicker/helpers.d.ts.map +1 -0
- package/lib/typescript/src/Drawing/Drawing.d.ts +2 -0
- package/lib/typescript/src/Drawing/Drawing.d.ts.map +1 -0
- package/lib/typescript/src/DropDown/DropDown.d.ts +4 -0
- package/lib/typescript/src/DropDown/DropDown.d.ts.map +1 -0
- package/lib/typescript/src/DropDown/type.d.ts +9 -0
- package/lib/typescript/src/DropDown/type.d.ts.map +1 -0
- package/lib/typescript/src/FileView/Image.d.ts +2 -0
- package/lib/typescript/src/FileView/Image.d.ts.map +1 -0
- package/lib/typescript/src/FileView/PdfView.d.ts +5 -0
- package/lib/typescript/src/FileView/PdfView.d.ts.map +1 -0
- package/lib/typescript/src/Icon/Icon.d.ts +5 -0
- package/lib/typescript/src/Icon/Icon.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/AirPlane.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/AirPlane.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowBackAlt.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowBackAlt.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowDown.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowDown.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowForwardAlt.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowForwardAlt.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowLeft.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowLeft.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowRight.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowRight.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowUp.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowUp.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Calendar.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Calendar.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Camera.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Camera.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Check.d.ts +6 -0
- package/lib/typescript/src/Icon/icons/Check.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Document.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Document.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Download.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Download.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ExlmationMark.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ExlmationMark.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Eye.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Eye.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/EyeOpen.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/EyeOpen.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Filter.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Filter.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Home.d.ts +2 -0
- package/lib/typescript/src/Icon/icons/Home.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Image.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Image.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Pdf.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Pdf.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/RadioButton.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/RadioButton.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Search.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Search.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/StickyNote.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/StickyNote.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Times.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Times.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/User.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/User.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/XCircle.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/XCircle.d.ts.map +1 -0
- package/lib/typescript/src/Icon/index.d.ts +5 -0
- package/lib/typescript/src/Icon/index.d.ts.map +1 -0
- package/lib/typescript/src/Icon/type.d.ts +9 -0
- package/lib/typescript/src/Icon/type.d.ts.map +1 -0
- package/lib/typescript/src/Input/Input.d.ts +5 -0
- package/lib/typescript/src/Input/Input.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputFile.d.ts +11 -0
- package/lib/typescript/src/Input/InputFile.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputMonth.d.ts +2 -0
- package/lib/typescript/src/Input/InputMonth.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputNumber.d.ts +1 -0
- package/lib/typescript/src/Input/InputNumber.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputOtp.d.ts +11 -0
- package/lib/typescript/src/Input/InputOtp.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputPassword.d.ts +15 -0
- package/lib/typescript/src/Input/InputPassword.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputSelect.d.ts +2 -0
- package/lib/typescript/src/Input/InputSelect.d.ts.map +1 -0
- package/lib/typescript/src/Input/Switch.d.ts +12 -0
- package/lib/typescript/src/Input/Switch.d.ts.map +1 -0
- package/lib/typescript/src/Input/TextArea.d.ts +3 -0
- package/lib/typescript/src/Input/TextArea.d.ts.map +1 -0
- package/lib/typescript/src/Input/type.d.ts +18 -0
- package/lib/typescript/src/Input/type.d.ts.map +1 -0
- package/lib/typescript/src/Label/Label.d.ts +12 -0
- package/lib/typescript/src/Label/Label.d.ts.map +1 -0
- package/lib/typescript/src/LabelForm/LabelForm.d.ts +4 -0
- package/lib/typescript/src/LabelForm/LabelForm.d.ts.map +1 -0
- package/lib/typescript/src/List/List.d.ts +3 -0
- package/lib/typescript/src/List/List.d.ts.map +1 -0
- package/lib/typescript/src/List/ListItem.d.ts +3 -0
- package/lib/typescript/src/List/ListItem.d.ts.map +1 -0
- package/lib/typescript/src/List/type.d.ts +14 -0
- package/lib/typescript/src/List/type.d.ts.map +1 -0
- package/lib/typescript/src/Loading/Loading.d.ts +10 -0
- package/lib/typescript/src/Loading/Loading.d.ts.map +1 -0
- package/lib/typescript/src/Modal/Modal.d.ts +18 -0
- package/lib/typescript/src/Modal/Modal.d.ts.map +1 -0
- package/lib/typescript/src/NativeRnKit.d.ts +7 -0
- package/lib/typescript/src/NativeRnKit.d.ts.map +1 -0
- package/lib/typescript/src/Provider/FooterProvider.d.ts +11 -0
- package/lib/typescript/src/Provider/FooterProvider.d.ts.map +1 -0
- package/lib/typescript/src/Provider/LayoutWithFooter.d.ts +5 -0
- package/lib/typescript/src/Provider/LayoutWithFooter.d.ts.map +1 -0
- package/lib/typescript/src/Provider/Provider.d.ts +15 -0
- package/lib/typescript/src/Provider/Provider.d.ts.map +1 -0
- package/lib/typescript/src/Provider/RequiredUpdateAppsProvider.d.ts +3 -0
- package/lib/typescript/src/Provider/RequiredUpdateAppsProvider.d.ts.map +1 -0
- package/lib/typescript/src/Provider/type.d.ts +7 -0
- package/lib/typescript/src/Provider/type.d.ts.map +1 -0
- package/lib/typescript/src/RadioButton/RadioButton.d.ts +15 -0
- package/lib/typescript/src/RadioButton/RadioButton.d.ts.map +1 -0
- package/lib/typescript/src/Select/Select.d.ts +3 -0
- package/lib/typescript/src/Select/Select.d.ts.map +1 -0
- package/lib/typescript/src/Select/type.d.ts +24 -0
- package/lib/typescript/src/Select/type.d.ts.map +1 -0
- package/lib/typescript/src/Step/Step.d.ts +4 -0
- package/lib/typescript/src/Step/Step.d.ts.map +1 -0
- package/lib/typescript/src/Step/StepItem.d.ts +4 -0
- package/lib/typescript/src/Step/StepItem.d.ts.map +1 -0
- package/lib/typescript/src/Step/type.d.ts +18 -0
- package/lib/typescript/src/Step/type.d.ts.map +1 -0
- package/lib/typescript/src/SwitchButton/SwitchButton.d.ts +2 -0
- package/lib/typescript/src/SwitchButton/SwitchButton.d.ts.map +1 -0
- package/lib/typescript/src/TextArea/TextArea.d.ts +1 -0
- package/lib/typescript/src/TextArea/TextArea.d.ts.map +1 -0
- package/lib/typescript/src/Theme/Theme.d.ts +29 -0
- package/lib/typescript/src/Theme/Theme.d.ts.map +1 -0
- package/lib/typescript/src/Timeline/Timeline.d.ts +6 -0
- package/lib/typescript/src/Timeline/Timeline.d.ts.map +1 -0
- package/lib/typescript/src/Timeline/TimelineItem.d.ts +15 -0
- package/lib/typescript/src/Timeline/TimelineItem.d.ts.map +1 -0
- package/lib/typescript/src/Toast/Toast.d.ts +14 -0
- package/lib/typescript/src/Toast/Toast.d.ts.map +1 -0
- package/lib/typescript/src/Toast/ToastContext.d.ts +17 -0
- package/lib/typescript/src/Toast/ToastContext.d.ts.map +1 -0
- package/lib/typescript/src/Typography/Typography.d.ts +5 -0
- package/lib/typescript/src/Typography/Typography.d.ts.map +1 -0
- package/lib/typescript/src/Typography/type.d.ts +19 -0
- package/lib/typescript/src/Typography/type.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Card.d.ts +11 -0
- package/lib/typescript/src/Ui/Card.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Center.d.ts +9 -0
- package/lib/typescript/src/Ui/Center.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Col.d.ts +10 -0
- package/lib/typescript/src/Ui/Col.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Container.d.ts +2 -0
- package/lib/typescript/src/Ui/Container.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Devider.d.ts +3 -0
- package/lib/typescript/src/Ui/Devider.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Footer.d.ts +9 -0
- package/lib/typescript/src/Ui/Footer.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Gap.d.ts +6 -0
- package/lib/typescript/src/Ui/Gap.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Grid.d.ts +9 -0
- package/lib/typescript/src/Ui/Grid.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +59 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +172 -0
- package/src/Accordion/Accordion.tsx +38 -0
- package/src/Accordion/AccordionItem.tsx +9 -0
- package/src/Accordion/README.md +48 -0
- package/src/Accordion/type.tsx +19 -0
- package/src/Alert/Alert.tsx +141 -0
- package/src/Alert/README.md +68 -0
- package/src/Avatar/Avatar.tsx +68 -0
- package/src/Avatar/AvatarGroup.tsx +135 -0
- package/src/Avatar/README_AVATAR.md +57 -0
- package/src/Avatar/README_AVATARGROUP.md +58 -0
- package/src/Avatar/type.tsx +17 -0
- package/src/Badge/Badge.tsx +135 -0
- package/src/Badge/README.md +64 -0
- package/src/Badge/type.tsx +0 -0
- package/src/BottomSheet/BottomSheet.tsx +259 -0
- package/src/BottomSheet/README.md +64 -0
- package/src/BottomSheet/type.tsx +15 -0
- package/src/Button/Button.tsx +195 -0
- package/src/Button/README.md +94 -0
- package/src/Button/type.tsx +329 -0
- package/src/Calendar/Calendar.tsx +382 -0
- package/src/Calendar/CalendarPropsType.tsx +60 -0
- package/src/Calendar/README.md +73 -0
- package/src/CheckBox/CheckBox.tsx +80 -0
- package/src/CheckBox/CheckBoxList.tsx +64 -0
- package/src/CheckBox/README_CHECKBOX.md +46 -0
- package/src/CheckBox/README_CHECKBOXLIST.md +41 -0
- package/src/Chip/Chip.tsx +134 -0
- package/src/Chip/ChipItem.tsx +124 -0
- package/src/Chip/README.md +89 -0
- package/src/Chip/type.tsx +152 -0
- package/src/Color/Color.tsx +133 -0
- package/src/Color/README.md +54 -0
- package/src/Color/type.tsx +9 -0
- package/src/DatePicker/DatePicker.tsx +78 -0
- package/src/DatePicker/MonthPicker.tsx +204 -0
- package/src/DatePicker/README.md +51 -0
- package/src/DatePicker/TimePicker.tsx +234 -0
- package/src/DatePicker/YearPicker.tsx +238 -0
- package/src/DatePicker/helpers.tsx +53 -0
- package/src/Drawing/Drawing.tsx +23 -0
- package/src/DropDown/DropDown.tsx +136 -0
- package/src/DropDown/type.tsx +9 -0
- package/src/FileView/Image.tsx +5 -0
- package/src/FileView/PdfView.tsx +33 -0
- package/src/Icon/Icon.tsx +76 -0
- package/src/Icon/icons/AirPlane.tsx +19 -0
- package/src/Icon/icons/ArrowBackAlt.tsx +23 -0
- package/src/Icon/icons/ArrowDown.tsx +19 -0
- package/src/Icon/icons/ArrowForwardAlt.tsx +23 -0
- package/src/Icon/icons/ArrowLeft.tsx +19 -0
- package/src/Icon/icons/ArrowRight.tsx +19 -0
- package/src/Icon/icons/ArrowUp.tsx +19 -0
- package/src/Icon/icons/Calendar.tsx +19 -0
- package/src/Icon/icons/Camera.tsx +19 -0
- package/src/Icon/icons/Check.tsx +15 -0
- package/src/Icon/icons/Document.tsx +19 -0
- package/src/Icon/icons/Download.tsx +19 -0
- package/src/Icon/icons/ExlmationMark.tsx +23 -0
- package/src/Icon/icons/Eye.tsx +19 -0
- package/src/Icon/icons/EyeOpen.tsx +19 -0
- package/src/Icon/icons/Filter.tsx +19 -0
- package/src/Icon/icons/Home.tsx +5 -0
- package/src/Icon/icons/Image.tsx +19 -0
- package/src/Icon/icons/Pdf.tsx +19 -0
- package/src/Icon/icons/RadioButton.tsx +22 -0
- package/src/Icon/icons/Search.tsx +19 -0
- package/src/Icon/icons/StickyNote.tsx +19 -0
- package/src/Icon/icons/Times.tsx +19 -0
- package/src/Icon/icons/User.tsx +19 -0
- package/src/Icon/icons/XCircle.tsx +19 -0
- package/src/Icon/index.tsx +5 -0
- package/src/Icon/type.tsx +37 -0
- package/src/Input/Input.md +51 -0
- package/src/Input/Input.tsx +134 -0
- package/src/Input/InputFile.tsx +320 -0
- package/src/Input/InputMonth.tsx +1 -0
- package/src/Input/InputNumber.tsx +0 -0
- package/src/Input/InputOtp.tsx +96 -0
- package/src/Input/InputPassword.tsx +31 -0
- package/src/Input/InputSelect.tsx +5 -0
- package/src/Input/Switch.tsx +111 -0
- package/src/Input/TextArea.tsx +67 -0
- package/src/Input/assets/Ilustrasi.svg +14 -0
- package/src/Input/assets/input-file.png +0 -0
- package/src/Input/type.tsx +19 -0
- package/src/Label/Label.tsx +119 -0
- package/src/LabelForm/LabelForm.tsx +12 -0
- package/src/List/List.tsx +31 -0
- package/src/List/ListItem.tsx +34 -0
- package/src/List/type.tsx +14 -0
- package/src/Loading/Loading.tsx +56 -0
- package/src/Modal/Modal.tsx +179 -0
- package/src/NativeRnKit.ts +8 -0
- package/src/Provider/FooterProvider.tsx +26 -0
- package/src/Provider/LayoutWithFooter.tsx +27 -0
- package/src/Provider/Provider.tsx +53 -0
- package/src/Provider/RequiredUpdateAppsProvider.tsx +58 -0
- package/src/Provider/type.tsx +6 -0
- package/src/RadioButton/README.md +43 -0
- package/src/RadioButton/RadioButton.tsx +119 -0
- package/src/Select/README.md +78 -0
- package/src/Select/README_Select.md +78 -0
- package/src/Select/Select.tsx +115 -0
- package/src/Select/type.tsx +30 -0
- package/src/Step/Step.tsx +92 -0
- package/src/Step/StepItem.tsx +86 -0
- package/src/Step/type.tsx +18 -0
- package/src/SwitchButton/SwitchButton.tsx +5 -0
- package/src/TextArea/TextArea.tsx +0 -0
- package/src/Theme/Theme.tsx +28 -0
- package/src/Timeline/Timeline.tsx +9 -0
- package/src/Timeline/TimelineItem.tsx +63 -0
- package/src/Toast/Toast.tsx +179 -0
- package/src/Toast/ToastContext.tsx +51 -0
- package/src/Typography/README.md +71 -0
- package/src/Typography/Typography.tsx +44 -0
- package/src/Typography/type.tsx +60 -0
- package/src/Ui/Card.tsx +70 -0
- package/src/Ui/Center.tsx +20 -0
- package/src/Ui/Col.tsx +17 -0
- package/src/Ui/Container.tsx +12 -0
- package/src/Ui/Devider.tsx +15 -0
- package/src/Ui/Footer.tsx +37 -0
- package/src/Ui/Gap.tsx +8 -0
- package/src/Ui/Grid.tsx +36 -0
- package/src/index.tsx +68 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext, useState } from 'react';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
const FooterContext = /*#__PURE__*/createContext(undefined);
|
|
6
|
+
export const FooterProvider = ({
|
|
7
|
+
children
|
|
8
|
+
}) => {
|
|
9
|
+
const [footer, setFooter] = useState(null);
|
|
10
|
+
return /*#__PURE__*/_jsx(FooterContext.Provider, {
|
|
11
|
+
value: {
|
|
12
|
+
footer,
|
|
13
|
+
setFooter
|
|
14
|
+
},
|
|
15
|
+
children: children
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export const useFooter = () => {
|
|
19
|
+
const context = useContext(FooterContext);
|
|
20
|
+
if (!context) {
|
|
21
|
+
throw new Error('useFooter must be used within a FooterProvider');
|
|
22
|
+
}
|
|
23
|
+
return context;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=FooterProvider.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet, SafeAreaView } from 'react-native';
|
|
4
|
+
import { useFooter } from "./Provider.js";
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import Color from "../Color/Color.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
export default function LayoutWithFooter({
|
|
9
|
+
children
|
|
10
|
+
}) {
|
|
11
|
+
const {
|
|
12
|
+
footer
|
|
13
|
+
} = useFooter();
|
|
14
|
+
return /*#__PURE__*/_jsxs(SafeAreaView, {
|
|
15
|
+
style: styles.container,
|
|
16
|
+
children: [/*#__PURE__*/_jsx(SafeAreaView, {
|
|
17
|
+
style: [styles.content, footer && styles.footer],
|
|
18
|
+
children: children
|
|
19
|
+
}), footer]
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const styles = StyleSheet.create({
|
|
23
|
+
container: {
|
|
24
|
+
flex: 1,
|
|
25
|
+
backgroundColor: Color.base.white100
|
|
26
|
+
},
|
|
27
|
+
content: {
|
|
28
|
+
flex: 1
|
|
29
|
+
},
|
|
30
|
+
footer: {
|
|
31
|
+
marginBottom: 60
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=LayoutWithFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","SafeAreaView","useFooter","React","Color","jsx","_jsx","jsxs","_jsxs","LayoutWithFooter","children","footer","style","styles","container","content","create","flex","backgroundColor","base","white100","marginBottom"],"sourceRoot":"../../../src","sources":["Provider/LayoutWithFooter.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,cAAc;AACvD,SAASC,SAAS,QAAQ,eAAY;AACtC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEnC,eAAe,SAASC,gBAAgBA,CAAC;EACvCC;AAGF,CAAC,EAAE;EACD,MAAM;IAAEC;EAAO,CAAC,GAAGT,SAAS,CAAC,CAAC;EAE9B,oBACEM,KAAA,CAACP,YAAY;IAACW,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAJ,QAAA,gBACpCJ,IAAA,CAACL,YAAY;MAACW,KAAK,EAAE,CAACC,MAAM,CAACE,OAAO,EAAEJ,MAAM,IAAIE,MAAM,CAACF,MAAM,CAAE;MAAAD,QAAA,EAC5DA;IAAQ,CACG,CAAC,EACdC,MAAM;EAAA,CACK,CAAC;AAEnB;AAEA,MAAME,MAAM,GAAGb,UAAU,CAACgB,MAAM,CAAC;EAC/BF,SAAS,EAAE;IAAEG,IAAI,EAAE,CAAC;IAAEC,eAAe,EAAEd,KAAK,CAACe,IAAI,CAACC;EAAS,CAAC;EAC5DL,OAAO,EAAE;IAAEE,IAAI,EAAE;EAAE,CAAC;EACpBN,MAAM,EAAE;IAAEU,YAAY,EAAE;EAAG;AAC7B,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// FooterContext.js
|
|
4
|
+
import { createContext, useContext, useState } from 'react';
|
|
5
|
+
import { StyleSheet, View } from 'react-native';
|
|
6
|
+
import LayoutWithFooter from "./LayoutWithFooter.js";
|
|
7
|
+
import RequiredUpdateAppsProvider from "./RequiredUpdateAppsProvider.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const FooterContext = /*#__PURE__*/createContext(undefined);
|
|
10
|
+
export default function Provider({
|
|
11
|
+
children,
|
|
12
|
+
requiredUpdated = false,
|
|
13
|
+
updateConfig
|
|
14
|
+
}) {
|
|
15
|
+
const [footer, setFooter] = useState(null);
|
|
16
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
17
|
+
style: styles.container,
|
|
18
|
+
children: [requiredUpdated ? /*#__PURE__*/_jsx(RequiredUpdateAppsProvider, {
|
|
19
|
+
...updateConfig
|
|
20
|
+
}) : null, /*#__PURE__*/_jsx(FooterContext.Provider, {
|
|
21
|
+
value: {
|
|
22
|
+
footer,
|
|
23
|
+
setFooter
|
|
24
|
+
},
|
|
25
|
+
children: /*#__PURE__*/_jsx(LayoutWithFooter, {
|
|
26
|
+
children: children
|
|
27
|
+
})
|
|
28
|
+
})]
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export const useFooter = () => {
|
|
32
|
+
const context = useContext(FooterContext);
|
|
33
|
+
if (context === undefined) {
|
|
34
|
+
throw new Error('useFooter must be used within a Footer Provider');
|
|
35
|
+
}
|
|
36
|
+
return context;
|
|
37
|
+
};
|
|
38
|
+
const styles = StyleSheet.create({
|
|
39
|
+
container: {
|
|
40
|
+
flex: 1
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useState","StyleSheet","View","LayoutWithFooter","RequiredUpdateAppsProvider","jsx","_jsx","jsxs","_jsxs","FooterContext","undefined","Provider","children","requiredUpdated","updateConfig","footer","setFooter","style","styles","container","value","useFooter","context","Error","create","flex"],"sourceRoot":"../../../src","sources":["Provider/Provider.tsx"],"mappings":";;AAAA;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,OAAO;AAC3D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,0BAA0B,MAAM,iCAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAetE,MAAMC,aAAa,gBAAGX,aAAa,CAAgCY,SAAS,CAAC;AAE7E,eAAe,SAASC,QAAQA,CAAC;EAC/BC,QAAQ;EACRC,eAAe,GAAG,KAAK;EACvBC;AACa,CAAC,EAAE;EAChB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGhB,QAAQ,CAAC,IAAI,CAAC;EAE1C,oBACEQ,KAAA,CAACN,IAAI;IAACe,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAP,QAAA,GAC3BC,eAAe,gBACdP,IAAA,CAACF,0BAA0B;MAAA,GAAKU;IAAY,CAAG,CAAC,GAC9C,IAAI,eACRR,IAAA,CAACG,aAAa,CAACE,QAAQ;MAACS,KAAK,EAAE;QAAEL,MAAM;QAAEC;MAAU,CAAE;MAAAJ,QAAA,eACnDN,IAAA,CAACH,gBAAgB;QAAAS,QAAA,EAAEA;MAAQ,CAAmB;IAAC,CACzB,CAAC;EAAA,CACrB,CAAC;AAEX;AAEA,OAAO,MAAMS,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAMC,OAAO,GAAGvB,UAAU,CAACU,aAAa,CAAC;EACzC,IAAIa,OAAO,KAAKZ,SAAS,EAAE;IACzB,MAAM,IAAIa,KAAK,CAAC,iDAAiD,CAAC;EACpE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,MAAMJ,MAAM,GAAGjB,UAAU,CAACuB,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Image, StyleSheet, View } from 'react-native';
|
|
4
|
+
import { Button, Color, Container, Modal, Typography } from "../index.js";
|
|
5
|
+
import { useEffect } from 'react';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export default function RequiredUpdateAppsProvider({
|
|
8
|
+
title,
|
|
9
|
+
description,
|
|
10
|
+
buttonText = 'Update Sekarang',
|
|
11
|
+
onUpdate
|
|
12
|
+
}) {
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
onUpdate?.(false);
|
|
15
|
+
}, [onUpdate]);
|
|
16
|
+
return /*#__PURE__*/_jsx(View, {
|
|
17
|
+
children: /*#__PURE__*/_jsxs(Modal, {
|
|
18
|
+
height: 300,
|
|
19
|
+
isOpen: true,
|
|
20
|
+
closable: false,
|
|
21
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
22
|
+
source: require('../../example/assets/updateapps.png'),
|
|
23
|
+
style: styles.image
|
|
24
|
+
}), /*#__PURE__*/_jsxs(Container, {
|
|
25
|
+
style: styles.container,
|
|
26
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
27
|
+
variant: "h4",
|
|
28
|
+
weight: "semibold",
|
|
29
|
+
color: Color.gray[800],
|
|
30
|
+
center: true,
|
|
31
|
+
children: title
|
|
32
|
+
}), /*#__PURE__*/_jsxs(Typography, {
|
|
33
|
+
variant: "t1",
|
|
34
|
+
weight: "regular",
|
|
35
|
+
color: Color.gray[600],
|
|
36
|
+
center: true,
|
|
37
|
+
children: [description, "."]
|
|
38
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
39
|
+
style: {},
|
|
40
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
41
|
+
title: buttonText,
|
|
42
|
+
color: "primary"
|
|
43
|
+
})
|
|
44
|
+
})]
|
|
45
|
+
})]
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const styles = StyleSheet.create({
|
|
50
|
+
image: {
|
|
51
|
+
position: 'absolute',
|
|
52
|
+
marginTop: -60,
|
|
53
|
+
left: 30
|
|
54
|
+
},
|
|
55
|
+
container: {
|
|
56
|
+
gap: 20,
|
|
57
|
+
marginTop: 80
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=RequiredUpdateAppsProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Image","StyleSheet","View","Button","Color","Container","Modal","Typography","useEffect","jsx","_jsx","jsxs","_jsxs","RequiredUpdateAppsProvider","title","description","buttonText","onUpdate","children","height","isOpen","closable","source","require","style","styles","image","container","variant","weight","color","gray","center","create","position","marginTop","left","gap"],"sourceRoot":"../../../src","sources":["Provider/RequiredUpdateAppsProvider.tsx"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACtD,SAASC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,KAAK,EAAEC,UAAU,QAAQ,aAAI;AAEhE,SAASC,SAAS,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElC,eAAe,SAASC,0BAA0BA,CAAC;EACjDC,KAAK;EACLC,WAAW;EACXC,UAAU,GAAG,iBAAiB;EAC9BC;AAC+B,CAAC,EAAE;EAClCT,SAAS,CAAC,MAAM;IACdS,QAAQ,GAAG,KAAK,CAAC;EACnB,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EACd,oBACEP,IAAA,CAACR,IAAI;IAAAgB,QAAA,eACHN,KAAA,CAACN,KAAK;MAACa,MAAM,EAAE,GAAI;MAACC,MAAM,EAAE,IAAK;MAACC,QAAQ,EAAE,KAAM;MAAAH,QAAA,gBAChDR,IAAA,CAACV,KAAK;QACJsB,MAAM,EAAEC,OAAO,CAAC,qCAAqC,CAAE;QACvDC,KAAK,EAAEC,MAAM,CAACC;MAAM,CACrB,CAAC,eACFd,KAAA,CAACP,SAAS;QAACmB,KAAK,EAAEC,MAAM,CAACE,SAAU;QAAAT,QAAA,gBACjCR,IAAA,CAACH,UAAU;UACTqB,OAAO,EAAC,IAAI;UACZC,MAAM,EAAC,UAAU;UACjBC,KAAK,EAAE1B,KAAK,CAAC2B,IAAI,CAAC,GAAG,CAAE;UACvBC,MAAM;UAAAd,QAAA,EAELJ;QAAK,CACI,CAAC,eACbF,KAAA,CAACL,UAAU;UACTqB,OAAO,EAAC,IAAI;UACZC,MAAM,EAAC,SAAS;UAChBC,KAAK,EAAE1B,KAAK,CAAC2B,IAAI,CAAC,GAAG,CAAE;UACvBC,MAAM;UAAAd,QAAA,GAELH,WAAW,EAAC,GACf;QAAA,CAAY,CAAC,eACbL,IAAA,CAACR,IAAI;UAACsB,KAAK,EAAE,CAAC,CAAE;UAAAN,QAAA,eACdR,IAAA,CAACP,MAAM;YAACW,KAAK,EAAEE,UAAW;YAACc,KAAK,EAAC;UAAS,CAAE;QAAC,CACzC,CAAC;MAAA,CACE,CAAC;IAAA,CACP;EAAC,CACJ,CAAC;AAEX;AAEA,MAAML,MAAM,GAAGxB,UAAU,CAACgC,MAAM,CAAC;EAC/BP,KAAK,EAAE;IACLQ,QAAQ,EAAE,UAAU;IACpBC,SAAS,EAAE,CAAC,EAAE;IACdC,IAAI,EAAE;EACR,CAAC;EACDT,SAAS,EAAE;IACTU,GAAG,EAAE,EAAE;IACPF,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["Provider/type.tsx"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# 📦 RadioButton – Komponen React Native
|
|
2
|
+
|
|
3
|
+
Komponen `RadioButton` ini digunakan untuk menampilkan daftar pilihan dalam bentuk radio button di aplikasi React Native.
|
|
4
|
+

|
|
5
|
+
|
|
6
|
+
## 📄 Import
|
|
7
|
+
|
|
8
|
+
```tsx
|
|
9
|
+
import RadioButton from './RadioButton';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## ⚙️ Props
|
|
13
|
+
|
|
14
|
+
| Nama Props | Tipe | Default | Deskripsi |
|
|
15
|
+
|------------------|--------------------------------------------|-------------|---------------------------------------------------------------------------|
|
|
16
|
+
| `items` | `RadioButtonItem[]` | - | Daftar item radio yang ingin ditampilkan. |
|
|
17
|
+
| `selectedValue` | `string \| null` | `null` | Nilai yang saat ini dipilih oleh pengguna. |
|
|
18
|
+
| `onChange` | `(value: string) => void` | - | Fungsi callback saat item dipilih. |
|
|
19
|
+
| `direction` | `'vertical' \| 'horizontal'` | `'vertical'`| Arah layout dari item radio: vertikal atau horizontal. |
|
|
20
|
+
|
|
21
|
+
## 📄 Tipe `RadioButtonItem`
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
interface RadioButtonItem {
|
|
25
|
+
label: string; // Teks yang ditampilkan untuk radio
|
|
26
|
+
value: string; // Nilai yang digunakan untuk identifikasi
|
|
27
|
+
disabled?: boolean; // Menonaktifkan tombol radio
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 💡 Contoh Penggunaan
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
<RadioButton
|
|
35
|
+
items={[
|
|
36
|
+
{ label: 'Laki-laki', value: 'M' },
|
|
37
|
+
{ label: 'Perempuan', value: 'F' },
|
|
38
|
+
]}
|
|
39
|
+
selectedValue={gender}
|
|
40
|
+
onChange={setGender}
|
|
41
|
+
direction="horizontal"
|
|
42
|
+
/>
|
|
43
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import { View, StyleSheet, Pressable } from 'react-native';
|
|
5
|
+
import { Typography, Color } from '@herca/rn-kit';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const RadioButton = ({
|
|
8
|
+
items,
|
|
9
|
+
selectedValue,
|
|
10
|
+
onChange,
|
|
11
|
+
direction = 'vertical'
|
|
12
|
+
}) => {
|
|
13
|
+
const [internalValue, setInternalValue] = useState(selectedValue);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
// If no value is selected, set the first non-disabled item as selected
|
|
16
|
+
if (selectedValue === null) {
|
|
17
|
+
const firstValidItem = items.find(item => !item.disabled);
|
|
18
|
+
if (firstValidItem) {
|
|
19
|
+
setInternalValue(firstValidItem.value);
|
|
20
|
+
onChange?.(firstValidItem.value);
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
setInternalValue(selectedValue);
|
|
24
|
+
}
|
|
25
|
+
}, [selectedValue, items, onChange]);
|
|
26
|
+
const handleOnPress = item => {
|
|
27
|
+
if (!item.disabled) {
|
|
28
|
+
setInternalValue(item.value);
|
|
29
|
+
onChange?.(item.value);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
return /*#__PURE__*/_jsx(View, {
|
|
33
|
+
style: [styles.container, direction === 'horizontal' && styles.horizontal],
|
|
34
|
+
children: items.map(item => {
|
|
35
|
+
const isChecked = internalValue === item.value;
|
|
36
|
+
return /*#__PURE__*/_jsx(View, {
|
|
37
|
+
style: styles.item,
|
|
38
|
+
children: /*#__PURE__*/_jsxs(Pressable, {
|
|
39
|
+
onPress: () => handleOnPress(item),
|
|
40
|
+
style: [styles.radioContainer, item.disabled && styles.disabled],
|
|
41
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
42
|
+
style: [styles.outerCircle, isChecked && styles.checkedOuter],
|
|
43
|
+
children: isChecked && /*#__PURE__*/_jsx(View, {
|
|
44
|
+
style: styles.innerCircle
|
|
45
|
+
})
|
|
46
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
|
47
|
+
variant: "t2",
|
|
48
|
+
weight: "medium",
|
|
49
|
+
color: Color.gray[800],
|
|
50
|
+
children: item.label
|
|
51
|
+
})]
|
|
52
|
+
})
|
|
53
|
+
}, item.value);
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const styles = StyleSheet.create({
|
|
58
|
+
container: {
|
|
59
|
+
gap: 8
|
|
60
|
+
},
|
|
61
|
+
horizontal: {
|
|
62
|
+
flexDirection: 'row',
|
|
63
|
+
flexWrap: 'wrap'
|
|
64
|
+
},
|
|
65
|
+
item: {
|
|
66
|
+
flexDirection: 'row',
|
|
67
|
+
alignItems: 'center',
|
|
68
|
+
marginRight: 16
|
|
69
|
+
},
|
|
70
|
+
radioContainer: {
|
|
71
|
+
gap: 8,
|
|
72
|
+
flexDirection: 'row'
|
|
73
|
+
},
|
|
74
|
+
outerCircle: {
|
|
75
|
+
width: 20,
|
|
76
|
+
height: 20,
|
|
77
|
+
borderRadius: 10,
|
|
78
|
+
borderWidth: 2,
|
|
79
|
+
borderColor: Color.gray[500] || '#ccc',
|
|
80
|
+
justifyContent: 'center',
|
|
81
|
+
alignItems: 'center'
|
|
82
|
+
},
|
|
83
|
+
checkedOuter: {
|
|
84
|
+
borderColor: Color.primary[1000] || '#007bff'
|
|
85
|
+
},
|
|
86
|
+
innerCircle: {
|
|
87
|
+
width: 10,
|
|
88
|
+
height: 10,
|
|
89
|
+
borderRadius: 5,
|
|
90
|
+
backgroundColor: Color.primary[1000] || '#007bff'
|
|
91
|
+
},
|
|
92
|
+
disabled: {
|
|
93
|
+
opacity: 0.5
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
export default RadioButton;
|
|
97
|
+
//# sourceMappingURL=RadioButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","View","StyleSheet","Pressable","Typography","Color","jsx","_jsx","jsxs","_jsxs","RadioButton","items","selectedValue","onChange","direction","internalValue","setInternalValue","firstValidItem","find","item","disabled","value","handleOnPress","style","styles","container","horizontal","children","map","isChecked","onPress","radioContainer","outerCircle","checkedOuter","innerCircle","variant","weight","color","gray","label","create","gap","flexDirection","flexWrap","alignItems","marginRight","width","height","borderRadius","borderWidth","borderColor","justifyContent","primary","backgroundColor","opacity"],"sourceRoot":"../../../src","sources":["RadioButton/RadioButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 📦 Select Component
|
|
2
|
+
|
|
3
|
+
Komponen `Select` adalah komponen pemilihan data berbasis bottom sheet dengan dukungan pencarian, multiple select, custom item renderer, dan pull-to-refresh.
|
|
4
|
+
|
|
5
|
+
## 🚀 Fitur
|
|
6
|
+
|
|
7
|
+
- ✅ Bottom Sheet
|
|
8
|
+
- 🔍 Pencarian dengan debounce
|
|
9
|
+
- 🔁 Pull-to-refresh support
|
|
10
|
+
- 🔘 Multiple/Single select
|
|
11
|
+
- 🎨 Custom render item
|
|
12
|
+
- ⚠️ Validasi jika required
|
|
13
|
+
- 🔄 Loading state
|
|
14
|
+
|
|
15
|
+
## 📦 Props
|
|
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
|
+
|
|
32
|
+
## 📌 Contoh Penggunaan
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import Select from './components/Select/Select';
|
|
36
|
+
|
|
37
|
+
const MyScreen = () => {
|
|
38
|
+
const [open, setOpen] = useState(false);
|
|
39
|
+
|
|
40
|
+
const data = [
|
|
41
|
+
{ label: 'Option 1', value: '1' },
|
|
42
|
+
{ label: 'Option 2', value: '2' },
|
|
43
|
+
];
|
|
44
|
+
|
|
45
|
+
const handleSubmit = (selected) => {
|
|
46
|
+
console.log('Selected:', selected);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<>
|
|
51
|
+
<Button title="Pilih Data" onPress={() => setOpen(true)} />
|
|
52
|
+
<Select
|
|
53
|
+
isOpen={open}
|
|
54
|
+
data={data}
|
|
55
|
+
multiple={true}
|
|
56
|
+
onClose={() => setOpen(false)}
|
|
57
|
+
onSubmit={handleSubmit}
|
|
58
|
+
onSearch={(val) => console.log('Search:', val)}
|
|
59
|
+
onRefresh={() => console.log('Refresh triggered')}
|
|
60
|
+
required={true}
|
|
61
|
+
loading={false}
|
|
62
|
+
/>
|
|
63
|
+
</>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 🔧 Catatan
|
|
69
|
+
|
|
70
|
+
- Komponen ini membutuhkan komponen-komponen pendukung:
|
|
71
|
+
- `BottomSheet`
|
|
72
|
+
- `Input`
|
|
73
|
+
- `Button`
|
|
74
|
+
- `Chip`
|
|
75
|
+
- `Loading`
|
|
76
|
+
- `Toast` (untuk validasi/error)
|
|
77
|
+
|
|
78
|
+
- Jika ingin menambahkan animasi shimmer saat loading, bisa modifikasi komponen `Loading`.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 📦 Select Component
|
|
2
|
+
|
|
3
|
+
Komponen `Select` adalah komponen pemilihan data berbasis bottom sheet dengan dukungan pencarian, multiple select, custom item renderer, dan pull-to-refresh.
|
|
4
|
+
|
|
5
|
+
## 🚀 Fitur
|
|
6
|
+
|
|
7
|
+
- ✅ Bottom Sheet
|
|
8
|
+
- 🔍 Pencarian dengan debounce
|
|
9
|
+
- 🔁 Pull-to-refresh support
|
|
10
|
+
- 🔘 Multiple/Single select
|
|
11
|
+
- 🎨 Custom render item
|
|
12
|
+
- ⚠️ Validasi jika required
|
|
13
|
+
- 🔄 Loading state
|
|
14
|
+
|
|
15
|
+
## 📦 Props
|
|
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
|
+
|
|
32
|
+
## 📌 Contoh Penggunaan
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import Select from './components/Select/Select';
|
|
36
|
+
|
|
37
|
+
const MyScreen = () => {
|
|
38
|
+
const [open, setOpen] = useState(false);
|
|
39
|
+
|
|
40
|
+
const data = [
|
|
41
|
+
{ label: 'Option 1', value: '1' },
|
|
42
|
+
{ label: 'Option 2', value: '2' },
|
|
43
|
+
];
|
|
44
|
+
|
|
45
|
+
const handleSubmit = (selected) => {
|
|
46
|
+
console.log('Selected:', selected);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<>
|
|
51
|
+
<Button title="Pilih Data" onPress={() => setOpen(true)} />
|
|
52
|
+
<Select
|
|
53
|
+
isOpen={open}
|
|
54
|
+
data={data}
|
|
55
|
+
multiple={true}
|
|
56
|
+
onClose={() => setOpen(false)}
|
|
57
|
+
onSubmit={handleSubmit}
|
|
58
|
+
onSearch={(val) => console.log('Search:', val)}
|
|
59
|
+
onRefresh={() => console.log('Refresh triggered')}
|
|
60
|
+
required={true}
|
|
61
|
+
loading={false}
|
|
62
|
+
/>
|
|
63
|
+
</>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 🔧 Catatan
|
|
69
|
+
|
|
70
|
+
- Komponen ini membutuhkan komponen-komponen pendukung:
|
|
71
|
+
- `BottomSheet`
|
|
72
|
+
- `Input`
|
|
73
|
+
- `Button`
|
|
74
|
+
- `Chip`
|
|
75
|
+
- `Loading`
|
|
76
|
+
- `Toast` (untuk validasi/error)
|
|
77
|
+
|
|
78
|
+
- Jika ingin menambahkan animasi shimmer saat loading, bisa modifikasi komponen `Loading`.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View, StyleSheet, TouchableWithoutFeedback, Keyboard } from 'react-native';
|
|
4
|
+
import { useState, useEffect } from 'react';
|
|
5
|
+
import BottomSheet from "../BottomSheet/BottomSheet.js";
|
|
6
|
+
import Button from "../Button/Button.js";
|
|
7
|
+
import Input from "../Input/Input.js";
|
|
8
|
+
import Chip from "../Chip/Chip.js";
|
|
9
|
+
import { useToast } from "../Toast/ToastContext.js";
|
|
10
|
+
import Loading from "../Loading/Loading.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
export default function Select({
|
|
13
|
+
isOpen,
|
|
14
|
+
data,
|
|
15
|
+
renderItem,
|
|
16
|
+
onClose,
|
|
17
|
+
onSubmit,
|
|
18
|
+
multiple,
|
|
19
|
+
onSearch,
|
|
20
|
+
required = false,
|
|
21
|
+
loading = false,
|
|
22
|
+
delaySearch = 300,
|
|
23
|
+
height,
|
|
24
|
+
onRefresh,
|
|
25
|
+
refreshing
|
|
26
|
+
}) {
|
|
27
|
+
const [isOpenSelect, setIsOpenSelect] = useState(false);
|
|
28
|
+
const [selected, setSelected] = useState();
|
|
29
|
+
const {
|
|
30
|
+
show
|
|
31
|
+
} = useToast();
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
setIsOpenSelect(isOpen);
|
|
34
|
+
}, [isOpen]);
|
|
35
|
+
const handleOnCloseBottom = val => {
|
|
36
|
+
onClose?.(val);
|
|
37
|
+
};
|
|
38
|
+
const handleOnPresSubmitSelect = () => {
|
|
39
|
+
if (required && (!selected || selected.length === 0)) {
|
|
40
|
+
show('Please fill a item');
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
setIsOpenSelect(false);
|
|
44
|
+
onSubmit?.(selected ? selected : []);
|
|
45
|
+
return true;
|
|
46
|
+
};
|
|
47
|
+
const handleOnSearch = val => {
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
onSearch?.(val);
|
|
50
|
+
}, delaySearch);
|
|
51
|
+
};
|
|
52
|
+
return /*#__PURE__*/_jsx(BottomSheet, {
|
|
53
|
+
onClose: handleOnCloseBottom,
|
|
54
|
+
isOpen: isOpenSelect,
|
|
55
|
+
height: height,
|
|
56
|
+
footer: /*#__PURE__*/_jsx(Button, {
|
|
57
|
+
title: "lanjutkan",
|
|
58
|
+
color: "primary",
|
|
59
|
+
onPress: handleOnPresSubmitSelect
|
|
60
|
+
}),
|
|
61
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
62
|
+
style: styles.container,
|
|
63
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
64
|
+
style: styles.containerSearch,
|
|
65
|
+
children: /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
|
|
66
|
+
onPress: Keyboard.dismiss,
|
|
67
|
+
accessible: false,
|
|
68
|
+
children: /*#__PURE__*/_jsx(Input, {
|
|
69
|
+
submitBehavior: "submit",
|
|
70
|
+
icon: "Search",
|
|
71
|
+
placeholder: "Search",
|
|
72
|
+
onChangeText: val => handleOnSearch(val)
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
}), loading ? /*#__PURE__*/_jsx(Loading, {}) : /*#__PURE__*/_jsx(Chip, {
|
|
76
|
+
options: data,
|
|
77
|
+
direction: "vertical",
|
|
78
|
+
scrollable: true,
|
|
79
|
+
selected: selected,
|
|
80
|
+
multiple: multiple,
|
|
81
|
+
onSelect: setSelected,
|
|
82
|
+
color: "primary",
|
|
83
|
+
size: "large",
|
|
84
|
+
renderItem: renderItem,
|
|
85
|
+
onRefresh: onRefresh,
|
|
86
|
+
block: true,
|
|
87
|
+
refreshing: refreshing
|
|
88
|
+
})]
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const styles = StyleSheet.create({
|
|
93
|
+
container: {
|
|
94
|
+
marginBottom: 190
|
|
95
|
+
},
|
|
96
|
+
containerSearch: {
|
|
97
|
+
gap: 14,
|
|
98
|
+
padding: 12
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["Select/type.tsx"],"mappings":"","ignoreList":[]}
|