jan/web-client/app/_hooks/useGetProducts.ts
NamH d55a83888b
refactor: replacing mobx with jotai (#160)
* refactor: replacing mobx with jotai

Signed-off-by: James <james@jan.ai>
Co-authored-by: James <james@jan.ai>
Co-authored-by: Louis <louis@jan.ai>
2023-09-13 21:33:53 -07:00

25 lines
754 B
TypeScript

import { ProductType, toProduct } from "@/_models/Product";
import { GetProductsDocument, GetProductsQuery } from "@/graphql";
import { useQuery } from "@apollo/client";
export default function useGetProducts() {
const { loading, data } = useQuery<GetProductsQuery>(GetProductsDocument, {
variables: { slug: "conversational" },
});
const allProducts = (data?.products ?? []).map((e) => toProduct(e));
const featured = allProducts.sort(() => 0.5 - Math.random()).slice(0, 3);
const conversational = allProducts.filter((e) => e.type === ProductType.LLM);
const generativeArts = allProducts.filter(
(e) => e.type === ProductType.GenerativeArt
);
return {
loading,
featured,
conversational,
generativeArts,
};
}