@elastic-suite/gally-admin-shared
Version:
Shared package for gally admin BO
33 lines (28 loc) • 864 B
text/typescript
import {
IGraphqlProduct,
IProductPositions,
IRequestTypesOptions,
} from '../types'
import { getIdFromIri } from './format'
export function sortProductCollection(
products: IGraphqlProduct[],
positions: IProductPositions
): IGraphqlProduct[] {
const sortedProducts = [...products]
const positionsMap = Object.fromEntries(
positions.map(({ position, productId }) => [productId, position])
)
return sortedProducts.sort(
(a, b) =>
positionsMap[getIdFromIri(a.id)] - positionsMap[getIdFromIri(b.id)]
)
}
export function getLimitationType(
requestType: string,
options: IRequestTypesOptions[]
): string | undefined {
return options.find((option) => requestType === option.id)?.limitationType
}
export function getStockStatusLabel(stockStatus: boolean): string {
return stockStatus ? 'stock.inStock' : 'stock.outOfStock'
}