diff --git a/android/app/build.gradle b/android/app/build.gradle index 9c55888..ef41eb1 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -92,8 +92,8 @@ android { applicationId 'mobiledarmasaba.app' minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 16 - versionName "2.1.0" + versionCode 17 + versionName "2.2.0" } signingConfigs { debug { diff --git a/app.config.js b/app.config.js index 18beb0b..a1cbb22 100644 --- a/app.config.js +++ b/app.config.js @@ -4,7 +4,7 @@ export default { expo: { name: "Desa+", slug: "mobile-darmasaba", - version: "2.1.0", // Versi aplikasi (App Store) + version: "2.2.0", // Versi aplikasi (App Store) jsEngine: "jsc", orientation: "portrait", icon: "./assets/images/logo-icon-small.png", @@ -14,7 +14,7 @@ export default { ios: { supportsTablet: true, bundleIdentifier: "mobiledarmasaba.app", - buildNumber: "9", + buildNumber: "10", infoPlist: { ITSAppUsesNonExemptEncryption: false, CFBundleDisplayName: "Desa+" @@ -23,7 +23,7 @@ export default { }, android: { package: "mobiledarmasaba.app", - versionCode: 16, + versionCode: 17, adaptiveIcon: { foregroundImage: "./assets/images/logo-icon-small.png", backgroundColor: "#ffffff" diff --git a/components/imageNew.tsx b/components/imageNew.tsx index b741e56..45b9bce 100644 --- a/components/imageNew.tsx +++ b/components/imageNew.tsx @@ -10,7 +10,7 @@ type Props = { onError?: (val:boolean) => void } -export default function ImageUser({ src, size, border, onError }: Props) { +export default function ImageUser({ src, size, border = true, onError }: Props) { const [error, setError] = useState(false) const { colors } = useTheme() return ( diff --git a/constants/styles/announcement.styles.ts b/constants/styles/announcement.styles.ts index a8274dd..89f1d40 100644 --- a/constants/styles/announcement.styles.ts +++ b/constants/styles/announcement.styles.ts @@ -4,7 +4,7 @@ const AnnouncementStyles = StyleSheet.create({ // list (index.tsx) announcementListContainer: { padding: 15, paddingBottom: 0 }, announcementListInner: { marginTop: 10 }, - announcementListCard: { borderRadius: 10, borderWidth: 1, padding: 12 }, + announcementListCard: { borderRadius: 8, borderWidth: 1, padding: 12 }, announcementListCardHeader: { marginBottom: 6 }, announcementListTitleRow: { flex: 1, gap: 8, marginRight: 8, flexDirection: 'row', alignItems: 'center' }, announcementListIconBox: { width: 28, height: 28, borderRadius: 8, alignItems: 'center', justifyContent: 'center' }, @@ -18,11 +18,11 @@ const AnnouncementStyles = StyleSheet.create({ // detail ([id].tsx) announcementDetailContainer: { padding: 15, paddingBottom: 50, gap: 12 }, - announcementDetailCard: { borderRadius: 10 }, + announcementDetailCard: { borderRadius: 8 }, announcementDetailSkeletonGap: { gap: 8 }, announcementDetailSkeletonIconRow: { gap: 10, marginBottom: 2 }, announcementDetailTitleRow: { gap: 10, marginBottom: 10 }, - announcementDetailIconBox: { width: 38, height: 38, borderRadius: 10 }, + announcementDetailIconBox: { width: 38, height: 38, borderRadius: 8 }, announcementDetailTitleText: { fontSize: 17, lineHeight: 24, flex: 1 }, announcementDetailSectionLabelRow: { marginBottom: 8, gap: 6 }, announcementDetailFileCardPadding: { padding: 10 }, @@ -33,7 +33,7 @@ const AnnouncementStyles = StyleSheet.create({ announcementDetailGroupSeparator: { marginTop: 12, paddingTop: 12, borderTopWidth: 1 }, announcementDetailGroupLabel: { marginBottom: 6 }, announcementDetailDivisionRow: { gap: 8, paddingVertical: 6 }, - announcementDetailDivisionIconCircle: { width: 26, height: 26, borderRadius: 13, alignItems: 'center', justifyContent: 'center' }, + announcementDetailDivisionIconCircle: { width: 26, height: 26, borderRadius: 100, alignItems: 'center', justifyContent: 'center' }, }); export default AnnouncementStyles; diff --git a/constants/styles/approval.styles.ts b/constants/styles/approval.styles.ts index 17254dc..252b29a 100644 --- a/constants/styles/approval.styles.ts +++ b/constants/styles/approval.styles.ts @@ -2,7 +2,7 @@ import { StyleSheet } from "react-native"; const ApprovalStyles = StyleSheet.create({ approvalBadge: { borderRadius: 20, paddingHorizontal: 10, paddingVertical: 3, alignSelf: 'flex-start' }, - approvalItem: { borderWidth: 1, borderRadius: 10, padding: 12, marginBottom: 10 }, + approvalItem: { borderWidth: 1, borderRadius: 8, padding: 12, marginBottom: 10 }, approvalItemHeader: { justifyContent: 'space-between', marginBottom: 8 }, approvalIconMr: { marginRight: 6 }, approvalNoteBox: { borderRadius: 8, padding: 8, marginTop: 4 }, diff --git a/constants/styles/border.styles.ts b/constants/styles/border.styles.ts index 834ae46..08f27f0 100644 --- a/constants/styles/border.styles.ts +++ b/constants/styles/border.styles.ts @@ -1,12 +1,15 @@ import { StyleSheet } from "react-native"; const BorderStyles = StyleSheet.create({ - round05: { borderRadius: 5 }, + round04: { borderRadius: 4 }, + round05: { borderRadius: 8 }, round08: { borderRadius: 8 }, round10: { borderRadius: 10 }, + round12: { borderRadius: 12 }, round15: { borderRadius: 15 }, round20: { borderRadius: 20 }, round30: { borderRadius: 30 }, + roundFull: { borderRadius: 100 }, borderRight: { borderRightWidth: 1, borderRightColor: '#d6d8f6' }, borderLeft: { borderLeftWidth: 1, borderLeftColor: '#d6d8f6' }, borderBottom: { borderBottomWidth: 1, borderBottomColor: '#d6d8f6' }, diff --git a/constants/styles/button.styles.ts b/constants/styles/button.styles.ts index e3466cd..c461d6c 100644 --- a/constants/styles/button.styles.ts +++ b/constants/styles/button.styles.ts @@ -2,7 +2,7 @@ import { StyleSheet } from "react-native"; const ButtonStyles = StyleSheet.create({ btnIconHeader: { padding: 3 }, - btnFiturMenu: { padding: 13, borderRadius: 15, borderWidth: 1 }, + btnFiturMenu: { padding: 13, borderRadius: 20, borderWidth: 1 }, btnRound: { backgroundColor: '#1F3C88', borderWidth: 0, @@ -37,8 +37,8 @@ const ButtonStyles = StyleSheet.create({ padding: 5, borderWidth: 1, }, - labelStatus: { paddingHorizontal: 15, paddingVertical: 4, borderRadius: 10 }, - labelStatusSmall: { paddingHorizontal: 10, paddingVertical: 3, borderRadius: 10 }, + labelStatus: { paddingHorizontal: 15, paddingVertical: 4, borderRadius: 20 }, + labelStatusSmall: { paddingHorizontal: 10, paddingVertical: 3, borderRadius: 20 }, }); export default ButtonStyles; diff --git a/constants/styles/card.styles.ts b/constants/styles/card.styles.ts index e57d327..36cab6f 100644 --- a/constants/styles/card.styles.ts +++ b/constants/styles/card.styles.ts @@ -4,7 +4,7 @@ const CardStyles = StyleSheet.create({ wrapPaper: { padding: 10, backgroundColor: 'white', - borderRadius: 5, + borderRadius: 8, shadowColor: '#171717', shadowOffset: { width: 0, height: 0 }, shadowOpacity: 0.1, @@ -31,7 +31,7 @@ const CardStyles = StyleSheet.create({ shadowOpacity: 0.1, shadowRadius: 5, elevation: 2, - borderRadius: 5, + borderRadius: 8, marginBottom: 15, }, wrapGridCaraousel: { @@ -42,7 +42,7 @@ const CardStyles = StyleSheet.create({ shadowOpacity: 0.1, shadowRadius: 5, elevation: 2, - borderRadius: 5, + borderRadius: 8, marginLeft: 5, display: 'flex', }, @@ -57,27 +57,27 @@ const CardStyles = StyleSheet.create({ paddingVertical: 25, paddingHorizontal: 20, alignItems: 'center', - borderTopStartRadius: 5, - borderTopEndRadius: 5, + borderTopStartRadius: 8, + borderTopEndRadius: 8, }, contentPaperGrid: { height: 125, - borderBottomEndRadius: 5, - borderBottomStartRadius: 5, + borderBottomEndRadius: 8, + borderBottomStartRadius: 8, paddingHorizontal: 20, justifyContent: 'space-evenly', }, contentPaperGrid2: { height: 100, - borderBottomEndRadius: 5, - borderBottomStartRadius: 5, + borderBottomEndRadius: 8, + borderBottomStartRadius: 8, paddingHorizontal: 20, paddingVertical: 15, justifyContent: 'flex-start', }, wrapGridItem: { borderWidth: 1, - borderRadius: 5, + borderRadius: 8, padding: 10, flexDirection: 'row', alignItems: 'center', @@ -88,13 +88,13 @@ const CardStyles = StyleSheet.create({ flexDirection: 'row', alignItems: 'center', backgroundColor: 'transparent', - borderRadius: 10, + borderRadius: 8, borderWidth: 1, paddingHorizontal: 12, paddingVertical: 10, gap: 12, }, - sectionCard: { borderRadius: 12, padding: 16, borderWidth: 1 }, + sectionCard: { borderRadius: 8, padding: 16, borderWidth: 1 }, sectionHeader: { flexDirection: 'row', alignItems: 'center', marginBottom: 12 }, sectionHeaderRow: { flexDirection: 'row', @@ -110,12 +110,12 @@ const CardStyles = StyleSheet.create({ justifyContent: 'center', }, sectionActionRow: { flexDirection: 'row', alignItems: 'center', gap: 10 }, - sectionBadge: { borderRadius: 10, paddingHorizontal: 8, paddingVertical: 2 }, + sectionBadge: { borderRadius: 20, paddingHorizontal: 8, paddingVertical: 2 }, wrapBar: { height: 20, backgroundColor: '#ccc', borderRadius: 10, margin: 0, width: '100%' }, contentBar: { height: 20, backgroundColor: '#3B82F6', borderRadius: 10 }, toastContainer: { backgroundColor: 'white', - borderRadius: 10, + borderRadius: 8, padding: 10, width: '90%', borderWidth: 1, @@ -135,7 +135,7 @@ const CardStyles = StyleSheet.create({ loadingBox: { paddingVertical: 15, paddingHorizontal: 40, - borderRadius: 5, + borderRadius: 8, alignItems: 'center', gap: 10, }, @@ -143,16 +143,16 @@ const CardStyles = StyleSheet.create({ flex: 1, justifyContent: "center", marginHorizontal: 15, - borderRadius: 15, + borderRadius: 8, backgroundColor: '#19345E', display: 'flex', width: '92%', resizeMode: 'stretch', overflow: 'hidden', }, - wrapItemDiscussion: { padding: 15, borderRadius: 5, borderBottomWidth: 1 }, + wrapItemDiscussion: { padding: 15, borderRadius: 8, borderBottomWidth: 1 }, wrapItemBorderBottom: { padding: 10, borderBottomWidth: 1 }, - wrapItemBorderAll: { padding: 10, borderWidth: 1, borderRadius: 5, marginBottom: 5 }, + wrapItemBorderAll: { padding: 10, borderWidth: 1, borderRadius: 8, marginBottom: 5 }, wrapItemBorderNone: { padding: 10, marginBottom: 5 }, }); diff --git a/constants/styles/component.styles.ts b/constants/styles/component.styles.ts index 4851fa9..c5a3424 100644 --- a/constants/styles/component.styles.ts +++ b/constants/styles/component.styles.ts @@ -5,14 +5,14 @@ const ComponentStyles = StyleSheet.create({ userProfileExtraSmall: { width: 35, height: 35, borderRadius: 100 }, userProfileSmall: { width: 48, height: 48, borderRadius: 100 }, userProfileBig: { width: 100, height: 100, borderRadius: 100 }, - imgListBanner: { width: 100, height: 50, borderRadius: 5 }, + imgListBanner: { width: 100, height: 50, borderRadius: 8 }, iconContent: { padding: 10, borderRadius: 100, backgroundColor: '#E5E7EB' }, // chip chip: { paddingVertical: 5, paddingHorizontal: 15, - borderRadius: 5, + borderRadius: 20, borderWidth: 1, borderColor: "transparent", marginRight: 10, @@ -26,14 +26,14 @@ const ComponentStyles = StyleSheet.create({ top: -6, left: -6, backgroundColor: "#384288", - borderRadius: 10, + borderRadius: 8, padding: 2, }, // badge & progress badgeCol: { alignItems: 'center', gap: 6 }, - progressBadge: { borderRadius: 10, paddingHorizontal: 12, paddingVertical: 5, borderWidth: 1, alignItems: 'center' }, - taskCountBadge: { borderRadius: 6, paddingHorizontal: 7, paddingVertical: 2 }, + progressBadge: { borderRadius: 8, paddingHorizontal: 12, paddingVertical: 5, borderWidth: 1, alignItems: 'center' }, + taskCountBadge: { borderRadius: 8, paddingHorizontal: 7, paddingVertical: 2 }, positionBadge: { borderRadius: 20, paddingHorizontal: 8, paddingVertical: 3 }, textProgressPercent: { fontSize: 22, fontWeight: 'bold', lineHeight: 28 }, progressTrack: { height: 8, borderRadius: 4, overflow: 'hidden' }, @@ -41,11 +41,11 @@ const ComponentStyles = StyleSheet.create({ reportContent: { borderLeftWidth: 3, paddingLeft: 12 }, expandBtn: { flexDirection: 'row', alignItems: 'center', alignSelf: 'flex-start', marginTop: 8, gap: 4 }, fileGrid: { flexDirection: 'row', flexWrap: 'wrap', gap: 8 }, - fileCard: { width: '48%', borderRadius: 10, borderWidth: 1, padding: 12, flexDirection: 'row', alignItems: 'center', gap: 10 }, + fileCard: { width: '48%', borderRadius: 8, borderWidth: 1, padding: 12, flexDirection: 'row', alignItems: 'center', gap: 10 }, // calendar - signDate: { width: 20, height: 2, borderRadius: 3, marginTop: 3 }, - selectedDate: { backgroundColor: '#238be6', borderRadius: 5 }, + signDate: { width: 20, height: 2, borderRadius: 4, marginTop: 3 }, + selectedDate: { backgroundColor: '#238be6', borderRadius: 4 }, selectRangeDate: { backgroundColor: '#228be61f' }, calendarDotRow: { flexDirection: 'row', gap: 2, height: 6, marginTop: 1 }, calendarDot: { width: 5, height: 5, borderRadius: 3 }, @@ -55,7 +55,7 @@ const ComponentStyles = StyleSheet.create({ villageEventBadge: { paddingHorizontal: 6, paddingVertical: 2, borderRadius: 4, marginRight: 6 }, // event item - itemEvent: { padding: 10, borderRadius: 10, flexDirection: 'row', alignContent: 'stretch', marginBottom: 10 }, + itemEvent: { padding: 10, borderRadius: 8, flexDirection: 'row', alignContent: 'stretch', marginBottom: 10 }, dividerEvent: { width: 7, borderRadius: 5, marginRight: 10 }, // member @@ -75,16 +75,16 @@ const ComponentStyles = StyleSheet.create({ memberInfoContent: { flex: 1, marginLeft: 10 }, // discussion - discussionCard: { borderRadius: 10, borderWidth: 1, padding: 14 }, - discussionIconCircle: { width: 40, height: 40, borderRadius: 20, alignItems: 'center', justifyContent: 'center', flexShrink: 0 }, - discussionIconCircleLg: { width: 44, height: 44, borderRadius: 22, alignItems: 'center', justifyContent: 'center' }, + discussionCard: { borderRadius: 8, borderWidth: 1, padding: 14 }, + discussionIconCircle: { width: 40, height: 40, borderRadius: 100, alignItems: 'center', justifyContent: 'center', flexShrink: 0 }, + discussionIconCircleLg: { width: 44, height: 44, borderRadius: 100, alignItems: 'center', justifyContent: 'center' }, discussionStatusPill: { alignSelf: 'flex-start', marginTop: 3, paddingHorizontal: 8, paddingVertical: 2, borderRadius: 20, borderWidth: 1 }, discussionStatusText: { fontSize: 11, fontWeight: '600' }, discussionCardIndent: { marginLeft: 50 }, discussionSeparator: { height: 8 }, discussionCommentText: { fontSize: 12, marginLeft: 5 }, discussionDateText: { fontSize: 11 }, - discussionCommentCard: { borderRadius: 10, borderWidth: 1, padding: 12, marginBottom: 8, flexDirection: 'row' }, + discussionCommentCard: { borderRadius: 8, borderWidth: 1, padding: 12, marginBottom: 8, flexDirection: 'row' }, discussionEditedText: { fontSize: 10, fontStyle: 'italic' }, discussionHeaderPadding: { paddingTop: 12 }, discussionListPadding: { paddingTop: 8 }, @@ -98,7 +98,7 @@ const ComponentStyles = StyleSheet.create({ position: 'absolute', left: 24, right: 24, - borderRadius: 16, + borderRadius: 8, padding: 20, shadowColor: '#000', shadowOffset: { width: 0, height: 4 }, diff --git a/constants/styles/input.styles.ts b/constants/styles/input.styles.ts index 7515eee..cb3f6af 100644 --- a/constants/styles/input.styles.ts +++ b/constants/styles/input.styles.ts @@ -2,7 +2,7 @@ import { StyleSheet } from "react-native"; const InputStyles = StyleSheet.create({ inputRoundForm: { - borderRadius: 5, + borderRadius: 12, borderColor: '#d6d8f6', borderWidth: 1, paddingVertical: 10, @@ -25,7 +25,7 @@ const InputStyles = StyleSheet.create({ lineHeight: 45, fontSize: 24, borderWidth: 1, - borderRadius: 15, + borderRadius: 12, borderColor: 'gray', textAlign: 'center', }, diff --git a/constants/styles/modal.styles.ts b/constants/styles/modal.styles.ts index 4948171..28f3474 100644 --- a/constants/styles/modal.styles.ts +++ b/constants/styles/modal.styles.ts @@ -6,31 +6,31 @@ const ModalStyles = StyleSheet.create({ width: '100%', paddingBottom: 20, backgroundColor: 'white', - borderTopRightRadius: 18, - borderTopLeftRadius: 18, + borderTopRightRadius: 20, + borderTopLeftRadius: 20, position: 'absolute', bottom: 0, }, modalContentNew: { width: '100%', backgroundColor: 'white', - borderTopRightRadius: 18, - borderTopLeftRadius: 18, + borderTopRightRadius: 20, + borderTopLeftRadius: 20, paddingTop: 5, paddingBottom: 5, paddingHorizontal: 20, }, modalFloatContent: { backgroundColor: 'white', - borderRadius: 18, + borderRadius: 20, paddingTop: 5, paddingBottom: 10, paddingHorizontal: 20, }, titleContainer: { backgroundColor: 'white', - borderTopRightRadius: 10, - borderTopLeftRadius: 10, + borderTopRightRadius: 20, + borderTopLeftRadius: 20, paddingHorizontal: 20, flexDirection: 'row', alignItems: 'center', @@ -65,7 +65,7 @@ const ModalStyles = StyleSheet.create({ }, modalConfirmContainer: { width: '80%', - borderRadius: 14, + borderRadius: 8, overflow: 'hidden', elevation: 2, shadowColor: '#000', @@ -92,7 +92,7 @@ const ModalStyles = StyleSheet.create({ position: 'absolute', width: 300, height: 300, - borderRadius: 150, + borderRadius: 100, backgroundColor: 'rgba(255, 255, 255, 0.05)', top: -50, right: -50, diff --git a/constants/styles/notification.styles.ts b/constants/styles/notification.styles.ts index 0519fbc..7bf10c6 100644 --- a/constants/styles/notification.styles.ts +++ b/constants/styles/notification.styles.ts @@ -8,7 +8,7 @@ const NotificationStyles = StyleSheet.create({ notifItemRow: { flexDirection: 'row', alignItems: 'center', - borderRadius: 10, + borderRadius: 8, borderWidth: 1, paddingHorizontal: 12, paddingVertical: 10, @@ -17,7 +17,7 @@ const NotificationStyles = StyleSheet.create({ notifIconContainer: { width: 42, height: 42, - borderRadius: 21, + borderRadius: 100, alignItems: 'center', justifyContent: 'center', flexShrink: 0, diff --git a/ios/Desa.xcodeproj/project.pbxproj b/ios/Desa.xcodeproj/project.pbxproj index 942742d..b1cad5d 100644 --- a/ios/Desa.xcodeproj/project.pbxproj +++ b/ios/Desa.xcodeproj/project.pbxproj @@ -394,7 +394,7 @@ ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = mobiledarmasaba.app; - PRODUCT_NAME = Desa; + PRODUCT_NAME = "Desa"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Desa/Desa-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -429,7 +429,7 @@ ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = mobiledarmasaba.app; - PRODUCT_NAME = Desa; + PRODUCT_NAME = "Desa"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Desa/Desa-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/ios/Desa/Info.plist b/ios/Desa/Info.plist index ee1df83..7c4849d 100644 --- a/ios/Desa/Info.plist +++ b/ios/Desa/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 2.1.0 + 2.2.0 CFBundleSignature ???? CFBundleURLTypes @@ -39,7 +39,7 @@ CFBundleVersion - 9 + 10 ITSAppUsesNonExemptEncryption LSMinimumSystemVersion