SKUs page file check

This commit is contained in:
Samantha Kellow 2024-04-24 17:48:32 +01:00
parent e88a45b9d5
commit 82c30cdda8

View File

@ -31,23 +31,40 @@ export default async function SKUCheckPage() {
dbxFiles = await dbx.filesListFolder({
path: '/scape squared/004 print ready - print files'
});
// sabotage?
// dbxFiles.result.entries = dbxFiles.result.entries.filter(file => file.name !== "SCSQ300262_NECK.png");
} catch (e) {
dbxError = e + ""
}
// sabotage?
// dbxFiles.result.entries.splice(5, 1);
return (
<div>
{products.map((product) => {
const skus = createProductSKUs(product.title);
if (!skus) return <div key={product.id} className="m-10 bg-red-300 ">SKU error for product {product.title}</div>
// sabotage?
// product.variants[3]!.sku = 'SCSQ10001_STTU781_M_C002_B_NT';
const productCode = skus[0]!.split('_')[0]
const productBase = productCode!.slice(0, (productCode!.length -1))
const productFiles = dbxFiles?.result.entries
.filter((file) => file.name.startsWith(skus[0]!.split('_')[0]!))
.filter((file) => file.name.startsWith(productBase!))
const productFileNames = productFiles?.map(file => file.name);
const sizeDigits = ["1", "2", "3"];
const sideSuffixes = ["_NECK.png", "_BACK.png"];
const expectedFiles = sizeDigits.flatMap((sizeDigit) =>
sideSuffixes.flatMap((sideSuffix) => productBase + sizeDigit + sideSuffix)
);
const missingFiles = expectedFiles.filter(expected => !productFileNames?.includes(expected));
const extraFiles = productFileNames?.filter(filename => !expectedFiles.includes(filename));
return (
<div key={product.id} className="mt-10 lg:grid lg:grid-cols-12 gap-x-4 gap-y-1">
@ -55,10 +72,15 @@ export default async function SKUCheckPage() {
<div
className={
'mb-4 lg:col-span-4 lg:col-start-3 rounded ' +
(productFiles?.length !== 2 ? 'bg-amber-300' : '')
(missingFiles?.length > 0 ? 'bg-amber-300' : '')
}
>
Dropbox: {productFiles?.map(file => file.name).join(", ")}{dbxError}
Dropbox:{' '}
{missingFiles.length === 0
? '✅ All expected files found'
: '⛔️ Missing files: ' + missingFiles.join(', ')}
{extraFiles && <div className='text-sm'>(Extra files: {extraFiles.join(", ")})</div>}
{dbxError}
</div>
{product.variants.map((variant, i) => (
<>