Pular para o conteúdo principal

Referência da API

Tudo que os dois pacotes exportam. Os tipos estão na página de tipos; a CLI tem página própria.

import { CatalogApp /* … */ } from '@neverleans-labs/plug-store-core';
import { defineTheme, themeConfigs } from '@neverleans-labs/plug-store-themes';
import '@neverleans-labs/plug-store-core/dist/index.css';

Pontos de entrada​

ExportAssinaturaGuia
CatalogApp(props: CatalogAppProps) => JSX.ElementComo funciona
CatalogProvider(props: CatalogProviderProps) => JSX.ElementComo funciona

CatalogAppProps​

PropTipoPadrão
defaultThemeIndustryTemplate | string'fashion'
customThemeThemeConfig—
configCatalogConfig—
defaultLanguage'pt' | 'en'o guardado, depois 'pt'
dataProviderCatalogDataProviderdummyDataProvider
disableAdminbooleanfalse
basenamestring—

CatalogProviderProps é o mesmo sem disableAdmin e basename, mais children e queryClient.

Dados​

ExportAssinaturaGuia
useProducts(params?: DataProviderQueryParams, options?: { enabled?: boolean }) => UseProductsResultDados
useCategories() => UseCategoriesResultDados
useProduct(id?: string) => UseProductResultDados
useProductReviews(productId?: string) => UseProductReviewsResultDados
useCatalogData() => CatalogDataProviderDados
dummyDataProvider(industry?: IndustryTemplate) => CatalogDataProviderDados
restDataProvider(baseUrl: string, options?: { headers?: Record<string,string> }) => CatalogDataProviderReceita REST
customDataProvider(handlers: CatalogDataProvider) => CatalogDataProviderReceita Supabase
DataProviderWrappercomponente—

Acesso direto ao conjunto de dados de demonstração — raramente necessário, e ignorado quando você fornece o seu provider: getProducts, getCategories, getReviews, getFeaturedProducts, getProductById, getProductsByCategory, getReviewsByProduct, searchProducts, setImportedProducts, getImportedProducts, clearImportedProducts.

Checkout​

ExportAssinaturaGuia
useCheckout(options?: UseCheckoutOptions) => { processCheckout, loading, result, error }Checkout
whatsappGateway`(phoneOrOptions?: stringWhatsappGatewayOptions) => PaymentGatewayAdapter`
pixGateway(keyOrOptions?: string | PixGatewayOptions) => PaymentGatewayAdapterPix
stripeGateway(endpoint: string, options?) => PaymentGatewayAdapterCheckout
mercadopagoGateway(endpoint: string, options?) => PaymentGatewayAdapterCheckout
buildPixPayload(params: PixStaticParams) => stringPix
pixCrc16(payload: string) => stringPix

Hooks de estado​

ExportDevolveGuia
useCart{ items, addItem, removeItem, updateQuantity, clearCart, itemCount, subtotal, discount, shippingCost, total, discountCode, setDiscountCode }Carrinho
useWishlist{ items, addItem, removeItem, isInWishlist, toggleItem }Carrinho
useCompare{ items, toggle, remove, clear, has, isFull }Carrinho
useRecentlyViewed{ items, add, clear }Carrinho
useTheme{ theme, template, setTemplate }Temas
useSiteConfig{ config, updateConfig }Configuração
useLanguage{ t, language, setLanguage }Idioma
useColorModeestado claro/escuro—
useAuth{ user, isAuthenticated, login, logout }—
useAccountpedidos, endereços, avise-me—
usePWA{ isOffline, isInstalled, installPrompt, promptInstall }PWA
useCatalogAnalyticsinstala GA4 / Meta PixelAnalytics
useCatalogLinkmonta links internos da loja—
useMoney(amount: number) => string, mais .currency e .symbolMoeda

Todo provider também é exportado individualmente — ThemeProvider, CartProvider, WishlistProvider, CompareProvider, RecentlyViewedProvider, AuthProvider, AccountProvider, SiteConfigProvider, LanguageProvider, ColorModeProvider — para o caso raro em que você queira compor à mão em vez de usar o CatalogProvider.

Componentes​

Layout — Header, Footer

Produto — ProductCard, ProductCardSkeleton, QuickViewDialog, RecentlyViewedRow

Carrinho — MiniCart

Comuns — SEOHead, CatalogSEO, ThemeSwitcher, CompareBar, DarkModeToggle, WhatsAppOrderButton, PageTransition, AnalyticsInjector, FaviconInjector, PWAOfflineBanner

Páginas — HomePage, ProductsPage, ProductDetailPage, CartPage, WishlistPage, CheckoutPage, OrderConfirmationPage, LoginPage, SignupPage, AboutPage, ContactPage, ComparePage, AccountPage, AdminPage, PublicCatalogPage, NotFound

Os componentes exigem os providers

Todos eles leem de um contexto. Renderizar qualquer um fora do CatalogProvider lança erro.

Utilitários​

ExportAssinatura
formatMoney(amount: number, currency?: CurrencyCode) => string
CURRENCIESRecord<CurrencyCode, { symbol, locale, code }>
trackEvent(name: 'view_item' | 'add_to_cart' | 'begin_checkout' | 'purchase', params?) => void
productsToCsv(products: Product[]) => string
parseProductsCsv(text: string, industry: string) => Product[]
downloadProductsCsv(products: Product[], filename?: string) => void
openCatalogPrintable(products: Product[], title: string) => void
safeImage / safeCategoryImagefallbacks de URL de imagem
isLowStock(product: Product) => boolean
panelClasseshelper de classe do estilo de card
localizeCategory / localizeTagline / localizeTemplate / templateLabelsi18n
themeConfigsRecord<string, ThemeConfig> — os 50 temas, indexados por id. Use Object.values() para iterar

O pacote de temas​

ExportAssinatura
defineTheme(config: Partial<ThemeConfig> & { id, name, tagline }) => ThemeConfig
defaultThemeBasea base que todo tema customizado estende
themeConfigsreexportado do core, então os dois caminhos de import dão o mesmo registro

Próximos passos​