diff --git a/src/pages/blank/RedirectWa.jsx b/src/pages/blank/RedirectWa.jsx
index ccfe7a0..8937246 100644
--- a/src/pages/blank/RedirectWa.jsx
+++ b/src/pages/blank/RedirectWa.jsx
@@ -26,7 +26,7 @@ export default function RedirectWa() {
console.log('tes', response);
- const tokenResult = JSON.stringify(response.data?.accessToken);
+ const tokenResult = JSON.stringify(response.data?.data?.accessToken);
sessionStorage.setItem('token_redirect', tokenResult);
response.data.auth = true;
diff --git a/src/pages/notification/component/ListNotification.jsx b/src/pages/notification/component/ListNotification.jsx
index 5a590ed..5ab0f87 100644
--- a/src/pages/notification/component/ListNotification.jsx
+++ b/src/pages/notification/component/ListNotification.jsx
@@ -288,14 +288,16 @@ const ListNotification = memo(function ListNotification(props) {
name: user.contact_name,
phone: user.contact_phone,
status: user.is_send ? 'Delivered' : 'Pending',
- timestamp: user.created_at
- ? new Date(user.created_at).toLocaleString('id-ID', {
- day: '2-digit',
- month: '2-digit',
- year: 'numeric',
- hour: '2-digit',
- minute: '2-digit',
- }) + ' WIB'
+ timestamp: user.updated_at
+ ? new Date(user.updated_at)
+ .toLocaleString('id-ID', {
+ day: '2-digit',
+ month: '2-digit',
+ year: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit',
+ })
+ .replace('.', ':') + ' WIB'
: 'N/A',
}));
setUserHistoryData(transformedUsers);
@@ -610,9 +612,6 @@ const ListNotification = memo(function ListNotification(props) {
icon={}
onClick={async () => {
await resendChatByUser(user.id, user.phone);
- // message.info(
- // 'Resend feature is not available yet. This feature is still under development.'
- // );
}}
>
Resend
diff --git a/src/pages/notificationDetail/IndexNotificationDetail.jsx b/src/pages/notificationDetail/IndexNotificationDetail.jsx
index 73991a5..b39171f 100644
--- a/src/pages/notificationDetail/IndexNotificationDetail.jsx
+++ b/src/pages/notificationDetail/IndexNotificationDetail.jsx
@@ -14,6 +14,8 @@ import {
message,
Avatar,
Tag,
+ Badge,
+ Divider,
} from 'antd';
import {
ArrowLeftOutlined,
@@ -33,6 +35,8 @@ import {
CheckCircleOutlined,
SyncOutlined,
SendOutlined,
+ MobileOutlined,
+ ClockCircleOutlined,
} from '@ant-design/icons';
import {
getNotificationDetail,
@@ -40,6 +44,7 @@ import {
getNotificationLogByNotificationId,
updateIsRead,
resendNotificationToUser,
+ resendChatByUser,
} from '../../api/notification';
const { Content } = Layout;
@@ -108,8 +113,19 @@ const getUsersFromNotification = (notification) => {
id: user.notification_error_user_id.toString(),
name: user.contact_name,
phone: user.contact_phone,
- status: user.is_send ? 'sent' : 'pending',
+ status: user.is_send ? 'Delivered' : 'Pending',
loading: user.loading || false,
+ timestamp: user.updated_at
+ ? new Date(user.updated_at)
+ .toLocaleString('id-ID', {
+ day: '2-digit',
+ month: '2-digit',
+ year: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit',
+ })
+ .replace('.', ':') + ' WIB'
+ : 'N/A',
}));
};
@@ -235,8 +251,6 @@ const NotificationDetailTab = (props) => {
// Fetch using the actual API
const response = await getNotificationDetail(notificationId);
- // Fetch using the actual API
- const resUpdate = await updateIsRead(notificationId);
if (response && response.data) {
const transformedData = transformNotificationData(response.data);
@@ -244,6 +258,9 @@ const NotificationDetailTab = (props) => {
// Fetch log history
fetchLogHistory(notificationId);
+
+ // Fetch using the actual API
+ const resUpdate = await updateIsRead(notificationId);
} else {
throw new Error('Notification not found');
}
@@ -465,137 +482,56 @@ const NotificationDetailTab = (props) => {
- }
+ {user.name}k
+ |
+
+ {user.phone}
+
+ |
+
-
+
+
+
+ {user.status === 'Delivered' ? (
+
+ ) : (
+
+ )}
+
+ {user.status === 'Delivered'
+ ? 'Success Delivered at'
+ : 'Status '}{' '}
+ {user.timestamp}
+
-
- {getStatusTag(user.status)}
+
}
- size="small"
- loading={user.loading}
- onClick={async (e) => {
- e.stopPropagation();
- const userId = parseInt(
- user.id
+ onClick={async () => {
+ await resendChatByUser(
+ user.id,
+ user.phone
);
- try {
- // Update user status to show loading
- const updatedUsers =
- notification.users.map(
- (u) =>
- u.notification_error_user_id ===
- userId
- ? {
- ...u,
- loading: true,
- }
- : u
- );
- setNotification({
- ...notification,
- users: updatedUsers,
- });
-
- // Call the resend API
- const response =
- await resendNotificationToUser(
- notification.notification_error_id,
- userId
- );
-
- if (
- response &&
- response.statusCode ===
- 200
- ) {
- message.success(
- `Notification resent to ${user.name}`
- );
-
- // Update user status
- const updatedUsersAfterSuccess =
- notification.users.map(
- (u) =>
- u.notification_error_user_id ===
- userId
- ? {
- ...u,
- is_send: true,
- status: 'sent',
- loading: false,
- }
- : {
- ...u,
- loading: false,
- }
- );
- setNotification({
- ...notification,
- users: updatedUsersAfterSuccess,
- });
- } else {
- throw new Error(
- response?.message ||
- 'Failed to resend notification'
- );
- }
- } catch (error) {
- console.error(
- 'Error resending notification:',
- error
- );
- message.error(
- error.message ||
- 'Failed to resend notification'
- );
-
- // Reset loading state
- const resetUsers =
- notification.users.map(
- (u) =>
- u.notification_error_user_id ===
- userId
- ? {
- ...u,
- loading: false,
- }
- : u
- );
- setNotification({
- ...notification,
- users: resetUsers,
- });
- }
}}
>
Resend
-
+