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