Tambah fitur notifikasi untuk android

Add:
- android/app/src/main/res/xml/

Fix:
- android/app/src/main/AndroidManifest.xml
- android/build.gradle
- app/(application)/(user)/test-notifications.tsx
- bun.lock
- package.json

### No Issue
This commit is contained in:
2026-01-02 17:43:23 +08:00
parent 3f85f330d2
commit 73a473cdc7
7 changed files with 303 additions and 79 deletions

View File

@@ -12,33 +12,45 @@ import Toast from "react-native-toast-message";
export default function TestNotification() {
const { user } = useAuth();
const [data, setData] = useState("");
const [loading, setLoading] = useState(false);
const handleSubmit = async () => {
console.log("[Data Dikirim]", data);
const response = await apiNotificationsSend({
data: {
title: "Test Notification !!",
body: data,
userLoginId: user?.id || "",
appId: "hipmi",
status: "publish",
kategoriApp: "JOB",
type: "announcement",
deepLink: "/job/cmhjz8u3h0005cfaxezyeilrr",
},
});
if (response.success) {
console.log("[RES SEND NOTIF]", JSON.stringify(response, null, 2));
Toast.show({
type: "success",
text1: "Notifikasi berhasil dikirim",
try {
console.log("[Data Dikirim]", data);
setLoading(true);
const response = await apiNotificationsSend({
data: {
title: "Test Notification !!",
body: data,
userLoginId: user?.id || "",
appId: "hipmi",
status: "publish",
kategoriApp: "JOB",
type: "announcement",
deepLink: "/job/cmhjz8u3h0005cfaxezyeilrr",
},
});
} else {
if (response.success) {
console.log("[RES SEND NOTIF]", JSON.stringify(response, null, 2));
Toast.show({
type: "success",
text1: "Notifikasi berhasil dikirim",
});
} else {
Toast.show({
type: "error",
text1: "Gagal mengirim notifikasi",
});
}
} catch (error) {
console.log("[ERROR SEND NOTIF]", error);
Toast.show({
type: "error",
text1: "Gagal mengirim notifikasi",
});
} finally {
setLoading(false);
}
};
@@ -48,16 +60,12 @@ export default function TestNotification() {
<StackCustom>
<TextInputCustom
required
label="Nama"
placeholder="Masukkan nama"
label="Pesan"
placeholder="Masukkan pesan"
value={data}
onChangeText={(text) => setData(text)}
/>
<ButtonCustom
onPress={() => {
handleSubmit();
}}
>
<ButtonCustom onPress={handleSubmit} disabled={loading}>
Kirim
</ButtonCustom>
</StackCustom>