function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
export const useVariantQuery = (initialRecord, id) => {
const variantQuery = useQuery({
queryKey: ["variant", id],
queryFn: () => fetchVariant(id),
initialData: initialRecord,
initialStale: true,
})
const similarVariantIds =
variantQuery.data.fields.same_sub_category_variant_ids || []
const selectedIds = shuffleArray(similarVariantIds).slice(0, 12);
const { status, data: similarProductsQuery } = useQuery({
queryKey: ["similarProducts", similarVariantIds],
queryFn: () => fetchRecommendedVariants(selectedIds),
enabled: !!selectedIds.length,
})
return {
variantQuery,
similarProductsQuery,
similarProductsStatus: status,
}
}
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
export const useVariantQuery = (initialRecord, id) => {
const variantQuery = useQuery({
queryKey: ["variant", id],
queryFn: () => fetchVariant(id),
initialData: initialRecord,
initialStale: true,
})
const similarVariantIds =
variantQuery.data.fields.same_sub_category_variant_ids || []
const selectedIds = shuffleArray(similarVariantIds).slice(0, 12);
const { status, data: similarProductsQuery } = useQuery({
queryKey: ["similarProducts", similarVariantIds],
queryFn: () => fetchRecommendedVariants(selectedIds),
enabled: !!selectedIds.length,
})
return {
variantQuery,
similarProductsQuery,
similarProductsStatus: status,
}
}