Files
ghatreh_user/src/utils/productStreamBridge.ts
T
2026-06-29 22:43:28 +03:30

32 lines
735 B
TypeScript

import type { Product } from '@/models/products'
type ProductListHandler = (products: Product[]) => void
const handlers = new Set<ProductListHandler>()
let lastProductsList: Product[] | null = null
export function subscribeProductListStream(handler: ProductListHandler) {
handlers.add(handler)
if (lastProductsList?.length) {
handler(lastProductsList)
}
return () => {
handlers.delete(handler)
}
}
export function applyProductsListFromStream(products: Product[]) {
if (!Array.isArray(products) || !products.length) {
return
}
lastProductsList = products
handlers.forEach((handler) => handler(products))
}
export function getLastStreamProductsList(): Product[] | null {
return lastProductsList
}