Skip to content

Commit

Permalink
fix: 修正聯絡人重複加入,尚未登入時應無法進入聊天室頁面
Browse files Browse the repository at this point in the history
  • Loading branch information
Shih-Hsuan committed Jan 5, 2024
1 parent 752e3c9 commit 54ea9c6
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 30 deletions.
30 changes: 18 additions & 12 deletions src/app/chat/page.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,29 @@ import "@chatscope/chat-ui-kit-styles/dist/default/styles.min.css";

const token = Cookies.get("token");

// const users = localStorage.getItem("usersReceiver");
// const users = [
// { id: "1", name: "admin" },
// { id: "2", name: "shit" },
// ];

const WebSocketTest = () => {
// const [user, setUser] = useState(null);
const [userMessage, setUserMessage] = useState(""); /* 使用者輸入欄的訊息 */
const [messages, setMessages] = useState([]);
const [client, setClient] = useState(null);

const [selectedUser, setSelectedUser] = useState(null);
const [isInputDisabled, setIsInputDisabled] = useState(true);

const handleUserClick = (userId) => {
console.log(userId);
// console.log(userId);
setSelectedUser(userId);
setMessages([]);
fetchPreviousMessages(userId);
handleCondition();
setIsInputDisabled(false);
};

const handleCondition = () => {
if (selectedUser !== null) {
setIsInputDisabled(false);
} else {
setIsInputDisabled(true);
}
};

/* 取得聯絡人資訊 */
Expand All @@ -59,8 +64,8 @@ const WebSocketTest = () => {
const parsedContacts = JSON.parse(storedContacts);
// 檢查每個 storedContacts 是否存在於 users 中,若不存在則加入
parsedContacts.forEach(contact => {
if (!users.some(user => user.id === contact.id)) {
console.log("test" + parsedContacts)
if (!contactsArray.some(user => user.id == contact.id)) {
console.log(`Contact ${contact.id} not found in contactsArray`);
setContacts(prevContacts => [...prevContacts, contact]);
}
});
Expand Down Expand Up @@ -123,7 +128,7 @@ const WebSocketTest = () => {
.filter((message) => message !== null); // 過濾掉可能的空值
setMessages(messageObjects);

console.log(previousMessagesData);
// console.log(previousMessagesData);
// 設置先前的聊天訊息到狀態中
// setPreviousMessages(previousMessagesData);
} catch (error) {
Expand Down Expand Up @@ -188,7 +193,7 @@ const WebSocketTest = () => {
};
}
});
console.log(messageObjects);
// console.log(messageObjects);
setMessages(messageObjects);
// messageObjects.forEach((msgObj) => {
// setMessages((prevMessages) => [...prevMessages, msgObj]);
Expand Down Expand Up @@ -308,6 +313,7 @@ const WebSocketTest = () => {
</MessageList>
<MessageInput
value={userMessage}
disabled={isInputDisabled}
onChange={handleInputChange}
placeholder="請在此輸入訊息"
onSend={handleSendMessage}
Expand Down
47 changes: 29 additions & 18 deletions src/components/MediaCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -88,25 +88,36 @@ export default function MediaCard({ commodity }) {
const [user, setUser] = React.useState(null);

const handleButtonClick = () => {
// 從本地端存儲讀取已有的使用者資訊陣列,如果沒有就創建一個新陣列
localStorage.removeItem("usersReceiver");
const users = JSON.parse(
localStorage.getItem("usersReceiver") ?? "[]"
);
const sellerIDToAdd = (commodity.sellerID);
const sellerNameToAdd = (commodity.sellerName);

const isSellerIDExists = users.some(
(user) => user.id === sellerIDToAdd
);

if (!isSellerIDExists) {
// 將新的 sellerID 添加到 users 陣列
users.push({ id: sellerIDToAdd, name: sellerNameToAdd });
// 存回 localStorage
localStorage.setItem("usersReceiver", JSON.stringify(users));
if(user){
// 從本地端存儲讀取已有的使用者資訊陣列,如果沒有就創建一個新陣列
localStorage.removeItem("usersReceiver");
const users = JSON.parse(
localStorage.getItem("usersReceiver") ?? "[]"
);
if(commodity.sellerID != user.id){
const sellerIDToAdd = (commodity.sellerID);
const sellerNameToAdd = (commodity.sellerName);

const isSellerIDExists = users.some(
(user) => user.id === sellerIDToAdd
);

if (!isSellerIDExists) {
// 將新的 sellerID 添加到 users 陣列
users.push({ id: sellerIDToAdd, name: sellerNameToAdd });
// 存回 localStorage
localStorage.setItem("usersReceiver", JSON.stringify(users));
}
window.location.href = '../chat'
}
else{
setError("此商品為您的商品");
setOpenSnackbarErrror(true);
}
}
else{
window.location.href = "/sign-in";
}
window.location.href = '../chat'
};

React.useEffect(() => {
Expand Down

0 comments on commit 54ea9c6

Please sign in to comment.