version 1.2
This commit is contained in:
parent
a648994761
commit
c3069e6f0e
|
|
@ -4,3 +4,5 @@ Command: ssh root@172.16.7.48
|
|||
Password: Work1234
|
||||
|
||||
server folder: /root/facebook-publist-server/auto-post-marketplace-facebook/server
|
||||
|
||||
Chỉnh sửa liên quan đến nội dung: @lib/ultils.ts
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
"css": "src/index.css",
|
||||
"baseColor": "neutral",
|
||||
"cssVariables": true,
|
||||
"prefix": ""
|
||||
"prefix": "tw"
|
||||
},
|
||||
"aliases": {
|
||||
"components": "@/components",
|
||||
|
|
@ -18,4 +18,4 @@
|
|||
"hooks": "@/hooks"
|
||||
},
|
||||
"iconLibrary": "lucide"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,11 +17,13 @@
|
|||
"@radix-ui/react-label": "^2.1.7",
|
||||
"@radix-ui/react-popover": "^1.1.15",
|
||||
"@radix-ui/react-progress": "^1.1.7",
|
||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
||||
"@radix-ui/react-select": "^2.2.6",
|
||||
"@radix-ui/react-slot": "^1.2.3",
|
||||
"@radix-ui/react-tabs": "^1.1.13",
|
||||
"@radix-ui/react-toggle": "^1.1.10",
|
||||
"@radix-ui/react-toggle-group": "^1.1.11",
|
||||
"@radix-ui/react-tooltip": "^1.2.8",
|
||||
"@tailwindcss/vite": "^4.1.12",
|
||||
"@tanstack/react-query": "^5.85.5",
|
||||
"axios": "^1.11.0",
|
||||
|
|
@ -31,11 +33,13 @@
|
|||
"fs-extra": "^11.3.1",
|
||||
"lodash": "^4.17.21",
|
||||
"lucide-react": "^0.540.0",
|
||||
"next-themes": "^0.4.6",
|
||||
"p-queue": "^8.1.0",
|
||||
"react": "^19.1.1",
|
||||
"react-day-picker": "^9.9.0",
|
||||
"react-dom": "^19.1.1",
|
||||
"react-hook-form": "^7.62.0",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"tailwindcss": "^4.1.12",
|
||||
"use-debounce": "^10.0.5",
|
||||
|
|
@ -1449,6 +1453,37 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-scroll-area": {
|
||||
"version": "1.2.10",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz",
|
||||
"integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@radix-ui/number": "1.1.1",
|
||||
"@radix-ui/primitive": "1.1.3",
|
||||
"@radix-ui/react-compose-refs": "1.1.2",
|
||||
"@radix-ui/react-context": "1.1.2",
|
||||
"@radix-ui/react-direction": "1.1.1",
|
||||
"@radix-ui/react-presence": "1.1.5",
|
||||
"@radix-ui/react-primitive": "2.1.3",
|
||||
"@radix-ui/react-use-callback-ref": "1.1.1",
|
||||
"@radix-ui/react-use-layout-effect": "1.1.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": "*",
|
||||
"@types/react-dom": "*",
|
||||
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/react": {
|
||||
"optional": true
|
||||
},
|
||||
"@types/react-dom": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-select": {
|
||||
"version": "2.2.6",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz",
|
||||
|
|
@ -1594,6 +1629,40 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-tooltip": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz",
|
||||
"integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@radix-ui/primitive": "1.1.3",
|
||||
"@radix-ui/react-compose-refs": "1.1.2",
|
||||
"@radix-ui/react-context": "1.1.2",
|
||||
"@radix-ui/react-dismissable-layer": "1.1.11",
|
||||
"@radix-ui/react-id": "1.1.1",
|
||||
"@radix-ui/react-popper": "1.2.8",
|
||||
"@radix-ui/react-portal": "1.1.9",
|
||||
"@radix-ui/react-presence": "1.1.5",
|
||||
"@radix-ui/react-primitive": "2.1.3",
|
||||
"@radix-ui/react-slot": "1.2.3",
|
||||
"@radix-ui/react-use-controllable-state": "1.2.2",
|
||||
"@radix-ui/react-visually-hidden": "1.2.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": "*",
|
||||
"@types/react-dom": "*",
|
||||
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
|
||||
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/react": {
|
||||
"optional": true
|
||||
},
|
||||
"@types/react-dom": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@radix-ui/react-use-callback-ref": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
|
||||
|
|
@ -5329,6 +5398,16 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/next-themes": {
|
||||
"version": "0.4.6",
|
||||
"resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz",
|
||||
"integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc",
|
||||
"react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc"
|
||||
}
|
||||
},
|
||||
"node_modules/nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
|
|
@ -6396,6 +6475,16 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/sonner": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz",
|
||||
"integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc",
|
||||
"react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
||||
|
|
|
|||
|
|
@ -25,11 +25,13 @@
|
|||
"@radix-ui/react-label": "^2.1.7",
|
||||
"@radix-ui/react-popover": "^1.1.15",
|
||||
"@radix-ui/react-progress": "^1.1.7",
|
||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
||||
"@radix-ui/react-select": "^2.2.6",
|
||||
"@radix-ui/react-slot": "^1.2.3",
|
||||
"@radix-ui/react-tabs": "^1.1.13",
|
||||
"@radix-ui/react-toggle": "^1.1.10",
|
||||
"@radix-ui/react-toggle-group": "^1.1.11",
|
||||
"@radix-ui/react-tooltip": "^1.2.8",
|
||||
"@tailwindcss/vite": "^4.1.12",
|
||||
"@tanstack/react-query": "^5.85.5",
|
||||
"axios": "^1.11.0",
|
||||
|
|
@ -39,11 +41,13 @@
|
|||
"fs-extra": "^11.3.1",
|
||||
"lodash": "^4.17.21",
|
||||
"lucide-react": "^0.540.0",
|
||||
"next-themes": "^0.4.6",
|
||||
"p-queue": "^8.1.0",
|
||||
"react": "^19.1.1",
|
||||
"react-day-picker": "^9.9.0",
|
||||
"react-dom": "^19.1.1",
|
||||
"react-hook-form": "^7.62.0",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"tailwindcss": "^4.1.12",
|
||||
"use-debounce": "^10.0.5",
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
"matches": ["https://www.facebook.com/*"]
|
||||
}
|
||||
],
|
||||
"permissions": ["tabs", "activeTab", "scripting"],
|
||||
"permissions": ["tabs", "activeTab", "scripting", "storage"],
|
||||
"icons": {
|
||||
"16": "icons/16.png",
|
||||
"32": "icons/32.png",
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
function a(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function s(e,t=[]){return Object.entries(e).reduce((r,[n,o])=>((o||t.includes(n))&&(r[n]=o),r),{})}function u(e){return new Promise(t=>setTimeout(t,e))}function l(e,t){const r=Math.floor(Math.random()*(t-e+1))+e;return u(r)}export{u as a,l as d,a as g,s as r};
|
||||
|
|
@ -0,0 +1 @@
|
|||
function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}async function u(e){return fetch(e).then(t=>t.blob()).then(t=>new Promise((n,o)=>{const r=new FileReader;r.onloadend=()=>{typeof r.result=="string"?n(r.result):o("Failed to convert blob to base64")},r.onerror=o,r.readAsDataURL(t)}))}function l(e,t=[]){return Object.entries(e).reduce((n,[o,r])=>((r||t.includes(o))&&(n[o]=r),n),{})}function a(e){return new Promise(t=>setTimeout(t,e))}function d(e,t){const n=Math.floor(Math.random()*(t-e+1))+e;return a(n)}export{a,d,s as g,l as r,u};
|
||||
|
|
@ -0,0 +1 @@
|
|||
async function a(n){return fetch(n).then(o=>o.blob()).then(o=>new Promise((t,r)=>{const e=new FileReader;e.onloadend=()=>{typeof e.result=="string"?t(e.result):r("Failed to convert blob to base64")},e.onerror=r,e.readAsDataURL(o)}))}export{a as u};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{R as c,j as s,Q as u,q as l,P as d}from"./popup-D--aKLqS.js";import"./base64-BbJB1hmJ.js";import"./product-api.service-DR0CE0o9.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})}));
|
||||
import{R as c,j as s,Q as u,q as l,P as d}from"./popup-BJkdpTff.js";import"./base64-BbJB1hmJ.js";import"./product-api.service-PLptzR9s.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})}));
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{R as r,j as t,Q as i,q as o,P as n}from"../assets/popup-D--aKLqS.js";import{C as s}from"../assets/contants-Cf0CQNSY.js";import"../assets/base64-BbJB1hmJ.js";import"../assets/product-api.service-DR0CE0o9.js";import"../assets/app-C7VSS-q9.js";const e=document.getElementById(s.ID_EXTENSION);e&&r.createRoot(e).render(t.jsx(t.Fragment,{children:t.jsx(i,{client:o,children:t.jsx("div",{className:"fixed bottom-20 right-6",children:t.jsx(n,{})})})}));
|
||||
import{r as m,j as o,T as b,R as j,Q as E,q as T,P as C}from"../assets/popup-BJkdpTff.js";import{C as w}from"../assets/contants-Cf0CQNSY.js";import"../assets/base64-BbJB1hmJ.js";import"../assets/product-api.service-PLptzR9s.js";import"../assets/app-C7VSS-q9.js";var I=(t,n,d,a,i,r,p,u)=>{let s=document.documentElement,h=["light","dark"];function c(e){(Array.isArray(t)?t:[t]).forEach(l=>{let g=l==="class",S=g&&r?i.map(y=>r[y]||y):i;g?(s.classList.remove(...S),s.classList.add(r&&r[e]?r[e]:e)):s.setAttribute(l,e)}),x(e)}function x(e){u&&h.includes(e)&&(s.style.colorScheme=e)}function v(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(a)c(a);else try{let e=localStorage.getItem(n)||d,l=p&&e==="system"?v():e;c(l)}catch{}},N=m.createContext(void 0),R={setTheme:t=>{},themes:[]},k=()=>{var t;return(t=m.useContext(N))!=null?t:R};m.memo(({forcedTheme:t,storageKey:n,attribute:d,enableSystem:a,enableColorScheme:i,defaultTheme:r,value:p,themes:u,nonce:s,scriptProps:h})=>{let c=JSON.stringify([d,n,r,t,u,p,a,i]).slice(1,-1);return m.createElement("script",{...h,suppressHydrationWarning:!0,nonce:typeof window>"u"?s:"",dangerouslySetInnerHTML:{__html:`(${I.toString()})(${c})`}})});const M=({...t})=>{const{theme:n="system"}=k();return o.jsx(b,{theme:n,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...t})},f=document.getElementById(w.ID_EXTENSION);f&&j.createRoot(f).render(o.jsx(o.Fragment,{children:o.jsxs(E,{client:T,children:[o.jsx("div",{className:"fixed bottom-20 right-6",children:o.jsx(C,{})}),o.jsx(M,{position:"top-right"})]})}));
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
<title>Vite + React + TS</title>
|
||||
<script type="module" crossorigin src="/assets/popup.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/base64-BbJB1hmJ.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/product-api.service-DR0CE0o9.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/product-api.service-PLptzR9s.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/app-C7VSS-q9.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/popup-D--aKLqS.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/popup-BJkdpTff.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
"matches": ["https://www.facebook.com/*"]
|
||||
}
|
||||
],
|
||||
"permissions": ["tabs", "activeTab", "scripting"],
|
||||
"permissions": ["tabs", "activeTab", "scripting", "storage"],
|
||||
"icons": {
|
||||
"16": "icons/16.png",
|
||||
"32": "icons/32.png",
|
||||
|
|
|
|||
|
|
@ -1,20 +1,30 @@
|
|||
[
|
||||
{
|
||||
"title": "Cisco FPR2K-SLIDE-RAILS Mounting Rail Kit for FirePower FPR 2100 Series",
|
||||
"price": 995,
|
||||
"title": "Cisco C9120AXI-E 802.11ax Internal Antennas 4x4:4 MIMO Bluetooth 5 Reg E AP",
|
||||
"price": 862,
|
||||
"el": {},
|
||||
"date": "2025-08-23T01:38:28.591Z"
|
||||
"url_info": "https://www.facebook.com/profile.php?id=61578035566295",
|
||||
"date": "2025-08-26T08:31:36.498Z"
|
||||
},
|
||||
{
|
||||
"title": "HP DL380 G9 2U Server 2x CPU E5-2650V3 32Gb RAM 600Gb HDD Dual PSU Rail Kit - DL380 G9, server",
|
||||
"price": 2245,
|
||||
"el": {},
|
||||
"url_info": "https://www.facebook.com/profile.php?id=61578035566295",
|
||||
"date": "2025-08-26T08:31:36.498Z"
|
||||
},
|
||||
{
|
||||
"title": "Cisco AIR-PWRINJ6 Power Injector 8023at for Aironet Access Points",
|
||||
"price": 95,
|
||||
"el": {},
|
||||
"date": "2025-08-23T01:38:28.591Z"
|
||||
"url_info": "https://www.facebook.com/profile.php?id=61578035566295",
|
||||
"date": "2025-08-26T08:31:36.498Z"
|
||||
},
|
||||
{
|
||||
"title": "Cisco NM-1CE1T1-PRI - Fully Tested - 6 Month Warranty - Tax Invoice included",
|
||||
"price": 75,
|
||||
"title": "Cisco AIR-AP1542D-Z-K9 802.11ac W2 Value Outdoor AP, Direct. Ant, Z Reg Dom.",
|
||||
"price": 2563,
|
||||
"el": {},
|
||||
"date": "2025-08-23T01:38:28.591Z"
|
||||
"url_info": "https://www.facebook.com/profile.php?id=61578035566295",
|
||||
"date": "2025-08-26T08:31:36.498Z"
|
||||
}
|
||||
]
|
||||
|
|
@ -97,7 +97,8 @@ app.post("/", async (req, res) => {
|
|||
|
||||
// ===== Meta =====
|
||||
let meta = readJSON(metaPath, { total: 4000 });
|
||||
const filter = req.body?.filter || {};
|
||||
|
||||
const { info, ...filter } = req.body?.filter || {};
|
||||
const originalFilter = { ...filter };
|
||||
const status = filter?.where?.status_listing;
|
||||
|
||||
|
|
@ -137,28 +138,22 @@ app.post("/", async (req, res) => {
|
|||
const skip = originalFilter.skip || 0;
|
||||
const limit = originalFilter.limit || data.data.length;
|
||||
|
||||
// const listedCodes = new Set(
|
||||
// publistedData.map((i) => (i.title + i.price || "").trim().toLowerCase())
|
||||
// );
|
||||
|
||||
// let filteredData = data.data.filter((item) => {
|
||||
// const key = `${item.title} - ${item.code}${item.price}`.toLowerCase();
|
||||
// return status === "listed"
|
||||
// ? listedCodes.has(key)
|
||||
// : !listedCodes.has(key);
|
||||
// });
|
||||
let filteredData = data.data.filter((item) => {
|
||||
const key = item?.title.includes(item.code)
|
||||
? `${item.title}`.toLowerCase()
|
||||
: `${item.title} - ${item.code}`.toLowerCase();
|
||||
|
||||
if (status === "listed") {
|
||||
return publistedData.some((i) =>
|
||||
`${i.title}`.toLowerCase().includes(key)
|
||||
return publistedData.some(
|
||||
(i) =>
|
||||
`${i.title}`.toLowerCase().includes(key) &&
|
||||
i?.url_info == info?.url
|
||||
);
|
||||
} else {
|
||||
return !publistedData.some((i) =>
|
||||
`${i.title}`.toLowerCase().includes(key)
|
||||
return !publistedData.some(
|
||||
(i) =>
|
||||
`${i.title}`.toLowerCase().includes(key) &&
|
||||
i?.url_info == info?.url
|
||||
);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ class ProductApiService {
|
|||
limit?: number;
|
||||
order?: string;
|
||||
where?: Record<string, any>;
|
||||
info?: any;
|
||||
}) {
|
||||
const defaultFilter = {
|
||||
skip: 0,
|
||||
|
|
@ -75,7 +76,8 @@ class ProductApiService {
|
|||
| "createBlobUrl"
|
||||
| "publist"
|
||||
| "unlist"
|
||||
| "sync",
|
||||
| "sync"
|
||||
| "dequeue",
|
||||
body: Record<string, any>
|
||||
) {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
import { DoorOpenIcon } from "lucide-react";
|
||||
import { Button } from "../ui/button";
|
||||
import { PopoverTrigger } from "../ui/popover";
|
||||
|
||||
export default function TrigerOpenModal() {
|
||||
return (
|
||||
<PopoverTrigger asChild>
|
||||
<Button size={"icon"}>
|
||||
<DoorOpenIcon />
|
||||
</Button>
|
||||
</PopoverTrigger>
|
||||
);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue