import { useSelector, useDispatch } from 'react-redux'; import { ChangeTotalAmount, globalExtraTotalAmount, } from '../Features/ExteraCharges/ExtraCharges'; export const useUtilsComponent = () => { const dispatch = useDispatch(); const extraCharges = useSelector(globalExtraTotalAmount); const removeExtraCharge = (item) => { const filtered = extraCharges?.filter((e) => e?.localId !== item?.localId); dispatch(ChangeTotalAmount(filtered)); }; return { removeExtraCharge, }; }; export const generateBarcode = (code) => { try { const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); JsBarcode(svg, code, { format: 'CODE128', displayValue: false, lineColor: '#030303', width: 2, height: 40, }); const svgData = new XMLSerializer().serializeToString(svg); return `data:image/svg+xml;base64,${btoa(svgData)}`; } catch (error) { return null; } }; export const generateQRCode = (QrandbarcodeDatas, code) => { let Data = QrandbarcodeDatas?.find((e) => e?.key === code)?.url; return Data; }; export const generateQRCodeCopy = (QrandbarcodeDatas, code) => { const found = QrandbarcodeDatas?.find((e) => e?.key === code); const count = Number(found?.copiesCount); return Number.isFinite(count) && count > 0 ? count : 0; }; export const generateCodeImage = (code, codeType = 'Q', QrandbarcodeDatas) => { if (codeType === 'B') { return generateBarcode(code); } else { return generateQRCode(QrandbarcodeDatas, code); } }; export const formatDateForAPI = (date) => { if (!date) return ''; const d = new Date(date); const year = d.getFullYear(); const month = String(d.getMonth() + 1).padStart(2, '0'); const day = String(d.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; // YYYY-MM-DD };