Revert "Merge branch 'main' into furnisettingeditor-pr"

This reverts commit dfbfb1c2c1, reversing
changes made to 07702c44d0.
This commit is contained in:
duckietm
2026-03-23 11:49:05 +01:00
parent ac8da5827b
commit a0d0b5c4a4
50 changed files with 4746 additions and 3327 deletions
@@ -1,8 +1,7 @@
import { FC, useCallback, useEffect, useRef, useState } from 'react';
import { FC, useEffect, useRef } from 'react';
import { IPurchasableOffer, ProductTypeEnum } from '../../../../../api';
import { AutoGrid, AutoGridProps } from '../../../../../common';
import { useCatalog } from '../../../../../hooks';
import { useCatalogAdmin } from '../../../CatalogAdminContext';
import { CatalogGridOfferView } from '../common/CatalogGridOfferView';
interface CatalogItemGridWidgetViewProps extends AutoGridProps
@@ -14,11 +13,7 @@ export const CatalogItemGridWidgetView: FC<CatalogItemGridWidgetViewProps> = pro
{
const { columnCount = 5, children = null, ...rest } = props;
const { currentOffer = null, setCurrentOffer = null, currentPage = null, setPurchaseOptions = null } = useCatalog();
const catalogAdmin = useCatalogAdmin();
const adminMode = catalogAdmin?.adminMode ?? false;
const elementRef = useRef<HTMLDivElement>();
const [ dragIndex, setDragIndex ] = useState<number | null>(null);
const [ dropIndex, setDropIndex ] = useState<number | null>(null);
useEffect(() =>
{
@@ -48,66 +43,9 @@ export const CatalogItemGridWidgetView: FC<CatalogItemGridWidgetViewProps> = pro
}
};
const handleDragStart = useCallback((index: number) =>
{
setDragIndex(index);
}, []);
const handleDragOver = useCallback((e: React.DragEvent, index: number) =>
{
e.preventDefault();
setDropIndex(index);
}, []);
const handleDrop = useCallback((index: number) =>
{
if(dragIndex !== null && dragIndex !== index && currentPage?.offers)
{
const offers = [ ...currentPage.offers ];
const [ moved ] = offers.splice(dragIndex, 1);
offers.splice(index, 0, moved);
const orders = offers.map((o, i) => ({ id: o.offerId, orderNumber: i }));
catalogAdmin?.reorderOffers(orders);
}
setDragIndex(null);
setDropIndex(null);
}, [ dragIndex, currentPage, catalogAdmin ]);
const handleDragEnd = useCallback(() =>
{
setDragIndex(null);
setDropIndex(null);
}, []);
return (
<AutoGrid columnCount={ columnCount } innerRef={ elementRef } { ...rest }>
{ currentPage.offers && (currentPage.offers.length > 0) && currentPage.offers.map((offer, index) =>
{
const isDragging = dragIndex === index;
const isDropTarget = dropIndex === index && dragIndex !== index;
return (
<div
key={ index }
className={ `${ isDragging ? 'opacity-40' : '' } ${ isDropTarget ? 'ring-2 ring-primary ring-offset-1 rounded' : '' }` }
draggable={ adminMode }
onDragEnd={ adminMode ? handleDragEnd : undefined }
onDragOver={ adminMode ? (e) => handleDragOver(e, index) : undefined }
onDragStart={ adminMode ? () => handleDragStart(index) : undefined }
onDrop={ adminMode ? () => handleDrop(index) : undefined }
>
<CatalogGridOfferView
itemActive={ (currentOffer && (currentOffer.offerId === offer.offerId)) }
offer={ offer }
selectOffer={ selectOffer }
/>
</div>
);
}) }
{ currentPage.offers && (currentPage.offers.length > 0) && currentPage.offers.map((offer, index) => <CatalogGridOfferView key={ index } itemActive={ (currentOffer && (currentOffer.offerId === offer.offerId)) } offer={ offer } selectOffer={ selectOffer } />) }
{ children }
</AutoGrid>
);