This commit is contained in:
zadit
2025-03-15 18:59:44 +07:00
parent 43ad59a1f8
commit a64b999a05
30 changed files with 1818 additions and 391 deletions

View File

@@ -56,6 +56,7 @@ function App() {
const [table, setTable] = useState([]);
const [totalItemsCount, setTotalItemsCount] = useState(0);
const [totalPrice, setTotalPrice] = useState(0);
const [lastTransaction, setLastTransaction] = useState(null);
const [deviceType, setDeviceType] = useState("");
const [shop, setShop] = useState([]);
const [shopItems, setShopItems] = useState([]);
@@ -77,12 +78,22 @@ function App() {
'transaction_failed',
];
const calculateTotalsFromLocalStorage = () => {
const { totalCount, totalPrice } = calculateTotals(shopId);
setTotalItemsCount(totalCount);
setTotalPrice(totalPrice);
// If 'lastTransaction' exists, proceed
const lastTransaction = JSON.parse(localStorage.getItem("lastTransaction"));
console.log(lastTransaction);
if (lastTransaction != null) {
setLastTransaction(lastTransaction);
}
};
useEffect(() => {
const calculateTotalsFromLocalStorage = () => {
const { totalCount, totalPrice } = calculateTotals(shopId);
setTotalItemsCount(totalCount);
setTotalPrice(totalPrice);
};
calculateTotalsFromLocalStorage();
@@ -181,12 +192,41 @@ function App() {
console.log("transaction notification");
// Call `setModal` with content and parameters
setModal("transaction_pending", data);
localStorage.setItem('cart', []);
calculateTotalsFromLocalStorage();
});
socket.on("transaction_confirmed", async (data) => {
console.log("transaction notification" + data);
console.log("transaction notification: " + data);
setModal("transaction_confirmed", data);
localStorage.setItem('cart', []);
const startTime = Date.now(); // Capture the start time
const timeout = 10000; // 10 seconds timeout in milliseconds
calculateTotalsFromLocalStorage();
while (localStorage.getItem("lastTransaction") === null) {
if (Date.now() - startTime > timeout) {
return; // Exit the function and don't proceed further
}
await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait 1 second
}
// If 'lastTransaction' exists, proceed
const lastTransaction = JSON.parse(localStorage.getItem("lastTransaction"));
console.log(lastTransaction);
if (lastTransaction != null) {
setLastTransaction(lastTransaction);
}
});
socket.on("transaction_success", async (data) => {
console.log("transaction notification");
@@ -228,6 +268,7 @@ function App() {
} else {
console.log(data)
setUser(data.data.user);
if(data.data.latestOpenBillTransaction != null) localStorage.setItem('lastTransaction', JSON.stringify(data.data.latestOpenBillTransaction))
if (
data.data.user.password == "unsetunsetunset" &&
localStorage.getItem("settings")
@@ -567,6 +608,7 @@ function App() {
queue={queue}
cartItemsLength={totalItemsCount}
totalPrice={totalPrice}
lastTransaction={lastTransaction}
/>
{/* <Footer
showTable={true}
@@ -607,7 +649,9 @@ function App() {
<>
<Cart
shopId={shopId}
shop={shop}
table={table}
setModal={setModal}
sendParam={handleSetParam}
socket={socket}
totalItemsCount={totalItemsCount}
@@ -649,6 +693,7 @@ function App() {
element={
<>
<Transactions
shop={shop}
shopId={shopId}
sendParam={handleSetParam}
deviceType={deviceType}
@@ -672,6 +717,7 @@ function App() {
<Modal
user={user}
shop={shop}
deviceType={deviceType}
isOpen={isModalOpen}
modalContent={modalContent}
handleMoveToTransaction={handleMoveToTransaction}