+
))
diff --git a/client/src/components/jobs-list/jobs-list.component.jsx b/client/src/components/jobs-list/jobs-list.component.jsx
index d44fbcc06..1b1ddb888 100644
--- a/client/src/components/jobs-list/jobs-list.component.jsx
+++ b/client/src/components/jobs-list/jobs-list.component.jsx
@@ -1,11 +1,11 @@
-import { Input, Table, Icon, Button } from "antd";
+import { Button, Icon, Input, Table } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
-import { Link } from "react-router-dom";
+import { Link, withRouter } from "react-router-dom";
+import CurrencyFormatter from "../../utils/CurrencyFormatter";
import PhoneFormatter from "../../utils/PhoneFormatter";
import { alphaSort } from "../../utils/sorters";
-import { withRouter } from "react-router-dom";
-import CurrencyFormatter from "../../utils/CurrencyFormatter";
+import StartChatButton from "../chat-open-button/chat-open-button.component";
export default withRouter(function JobsList({
searchTextState,
@@ -78,13 +78,7 @@ export default withRouter(function JobsList({
return record.ownr_ph1 ? (
{record.ownr_ph1}
- {
- alert("SMSing will happen here.");
- }}
- />
+
) : (
t("general.labels.unknown")
@@ -214,10 +208,10 @@ export default withRouter(function JobsList({
return (
{
setSearchText(e.target.value);
}}
@@ -226,10 +220,10 @@ export default withRouter(function JobsList({
);
}}
- size='small'
+ size="small"
pagination={{ position: "top" }}
columns={columns.map(item => ({ ...item }))}
- rowKey='id'
+ rowKey="id"
dataSource={jobs}
rowSelection={{ selectedRowKeys: [selectedJob] }}
onChange={handleTableChange}
diff --git a/client/src/pages/jobs/jobs.page.jsx b/client/src/pages/jobs/jobs.page.jsx
index f8339a99e..41b9cfa15 100644
--- a/client/src/pages/jobs/jobs.page.jsx
+++ b/client/src/pages/jobs/jobs.page.jsx
@@ -34,10 +34,8 @@ export default connect(
const [selectedJob, setSelectedJob] = useState(hash ? hash.substr(1) : null);
const searchTextState = useState("");
const searchText = searchTextState[0];
- if (error) return ;
- //TODO Implement pagination for this.
+ if (error) return ;
- console.log(typeof searchText);
return (
-
+
);
diff --git a/client/src/redux/messaging/messaging.actions.js b/client/src/redux/messaging/messaging.actions.js
index a41cfe5d7..b89ab0ebb 100644
--- a/client/src/redux/messaging/messaging.actions.js
+++ b/client/src/redux/messaging/messaging.actions.js
@@ -9,3 +9,13 @@ export const toggleConversationVisible = conversationId => ({
type: MessagingActionTypes.TOGGLE_CONVERSATION_VISIBLE,
payload: conversationId
});
+
+export const openConversation = phone => ({
+ type: MessagingActionTypes.OPEN_CONVERSATION,
+ payload: phone
+});
+
+export const closeConversation = phone => ({
+ type: MessagingActionTypes.CLOSE_CONVERSATION,
+ payload: phone
+});
diff --git a/client/src/redux/messaging/messaging.reducer.js b/client/src/redux/messaging/messaging.reducer.js
index 9d6a39cab..f9acdf08e 100644
--- a/client/src/redux/messaging/messaging.reducer.js
+++ b/client/src/redux/messaging/messaging.reducer.js
@@ -3,8 +3,8 @@ import MessagingActionTypes from "./messaging.types";
const INITIAL_STATE = {
visible: false,
conversations: [
- { id: 1, phone: "6049992002", open: false },
- { id: 2, phone: "6049992991", open: false }
+ { phone: "6049992002", open: false },
+ { phone: "6049992991", open: false }
]
};
@@ -21,20 +21,33 @@ const messagingReducer = (state = INITIAL_STATE, action) => {
visible: true
};
case MessagingActionTypes.OPEN_CONVERSATION:
- return {
- ...state,
- conversations: [...state.conversations, action.payload]
- };
+ if (state.conversations.find(c => c.phone === action.payload))
+ return {
+ ...state,
+ conversations: state.conversations.map(c =>
+ c.phone === action.payload ? { ...c, open: true } : c
+ )
+ };
+ else
+ return {
+ ...state,
+ conversations: [
+ ...state.conversations,
+ { phone: action.payload, open: true }
+ ]
+ };
case MessagingActionTypes.CLOSE_CONVERSATION:
return {
...state,
- conversations: state.conversations.filter(c => c !== action.paylod)
+ conversations: state.conversations.filter(
+ c => c.phone !== action.payload
+ )
};
case MessagingActionTypes.TOGGLE_CONVERSATION_VISIBLE:
return {
...state,
conversations: state.conversations.map(c =>
- c.id === action.payload ? { ...c, open: !c.open } : c
+ c.phone === action.payload ? { ...c, open: !c.open } : c
)
};
default:
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index 70cdc0132..28f268853 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -339,7 +339,8 @@
},
"messaging": {
"labels": {
- "messaging": "Messaging"
+ "messaging": "Messaging",
+ "typeamessage": "Send a message..."
}
},
"notes": {
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index 4ba9c8c48..5d0ad5457 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -339,7 +339,8 @@
},
"messaging": {
"labels": {
- "messaging": "MensajerÃa"
+ "messaging": "MensajerÃa",
+ "typeamessage": "Enviar un mensaje..."
}
},
"notes": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index 7e5785c94..492d8e413 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -339,7 +339,8 @@
},
"messaging": {
"labels": {
- "messaging": "Messagerie"
+ "messaging": "Messagerie",
+ "typeamessage": "Envoyer un message..."
}
},
"notes": {