UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

74 lines • 2.67 kB
import type { UseMutationResult } from "@tanstack/react-query"; import type { QueryResult, ReadResultBase, SuspenseQueryResult, SuspenseResultBase } from "../shared/hook-result-types"; import type { MutationOptions } from "../shared/hook-types"; import type { QueryKey } from "../shared/query-keys"; export type ReviewCustomerBase = { first_name?: null | string; last_name?: null | string; }; export type ReviewBase = { content: string; created_at?: string; customer?: null | ReviewCustomerBase; id: string; rating: number; title: string; }; export type ReviewSummary = { average_rating: number; count: number; }; export type ProductReviewListInputBase = { productId?: string; limit?: number; offset?: number; page?: number; enabled?: boolean; }; export type ProductReviewListResponse<TReview> = { count: number; limit: number; offset: number; reviews: TReview[]; summary: ReviewSummary; }; export type CreateProductReviewInput = { content: string; first_name?: string; last_name?: string; name?: string; product_id: string; rating: number; review_token?: string; title?: string; turnstileToken?: string; }; export type ProductReviewService<TReview, TListParams, TCreateInput extends CreateProductReviewInput = CreateProductReviewInput> = { listProductReviews: (params: TListParams, signal?: AbortSignal) => Promise<ProductReviewListResponse<TReview>>; createProductReview: (input: TCreateInput) => Promise<TReview>; }; export type ProductReviewQueryKeys<TListParams> = { all: () => QueryKey; productList: (params: TListParams) => QueryKey; }; export type UseProductReviewsResult<TReview> = ReadResultBase<QueryResult<ProductReviewListResponse<TReview>>> & { currentPage: number; hasNextPage: boolean; hasPrevPage: boolean; reviews: TReview[]; summary: ReviewSummary; totalCount: number; totalPages: number; }; export type UseSuspenseProductReviewsResult<TReview> = SuspenseResultBase<SuspenseQueryResult<ProductReviewListResponse<TReview>>> & { currentPage: number; hasNextPage: boolean; hasPrevPage: boolean; reviews: TReview[]; summary: ReviewSummary; totalCount: number; totalPages: number; }; export type ProductReviewMutationOptions<TReview, TCreateInput extends CreateProductReviewInput, TContext = unknown> = MutationOptions<TReview, TCreateInput, TContext>; export type UseCreateProductReviewResult<TReview, TCreateInput extends CreateProductReviewInput, TContext = unknown> = UseMutationResult<TReview, unknown, TCreateInput, TContext>; //# sourceMappingURL=types.d.ts.map