use scanner
parent
81412ef340
commit
487fd255cf
|
@ -1,7 +1,13 @@
|
||||||
import { Space, Table } from "antd";
|
import { Space, Table, message } from "antd";
|
||||||
import { FormatDatetime, WebSocketContext } from "../../utils";
|
import {
|
||||||
|
FormatDatetime,
|
||||||
|
MyAvatar,
|
||||||
|
WebSocketContext,
|
||||||
|
getUserSessionFromLocalStorage,
|
||||||
|
} from "../../utils";
|
||||||
import { useContext } from "react";
|
import { useContext } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
|
import { Constants } from "../../utils";
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
|
@ -11,8 +17,8 @@ const columns = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Used by",
|
title: "Used by",
|
||||||
dataIndex: "usedBy",
|
dataIndex: "usedByUserId",
|
||||||
key: "usedBy",
|
key: "usedByUserId",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Last used",
|
title: "Last used",
|
||||||
|
@ -35,7 +41,25 @@ const columns = [
|
||||||
key: "action",
|
key: "action",
|
||||||
render: (_, record) => (
|
render: (_, record) => (
|
||||||
<Space size="middle">
|
<Space size="middle">
|
||||||
<Link to="#">Use scanner</Link>
|
<Link
|
||||||
|
to="#"
|
||||||
|
onClick={() => {
|
||||||
|
if (localStorage.getItem("userId") === record._usedByUserId) {
|
||||||
|
message.error("You are already using this scanner");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch(`${Constants.API_ADDRESS}/scanner/${record.key}`, {
|
||||||
|
method: "PATCH",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"X-Authorization": getUserSessionFromLocalStorage(),
|
||||||
|
},
|
||||||
|
}).catch((err) => console.error(err));
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Use scanner
|
||||||
|
</Link>
|
||||||
</Space>
|
</Space>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
@ -50,10 +74,23 @@ export default function Scanners() {
|
||||||
let items = [];
|
let items = [];
|
||||||
|
|
||||||
webSocketContext.Scanners.forEach((scanner) => {
|
webSocketContext.Scanners.forEach((scanner) => {
|
||||||
|
const usedByUser = webSocketContext.AllUsers.find(
|
||||||
|
(user) => user.Id === scanner.UsedByUserId
|
||||||
|
);
|
||||||
|
|
||||||
items.push({
|
items.push({
|
||||||
key: scanner.Id,
|
key: scanner.Id,
|
||||||
name: scanner.Name,
|
name: scanner.Name,
|
||||||
usedBy: scanner.UsedByUserId,
|
usedByUserId:
|
||||||
|
scanner.UsedByUserId === "" ? (
|
||||||
|
Constants.TEXT_EMPTY_PLACEHOLDER
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<MyAvatar avatar={usedByUser.Avatar} />
|
||||||
|
<span> {usedByUser.Username}</span>
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
_usedByUserId: scanner.UsedByUserId,
|
||||||
lastUsed: scanner.LastUsed,
|
lastUsed: scanner.LastUsed,
|
||||||
registeredAt: FormatDatetime(scanner.RegisteredAt),
|
registeredAt: FormatDatetime(scanner.RegisteredAt),
|
||||||
userAgent: scanner.UserAgent,
|
userAgent: scanner.UserAgent,
|
||||||
|
|
14
src/utils.js
14
src/utils.js
|
@ -104,6 +104,7 @@ const ReceivedMessagesCommands = {
|
||||||
UpdateAllUsersUserAvatar: 10,
|
UpdateAllUsersUserAvatar: 10,
|
||||||
NewScanner: 11,
|
NewScanner: 11,
|
||||||
DeleteScanner: 12,
|
DeleteScanner: 12,
|
||||||
|
UpdateScannerUsedByUserId: 13,
|
||||||
};
|
};
|
||||||
|
|
||||||
// commands sent to the backend server
|
// commands sent to the backend server
|
||||||
|
@ -167,6 +168,8 @@ export function WebSocketProvider({
|
||||||
setGroupTasks(body.GroupTasks);
|
setGroupTasks(body.GroupTasks);
|
||||||
setGroupTasksSteps(body.GroupTasksSteps);
|
setGroupTasksSteps(body.GroupTasksSteps);
|
||||||
if (body.Scanners !== null) setScanners(body.Scanners);
|
if (body.Scanners !== null) setScanners(body.Scanners);
|
||||||
|
|
||||||
|
localStorage.setItem("userId", body.User.Id);
|
||||||
break;
|
break;
|
||||||
case ReceivedMessagesCommands.UpdateConnectedUsers:
|
case ReceivedMessagesCommands.UpdateConnectedUsers:
|
||||||
setConnectedWebSocketUsersCount(body.WebSocketUsersCount);
|
setConnectedWebSocketUsersCount(body.WebSocketUsersCount);
|
||||||
|
@ -251,6 +254,17 @@ export function WebSocketProvider({
|
||||||
case ReceivedMessagesCommands.DeleteScanner:
|
case ReceivedMessagesCommands.DeleteScanner:
|
||||||
setScanners((arr) => arr.filter((arr) => arr.Id !== body.Id));
|
setScanners((arr) => arr.filter((arr) => arr.Id !== body.Id));
|
||||||
break;
|
break;
|
||||||
|
case ReceivedMessagesCommands.UpdateScannerUsedByUserId:
|
||||||
|
setScanners((arr) => {
|
||||||
|
const newArr = [...arr];
|
||||||
|
|
||||||
|
newArr[
|
||||||
|
arr.findIndex((arr1) => arr1.Id === body.ScannerId)
|
||||||
|
].UsedByUserId = body.UsedByUserId;
|
||||||
|
|
||||||
|
return newArr;
|
||||||
|
});
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
console.error("unknown command", cmd);
|
console.error("unknown command", cmd);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue