INSERT INTO `cp_filejs` (`id`,`app`,`path`,`modul`,`file_name`,`content`) VALUES ('296','3','u7/collector','scanner','js/qr.js---','import {\r\n onScanFailure,\r\n onScanSuccess\r\n} from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./qr-scanner.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\nimport {\r\n handleLink,\r\n handleUnlink\r\n} from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'./api/scanner.js\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\nimport app from \\\\\\\\\\\\\\\"./app.js\\\\\\\\\\\\\\\"\r\nimport store from \\\\\\\\\\\\\\\"./store.js\\\\\\\\\\\\\\\"\r\n\r\nvar $ = Dom7;\r\n\r\nvar html5QrCode;\r\nlet defaultConfig = {\r\n qrbox: {\r\n width: 250,\r\n height: 250\r\n },\r\n fps: 60,\r\n showTorchButtonIfSupported: true,\r\n showZoomSliderIfSupported: true,\r\n // aspectRatio: 1.7777778\r\n}\r\n\r\nconst renderResult = (result) => {\r\n const user = store.getters.user.value\r\n\r\n if (!result || result.status === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'error\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n return `
${result?.message || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Oops, looks like you scanned an invalid QR code\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'}
`\r\n }\r\n\r\n if (result.available) {\r\n return (\r\n `Congrats! This QR code is up for grabs
\r\n `\r\n )\r\n }\r\n\r\n if (!result.available) {\r\n return (\r\n `\r\nSorry, this QR code is already linked
\r\n ${result.data && result.data.linked_to == user?.id ? (\r\n ``\r\n ) : \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'}\r\n `\r\n )\r\n }\r\n}\r\n\r\n// Function to create and open the modal with default content\r\nexport function openModal() {\r\n const myModal = app.dialog.create({\r\n title: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Scan QR Code\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n content: `\r\n\r\n \r\n
\r\n `,\r\n buttons: [{\r\n text: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Close\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n onClick: function () {\r\n try {\r\n if (html5QrCode) {\r\n html5QrCode.stop()\r\n }\r\n\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'setScannedData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', null)\r\n } catch (error) {\r\n console.error(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'Error stopping qr code\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', error)\r\n }\r\n }\r\n }]\r\n })\r\n\r\n // Open the modal\r\n myModal.open()\r\n}\r\n\r\n// on link profile\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#link-profile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function () {\r\n const result = store.getters.scannedData.value\r\n\r\n if (result) {\r\n const response = await handleLink(result)\r\n if (response.status === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'error\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'setScannedData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n status: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'error\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n message: response.text,\r\n available: false\r\n })\r\n }\r\n\r\n app.dialog.close()\r\n app.dialog.alert(response.message)\r\n\r\n // reset the scanned data\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'setScannedData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', null)\r\n }\r\n})\r\n\r\n// unlink profile\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#unlink-profile\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function () {\r\n const result = store.getters.scannedData.value\r\n // close the modal\r\n app.dialog.close()\r\n\r\n if (result) {\r\n const response = await handleUnlink(result)\r\n if (response.type === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'success\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n app.dialog.alert(response.text)\r\n }\r\n\r\n // reset the scanned data\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'setScannedData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', null)\r\n }\r\n})\r\n\r\nexport function openQRModal() {\r\n openModal()\r\n\r\n html5QrCode = new Html5Qrcode(\\\\\\\\\\\\\\\"reader\\\\\\\\\\\\\\\")\r\n\r\n html5QrCode?.start({\r\n facingMode: \\\\\\\\\\\\\\\"environment\\\\\\\\\\\\\\\"\r\n },\r\n defaultConfig,\r\n onScanSuccess,\r\n onScanFailure\r\n )\r\n}\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.open-qr-modal\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function () {\r\n openQRModal()\r\n})\r\n\r\nstore.getters.scannedData.onUpdated((data) => {\r\n if (html5QrCode) {\r\n html5QrCode.stop()\r\n }\r\n\r\n if (data) {\r\n document.getElementById(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'custom-modal-content\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').innerHTML = renderResult(data)\r\n }\r\n})');