clear values on blur for attribute selects

This commit is contained in:
sektordv 2021-08-11 16:38:44 +02:00
parent 11bead49c4
commit bb890fa5f0
21 changed files with 76 additions and 13 deletions

View file

@ -73,6 +73,7 @@ interface AttributeRowProps extends AttributeRowHandlers {
error: ProductErrorWithAttributesFragment | PageErrorWithAttributesFragment; error: ProductErrorWithAttributesFragment | PageErrorWithAttributesFragment;
loading: boolean; loading: boolean;
entityId: string; entityId: string;
onAttributeSelectBlur?: () => void;
} }
const AttributeRow: React.FC<AttributeRowProps> = ({ const AttributeRow: React.FC<AttributeRowProps> = ({
@ -89,7 +90,8 @@ const AttributeRow: React.FC<AttributeRowProps> = ({
onChange, onChange,
fetchAttributeValues, fetchAttributeValues,
fetchMoreAttributeValues, fetchMoreAttributeValues,
entityId entityId,
onAttributeSelectBlur
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const classes = useStyles({}); const classes = useStyles({});
@ -156,6 +158,7 @@ const AttributeRow: React.FC<AttributeRowProps> = ({
allowCustomValues={true} allowCustomValues={true}
fetchOnFocus={true} fetchOnFocus={true}
fetchChoices={value => fetchAttributeValues(value, attribute.id)} fetchChoices={value => fetchAttributeValues(value, attribute.id)}
onBlur={onAttributeSelectBlur}
{...fetchMoreAttributeValues} {...fetchMoreAttributeValues}
/> />
</BasicAttributeRow> </BasicAttributeRow>
@ -268,6 +271,7 @@ const AttributeRow: React.FC<AttributeRowProps> = ({
allowCustomValues={true} allowCustomValues={true}
fetchOnFocus={true} fetchOnFocus={true}
fetchChoices={value => fetchAttributeValues(value, attribute.id)} fetchChoices={value => fetchAttributeValues(value, attribute.id)}
onBlur={onAttributeSelectBlur}
{...fetchMoreAttributeValues} {...fetchMoreAttributeValues}
/> />
</BasicAttributeRow> </BasicAttributeRow>

View file

@ -19,7 +19,8 @@ const props: AttributesProps = {
onReferencesRemove: () => undefined, onReferencesRemove: () => undefined,
onReferencesReorder: () => undefined, onReferencesReorder: () => undefined,
fetchAttributeValues: () => undefined, fetchAttributeValues: () => undefined,
fetchMoreAttributeValues: fetchMoreProps fetchMoreAttributeValues: fetchMoreProps,
onAttributeSelectBlur: () => undefined
}; };
storiesOf("Attributes / Attributes", module) storiesOf("Attributes / Attributes", module)

View file

@ -38,6 +38,7 @@ export interface AttributesProps extends AttributeRowHandlers {
attributeValues: AttributeValueFragment[]; attributeValues: AttributeValueFragment[];
fetchAttributeValues: (query: string, attributeId: string) => void; fetchAttributeValues: (query: string, attributeId: string) => void;
fetchMoreAttributeValues: FetchMoreProps; fetchMoreAttributeValues: FetchMoreProps;
onAttributeSelectBlur: () => void;
disabled: boolean; disabled: boolean;
loading: boolean; loading: boolean;
errors: Array< errors: Array<
@ -117,6 +118,7 @@ const Attributes: React.FC<AttributesProps> = ({
attributeValues, attributeValues,
errors, errors,
title, title,
onAttributeSelectBlur,
entityId = "_defaultId", entityId = "_defaultId",
...props ...props
}) => { }) => {
@ -168,6 +170,7 @@ const Attributes: React.FC<AttributesProps> = ({
attribute={attribute} attribute={attribute}
attributeValues={attributeValues} attributeValues={attributeValues}
error={error} error={error}
onAttributeSelectBlur={onAttributeSelectBlur}
{...props} {...props}
/> />
</React.Fragment> </React.Fragment>

View file

@ -49,6 +49,7 @@ export interface SingleAutocompleteSelectFieldProps
fetchOnFocus?: boolean; fetchOnFocus?: boolean;
FormHelperTextProps?: ExtendedFormHelperTextProps; FormHelperTextProps?: ExtendedFormHelperTextProps;
nakedInput?: boolean; nakedInput?: boolean;
onBlur?: () => void;
} }
const DebounceAutocomplete: React.ComponentType<DebounceProps< const DebounceAutocomplete: React.ComponentType<DebounceProps<
@ -79,6 +80,7 @@ const SingleAutocompleteSelectFieldComponent: React.FC<SingleAutocompleteSelectF
fetchOnFocus, fetchOnFocus,
FormHelperTextProps, FormHelperTextProps,
nakedInput = false, nakedInput = false,
onBlur,
...rest ...rest
} = props; } = props;
const classes = useStyles(props); const classes = useStyles(props);
@ -101,6 +103,14 @@ const SingleAutocompleteSelectFieldComponent: React.FC<SingleAutocompleteSelectF
onInputValueChange={value => debounceFn(value)} onInputValueChange={value => debounceFn(value)}
onSelect={handleChange} onSelect={handleChange}
selectedItem={value || ""} selectedItem={value || ""}
// this is to prevent unwanted state updates when the dropdown is closed with an empty value,
// which downshift interprets as the value being updated with an empty string, causing side-effects
stateReducer={(state, changes) => {
if (changes.isOpen === false && state.inputValue === "") {
delete changes.inputValue;
}
return changes;
}}
> >
{({ {({
getInputProps, getInputProps,
@ -150,6 +160,7 @@ const SingleAutocompleteSelectFieldComponent: React.FC<SingleAutocompleteSelectF
const handleBlur = () => { const handleBlur = () => {
ensureProperValues(true); ensureProperValues(true);
onBlur();
closeMenu(); closeMenu();
}; };

View file

@ -59,6 +59,7 @@ export interface PageDetailsPageProps {
fetchMoreAttributeValues?: FetchMoreProps; fetchMoreAttributeValues?: FetchMoreProps;
onCloseDialog: () => void; onCloseDialog: () => void;
onSelectPageType?: (pageTypeId: string) => void; onSelectPageType?: (pageTypeId: string) => void;
onAttributeSelectBlur: () => void;
} }
const PageDetailsPage: React.FC<PageDetailsPageProps> = ({ const PageDetailsPage: React.FC<PageDetailsPageProps> = ({
@ -85,7 +86,8 @@ const PageDetailsPage: React.FC<PageDetailsPageProps> = ({
fetchAttributeValues, fetchAttributeValues,
fetchMoreAttributeValues, fetchMoreAttributeValues,
onCloseDialog, onCloseDialog,
onSelectPageType onSelectPageType,
onAttributeSelectBlur
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const localizeDate = useDateLocalize(); const localizeDate = useDateLocalize();
@ -189,6 +191,7 @@ const PageDetailsPage: React.FC<PageDetailsPageProps> = ({
onReferencesReorder={handlers.reorderAttributeValue} onReferencesReorder={handlers.reorderAttributeValue}
fetchAttributeValues={fetchAttributeValues} fetchAttributeValues={fetchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onAttributeSelectBlur={onAttributeSelectBlur}
/> />
)} )}
<CardSpacer /> <CardSpacer />

View file

@ -76,7 +76,8 @@ export const PageCreate: React.FC<PageCreateProps> = ({ params }) => {
const { const {
loadMore: loadMoreAttributeValues, loadMore: loadMoreAttributeValues,
search: searchAttributeValues, search: searchAttributeValues,
result: searchAttributeValuesOpts result: searchAttributeValuesOpts,
reset: searchAttributeReset
} = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA); } = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA);
const { data: selectedPageType } = usePageTypeQuery({ const { data: selectedPageType } = usePageTypeQuery({
@ -218,6 +219,7 @@ export const PageCreate: React.FC<PageCreateProps> = ({ params }) => {
onCloseDialog={() => navigate(pageCreateUrl())} onCloseDialog={() => navigate(pageCreateUrl())}
selectedPageType={selectedPageType?.pageType} selectedPageType={selectedPageType?.pageType}
onSelectPageType={id => setSelectedPageTypeId(id)} onSelectPageType={id => setSelectedPageTypeId(id)}
onAttributeSelectBlur={searchAttributeReset}
/> />
</> </>
); );

View file

@ -176,7 +176,8 @@ export const PageDetails: React.FC<PageDetailsProps> = ({ id, params }) => {
const { const {
loadMore: loadMoreAttributeValues, loadMore: loadMoreAttributeValues,
search: searchAttributeValues, search: searchAttributeValues,
result: searchAttributeValuesOpts result: searchAttributeValuesOpts,
reset: searchAttributeReset
} = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA); } = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA);
const attributeValues = const attributeValues =
@ -237,6 +238,7 @@ export const PageDetails: React.FC<PageDetailsProps> = ({ id, params }) => {
fetchAttributeValues={searchAttributeValues} fetchAttributeValues={searchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onCloseDialog={() => navigate(pageUrl(id))} onCloseDialog={() => navigate(pageUrl(id))}
onAttributeSelectBlur={searchAttributeReset}
/> />
<ActionDialog <ActionDialog
open={params.action === "remove"} open={params.action === "remove"}

View file

@ -84,6 +84,7 @@ interface ProductCreatePageProps {
fetchReferenceProducts?: (data: string) => void; fetchReferenceProducts?: (data: string) => void;
fetchMoreReferencePages?: FetchMoreProps; fetchMoreReferencePages?: FetchMoreProps;
fetchMoreReferenceProducts?: FetchMoreProps; fetchMoreReferenceProducts?: FetchMoreProps;
onAttributeSelectBlur: () => void;
onCloseDialog: () => void; onCloseDialog: () => void;
onSelectProductType: (productTypeId: string) => void; onSelectProductType: (productTypeId: string) => void;
onBack?(); onBack?();
@ -129,7 +130,8 @@ export const ProductCreatePage: React.FC<ProductCreatePageProps> = ({
fetchAttributeValues, fetchAttributeValues,
fetchMoreAttributeValues, fetchMoreAttributeValues,
onCloseDialog, onCloseDialog,
onSelectProductType onSelectProductType,
onAttributeSelectBlur
}: ProductCreatePageProps) => { }: ProductCreatePageProps) => {
const intl = useIntl(); const intl = useIntl();
@ -240,6 +242,7 @@ export const ProductCreatePage: React.FC<ProductCreatePageProps> = ({
onReferencesReorder={handlers.reorderAttributeValue} onReferencesReorder={handlers.reorderAttributeValue}
fetchAttributeValues={fetchAttributeValues} fetchAttributeValues={fetchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onAttributeSelectBlur={onAttributeSelectBlur}
/> />
)} )}
<CardSpacer /> <CardSpacer />

View file

@ -37,6 +37,7 @@ const props: ProductUpdatePageProps = {
fetchCategories: () => undefined, fetchCategories: () => undefined,
fetchCollections: () => undefined, fetchCollections: () => undefined,
fetchAttributeValues: () => undefined, fetchAttributeValues: () => undefined,
onAttributeSelectBlur: () => undefined,
fetchMoreCategories: fetchMoreProps, fetchMoreCategories: fetchMoreProps,
fetchMoreCollections: fetchMoreProps, fetchMoreCollections: fetchMoreProps,
fetchMoreAttributeValues: fetchMoreProps, fetchMoreAttributeValues: fetchMoreProps,

View file

@ -110,6 +110,7 @@ export interface ProductUpdatePageProps extends ListActions, ChannelProps {
onImageDelete: (id: string) => () => void; onImageDelete: (id: string) => () => void;
onSubmit: (data: ProductUpdatePageSubmitData) => SubmitPromise; onSubmit: (data: ProductUpdatePageSubmitData) => SubmitPromise;
openChannelsModal: () => void; openChannelsModal: () => void;
onAttributeSelectBlur: () => void;
onBack?(); onBack?();
onDelete(); onDelete();
onImageEdit?(id: string); onImageEdit?(id: string);
@ -194,7 +195,8 @@ export const ProductUpdatePage: React.FC<ProductUpdatePageProps> = ({
fetchMoreAttributeValues, fetchMoreAttributeValues,
onCloseDialog, onCloseDialog,
channelsWithVariantsData, channelsWithVariantsData,
onChannelsChange onChannelsChange,
onAttributeSelectBlur
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
@ -317,6 +319,7 @@ export const ProductUpdatePage: React.FC<ProductUpdatePageProps> = ({
onReferencesReorder={handlers.reorderAttributeValue} onReferencesReorder={handlers.reorderAttributeValue}
fetchAttributeValues={fetchAttributeValues} fetchAttributeValues={fetchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onAttributeSelectBlur={onAttributeSelectBlur}
/> />
)} )}
<CardSpacer /> <CardSpacer />

View file

@ -85,6 +85,7 @@ interface ProductVariantCreatePageProps {
fetchMoreReferenceProducts?: FetchMoreProps; fetchMoreReferenceProducts?: FetchMoreProps;
fetchMoreAttributeValues?: FetchMoreProps; fetchMoreAttributeValues?: FetchMoreProps;
onCloseDialog: () => void; onCloseDialog: () => void;
onAttributeSelectBlur: () => void;
} }
const ProductVariantCreatePage: React.FC<ProductVariantCreatePageProps> = ({ const ProductVariantCreatePage: React.FC<ProductVariantCreatePageProps> = ({
@ -112,7 +113,8 @@ const ProductVariantCreatePage: React.FC<ProductVariantCreatePageProps> = ({
fetchMoreReferencePages, fetchMoreReferencePages,
fetchMoreReferenceProducts, fetchMoreReferenceProducts,
fetchMoreAttributeValues, fetchMoreAttributeValues,
onCloseDialog onCloseDialog,
onAttributeSelectBlur
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
@ -192,6 +194,7 @@ const ProductVariantCreatePage: React.FC<ProductVariantCreatePageProps> = ({
onReferencesReorder={handlers.reorderAttributeValue} onReferencesReorder={handlers.reorderAttributeValue}
fetchAttributeValues={fetchAttributeValues} fetchAttributeValues={fetchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onAttributeSelectBlur={onAttributeSelectBlur}
/> />
<CardSpacer /> <CardSpacer />
<Attributes <Attributes
@ -213,6 +216,7 @@ const ProductVariantCreatePage: React.FC<ProductVariantCreatePageProps> = ({
onReferencesReorder={handlers.reorderAttributeValue} onReferencesReorder={handlers.reorderAttributeValue}
fetchAttributeValues={fetchAttributeValues} fetchAttributeValues={fetchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onAttributeSelectBlur={onAttributeSelectBlur}
/> />
<CardSpacer /> <CardSpacer />
<ProductShipping <ProductShipping

View file

@ -98,6 +98,7 @@ interface ProductVariantPageProps {
onAssignReferencesClick: (attribute: AttributeInput) => void; onAssignReferencesClick: (attribute: AttributeInput) => void;
onCloseDialog: () => void; onCloseDialog: () => void;
onVariantReorder: ReorderAction; onVariantReorder: ReorderAction;
onAttributeSelectBlur: () => void;
onAdd(); onAdd();
onBack(); onBack();
onDelete(); onDelete();
@ -140,7 +141,8 @@ const ProductVariantPage: React.FC<ProductVariantPageProps> = ({
fetchMoreReferencePages, fetchMoreReferencePages,
fetchMoreReferenceProducts, fetchMoreReferenceProducts,
fetchMoreAttributeValues, fetchMoreAttributeValues,
onCloseDialog onCloseDialog,
onAttributeSelectBlur
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
@ -246,6 +248,7 @@ const ProductVariantPage: React.FC<ProductVariantPageProps> = ({
onReferencesReorder={handlers.reorderAttributeValue} onReferencesReorder={handlers.reorderAttributeValue}
fetchAttributeValues={fetchAttributeValues} fetchAttributeValues={fetchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onAttributeSelectBlur={onAttributeSelectBlur}
/> />
<CardSpacer /> <CardSpacer />
<Attributes <Attributes
@ -270,6 +273,7 @@ const ProductVariantPage: React.FC<ProductVariantPageProps> = ({
onReferencesReorder={handlers.reorderAttributeValue} onReferencesReorder={handlers.reorderAttributeValue}
fetchAttributeValues={fetchAttributeValues} fetchAttributeValues={fetchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onAttributeSelectBlur={onAttributeSelectBlur}
/> />
<CardSpacer /> <CardSpacer />
<ProductVariantMedia <ProductVariantMedia

View file

@ -109,7 +109,8 @@ export const ProductCreateView: React.FC<ProductCreateProps> = ({ params }) => {
const { const {
loadMore: loadMoreAttributeValues, loadMore: loadMoreAttributeValues,
search: searchAttributeValues, search: searchAttributeValues,
result: searchAttributeValuesOpts result: searchAttributeValuesOpts,
reset: searchAttributeReset
} = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA); } = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA);
const warehouses = useWarehouseList({ const warehouses = useWarehouseList({
displayLoader: true, displayLoader: true,
@ -348,6 +349,7 @@ export const ProductCreateView: React.FC<ProductCreateProps> = ({ params }) => {
onCloseDialog={() => navigate(productAddUrl())} onCloseDialog={() => navigate(productAddUrl())}
selectedProductType={selectedProductType?.productType} selectedProductType={selectedProductType?.productType}
onSelectProductType={id => setSelectedProductTypeId(id)} onSelectProductType={id => setSelectedProductTypeId(id)}
onAttributeSelectBlur={searchAttributeReset}
/> />
</> </>
); );

View file

@ -148,7 +148,8 @@ export const ProductUpdate: React.FC<ProductUpdateProps> = ({ id, params }) => {
const { const {
loadMore: loadMoreAttributeValues, loadMore: loadMoreAttributeValues,
search: searchAttributeValues, search: searchAttributeValues,
result: searchAttributeValuesOpts result: searchAttributeValuesOpts,
reset: searchAttributeReset
} = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA); } = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA);
const warehouses = useWarehouseList({ const warehouses = useWarehouseList({
displayLoader: true, displayLoader: true,
@ -606,6 +607,7 @@ export const ProductUpdate: React.FC<ProductUpdateProps> = ({ id, params }) => {
fetchMoreReferenceProducts={fetchMoreReferenceProducts} fetchMoreReferenceProducts={fetchMoreReferenceProducts}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onCloseDialog={() => navigate(productUrl(id))} onCloseDialog={() => navigate(productUrl(id))}
onAttributeSelectBlur={searchAttributeReset}
/> />
<ActionDialog <ActionDialog
open={params.action === "remove"} open={params.action === "remove"}

View file

@ -303,7 +303,8 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
const { const {
loadMore: loadMoreAttributeValues, loadMore: loadMoreAttributeValues,
search: searchAttributeValues, search: searchAttributeValues,
result: searchAttributeValuesOpts result: searchAttributeValuesOpts,
reset: searchAttributeReset
} = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA); } = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA);
const fetchMoreReferencePages = { const fetchMoreReferencePages = {
@ -376,6 +377,7 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
onCloseDialog={() => onCloseDialog={() =>
navigate(productVariantEditUrl(productId, variantId)) navigate(productVariantEditUrl(productId, variantId))
} }
onAttributeSelectBlur={searchAttributeReset}
/> />
<ProductVariantDeleteDialog <ProductVariantDeleteDialog
confirmButtonState={deleteVariantOpts.status} confirmButtonState={deleteVariantOpts.status}

View file

@ -171,7 +171,8 @@ export const ProductVariant: React.FC<ProductVariantCreateProps> = ({
const { const {
loadMore: loadMoreAttributeValues, loadMore: loadMoreAttributeValues,
search: searchAttributeValues, search: searchAttributeValues,
result: searchAttributeValuesOpts result: searchAttributeValuesOpts,
reset: searchAttributeReset
} = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA); } = useAttributeValueSearchHandler(DEFAULT_INITIAL_SEARCH_DATA);
const fetchMoreReferencePages = { const fetchMoreReferencePages = {
@ -241,6 +242,7 @@ export const ProductVariant: React.FC<ProductVariantCreateProps> = ({
fetchAttributeValues={searchAttributeValues} fetchAttributeValues={searchAttributeValues}
fetchMoreAttributeValues={fetchMoreAttributeValues} fetchMoreAttributeValues={fetchMoreAttributeValues}
onCloseDialog={() => navigate(productVariantAddUrl(productId))} onCloseDialog={() => navigate(productVariantAddUrl(productId))}
onAttributeSelectBlur={searchAttributeReset}
/> />
</> </>
); );

View file

@ -24,6 +24,7 @@ const props: PageDetailsPageProps = {
attributeValues: [], attributeValues: [],
saveButtonBarState: "default", saveButtonBarState: "default",
fetchAttributeValues: () => undefined, fetchAttributeValues: () => undefined,
onAttributeSelectBlur: () => undefined,
fetchMoreAttributeValues: fetchMoreProps fetchMoreAttributeValues: fetchMoreProps
}; };

View file

@ -56,6 +56,7 @@ storiesOf("Views / Products / Create product", module)
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onSelectProductType={() => undefined} onSelectProductType={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("When loading", () => ( .add("When loading", () => (
@ -92,6 +93,7 @@ storiesOf("Views / Products / Create product", module)
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onSelectProductType={() => undefined} onSelectProductType={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("form errors", () => ( .add("form errors", () => (
@ -143,5 +145,6 @@ storiesOf("Views / Products / Create product", module)
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onSelectProductType={() => undefined} onSelectProductType={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)); ));

View file

@ -48,6 +48,7 @@ const props: ProductUpdatePageProps = {
fetchCategories: () => undefined, fetchCategories: () => undefined,
fetchCollections: () => undefined, fetchCollections: () => undefined,
fetchAttributeValues: () => undefined, fetchAttributeValues: () => undefined,
onAttributeSelectBlur: () => undefined,
fetchMoreCategories: fetchMoreProps, fetchMoreCategories: fetchMoreProps,
fetchMoreCollections: fetchMoreProps, fetchMoreCollections: fetchMoreProps,
fetchMoreAttributeValues: fetchMoreProps, fetchMoreAttributeValues: fetchMoreProps,

View file

@ -40,6 +40,7 @@ storiesOf("Views / Products / Create product variant", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("with errors", () => ( .add("with errors", () => (
@ -82,6 +83,7 @@ storiesOf("Views / Products / Create product variant", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("when loading data", () => ( .add("when loading data", () => (
@ -105,6 +107,7 @@ storiesOf("Views / Products / Create product variant", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("add first variant", () => ( .add("add first variant", () => (
@ -131,6 +134,7 @@ storiesOf("Views / Products / Create product variant", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("no warehouses", () => ( .add("no warehouses", () => (
@ -154,5 +158,6 @@ storiesOf("Views / Products / Create product variant", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)); ));

View file

@ -39,6 +39,7 @@ storiesOf("Views / Products / Product variant details", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("when loading data", () => ( .add("when loading data", () => (
@ -67,6 +68,7 @@ storiesOf("Views / Products / Product variant details", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("no warehouses", () => ( .add("no warehouses", () => (
@ -94,6 +96,7 @@ storiesOf("Views / Products / Product variant details", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)) ))
.add("attribute errors", () => ( .add("attribute errors", () => (
@ -149,5 +152,6 @@ storiesOf("Views / Products / Product variant details", module)
fetchAttributeValues={() => undefined} fetchAttributeValues={() => undefined}
onAssignReferencesClick={() => undefined} onAssignReferencesClick={() => undefined}
onCloseDialog={() => undefined} onCloseDialog={() => undefined}
onAttributeSelectBlur={() => undefined}
/> />
)); ));