@b2bfinance/products-embed
Version:
products-embed React component
61 lines (57 loc) • 2.02 kB
JavaScript
import { CssBaseline, Grid } from "@material-ui/core";
import React, { useReducer } from "react";
import EmbedContext from "./EmbedContext";
import FilterList from "./FilterList";
import { embedReducer, makeFilterQueryString } from "./utils";
import ProductList from "./ProductList";
var EmbedWrapper = function EmbedWrapper(_ref) {
var _ref$products = _ref.products,
products = _ref$products === undefined ? [] : _ref$products,
_ref$productsLimit = _ref.productsLimit,
productsLimit = _ref$productsLimit === undefined ? 10 : _ref$productsLimit,
_ref$filters = _ref.filters,
filters = _ref$filters === undefined ? [] : _ref$filters,
_ref$cta = _ref.cta,
cta = _ref$cta === undefined ? "Get Deal" : _ref$cta,
_ref$provider = _ref.provider,
provider = _ref$provider === undefined ? null : _ref$provider,
_ref$onMoreDetails = _ref.onMoreDetails,
onMoreDetails = _ref$onMoreDetails === undefined ? null : _ref$onMoreDetails,
_ref$onApply = _ref.onApply,
onApply = _ref$onApply === undefined ? null : _ref$onApply;
var _useReducer = useReducer(embedReducer, {
products: [],
productsLoading: false,
productsError: false,
filterQuery: makeFilterQueryString(filters),
productsLimit: productsLimit,
preFetchedProducts: products,
filters: filters,
cta: cta,
provider: provider,
onMoreDetails: onMoreDetails,
onApply: onApply
}),
state = _useReducer[0],
dispatch = _useReducer[1];
return React.createElement(
EmbedContext.Provider,
{ value: { state: state, dispatch: dispatch } },
React.createElement(CssBaseline, null),
React.createElement(
Grid,
{ item: true, xs: 12 },
React.createElement(FilterList, null)
),
React.createElement(
Grid,
{ item: true, xs: 12 },
React.createElement(
Grid,
{ item: true, xs: 12 },
React.createElement(ProductList, null)
)
)
);
};
export default EmbedWrapper;