Add channel shipping zones (#1015)
* Add naked input option to SingleAutocompleteSelectField and update it's stories
* Add new icons - chevron up, down & trash
* Add deletable item component and stories
* Add card add items footer component to be used in warehouses and product stocks assign
* Update schema and types
* Add shipping zones card components
* Update channel details page form to also include shipping zones
* Update makeTopLevelSearch hook files directory and add getSearchFetchMoreProps function to avoid extracting it manually every time
* Update channels types & fragments
* Move getDefaultNotifierSuccessErrorData function to useNotifier utils, update dir etc., also make order discount provider use it from the new dir
* Add shippinh zone to channel update and create and add shipping zone search
* Update messages
* Fix types
* Fix lint, types etc
* Small refactor from review and quick fix styles of shipping zones card
* Refactor a bit and update snapshots
* Refactor a bit and update snapshots
* Addd / refactor channels availability components
* Add useChannelsWithProductVariants hook with utils and types
* Add / refactor more channels availability components
* Move avatar from table cell avatar to separate component for it to be usable outside of tables
* Add channels with variants logic to product create and update pages & views
* Refactor components to use updated channels availability components
* Remove unnecessary comments
* Update storybook
* Update types
* Update messages
* Fix prices for variants / simple product not uodating properly
* Post merge cleanup, update schema, types, etc.
* Change shipping zone details warehouses card into settings card and add ability to assign channels to shipping zone
* Update types
* Update snapshots
* Fix selecting / deselecting all channels in channels with variants modal
* Fixes after review, some types changes etc.
* Update snapshots
* Small types fixes
* Make price rates views use parent shipping method channels instead of all
* Make price rates views use parent shipping method channels instead of all
* Update types
* Fix bugs
* Fixes after review
* Fix channels availability data submission
* Fix lint
* Fix variant pricing card showing not related channels
* Fixes after review
* Fix types
* Hide unaviable variants in add products to draft order dialog
* Fix channels with variants availability modal showing confirm button as enabled when it shouldn't
* Fix types
* Update semi checked icon to match old designs
* Update types
* Update channels icon in channels with variants availability
* Fix product cypress test after product channels mutation changed
* Fix trash and chevron down colors in dark mode
* Fix shipping zones card footer not updating query after click away
* Fix types in schema, add condition not to display shipping zones select in channel details if all zones have already been selected
* Fix products adding in order draft dialog
* Fix simple productupdate
* Update snapshots after merge with master
* Update messages
* Fix product api request for cypress
* Add missing test id
* Fix selecting if product is simple -> form being submitted with empty data sometimes
* Update snapshots, messages and add fix for invalid date at product update
* Remove unnecessary imports
* Fix failing test in saleor 2552 (#1061)
* fix
* fix
* fix
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
Co-authored-by: Karolina <rakoczy.karolina@gmail.com>
2021-04-14 13:44:25 +00:00
|
|
|
import {
|
|
|
|
ExpansionPanel,
|
|
|
|
ExpansionPanelSummary,
|
|
|
|
Typography
|
|
|
|
} from "@material-ui/core";
|
|
|
|
import { ChannelData } from "@saleor/channels/utils";
|
|
|
|
import { Messages } from "@saleor/components/ChannelsAvailabilityCard/types";
|
|
|
|
import IconChevronDown from "@saleor/icons/ChevronDown";
|
2021-07-21 08:59:52 +00:00
|
|
|
import { makeStyles } from "@saleor/macaw-ui";
|
Add channel shipping zones (#1015)
* Add naked input option to SingleAutocompleteSelectField and update it's stories
* Add new icons - chevron up, down & trash
* Add deletable item component and stories
* Add card add items footer component to be used in warehouses and product stocks assign
* Update schema and types
* Add shipping zones card components
* Update channel details page form to also include shipping zones
* Update makeTopLevelSearch hook files directory and add getSearchFetchMoreProps function to avoid extracting it manually every time
* Update channels types & fragments
* Move getDefaultNotifierSuccessErrorData function to useNotifier utils, update dir etc., also make order discount provider use it from the new dir
* Add shippinh zone to channel update and create and add shipping zone search
* Update messages
* Fix types
* Fix lint, types etc
* Small refactor from review and quick fix styles of shipping zones card
* Refactor a bit and update snapshots
* Refactor a bit and update snapshots
* Addd / refactor channels availability components
* Add useChannelsWithProductVariants hook with utils and types
* Add / refactor more channels availability components
* Move avatar from table cell avatar to separate component for it to be usable outside of tables
* Add channels with variants logic to product create and update pages & views
* Refactor components to use updated channels availability components
* Remove unnecessary comments
* Update storybook
* Update types
* Update messages
* Fix prices for variants / simple product not uodating properly
* Post merge cleanup, update schema, types, etc.
* Change shipping zone details warehouses card into settings card and add ability to assign channels to shipping zone
* Update types
* Update snapshots
* Fix selecting / deselecting all channels in channels with variants modal
* Fixes after review, some types changes etc.
* Update snapshots
* Small types fixes
* Make price rates views use parent shipping method channels instead of all
* Make price rates views use parent shipping method channels instead of all
* Update types
* Fix bugs
* Fixes after review
* Fix channels availability data submission
* Fix lint
* Fix variant pricing card showing not related channels
* Fixes after review
* Fix types
* Hide unaviable variants in add products to draft order dialog
* Fix channels with variants availability modal showing confirm button as enabled when it shouldn't
* Fix types
* Update semi checked icon to match old designs
* Update types
* Update channels icon in channels with variants availability
* Fix product cypress test after product channels mutation changed
* Fix trash and chevron down colors in dark mode
* Fix shipping zones card footer not updating query after click away
* Fix types in schema, add condition not to display shipping zones select in channel details if all zones have already been selected
* Fix products adding in order draft dialog
* Fix simple productupdate
* Update snapshots after merge with master
* Update messages
* Fix product api request for cypress
* Add missing test id
* Fix selecting if product is simple -> form being submitted with empty data sometimes
* Update snapshots, messages and add fix for invalid date at product update
* Remove unnecessary imports
* Fix failing test in saleor 2552 (#1061)
* fix
* fix
* fix
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
Co-authored-by: Karolina <rakoczy.karolina@gmail.com>
2021-04-14 13:44:25 +00:00
|
|
|
import Label from "@saleor/orders/components/OrderHistory/Label";
|
|
|
|
import { getById } from "@saleor/orders/components/OrderReturnPage/utils";
|
|
|
|
import { ProductDetails_product_variants } from "@saleor/products/types/ProductDetails";
|
|
|
|
import { ChannelsWithVariantsData } from "@saleor/products/views/ProductUpdate/types";
|
|
|
|
import { areAllChannelVariantsSelected } from "@saleor/products/views/ProductUpdate/utils";
|
|
|
|
import React from "react";
|
|
|
|
import { useIntl } from "react-intl";
|
|
|
|
import { defineMessages } from "react-intl";
|
|
|
|
|
|
|
|
const useExpanderStyles = makeStyles(
|
|
|
|
theme => ({
|
|
|
|
expanded: {},
|
|
|
|
root: {
|
|
|
|
boxShadow: "none",
|
|
|
|
margin: 0,
|
|
|
|
padding: 0,
|
|
|
|
paddingBottom: theme.spacing(2),
|
|
|
|
|
|
|
|
"&:before": {
|
|
|
|
content: "none"
|
|
|
|
},
|
|
|
|
|
|
|
|
"&$expanded": {
|
|
|
|
margin: 0,
|
|
|
|
border: "none"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}),
|
|
|
|
{ name: "ChannelWithVariantAvailabilityItemWrapperExpander" }
|
|
|
|
);
|
|
|
|
|
|
|
|
const useSummaryStyles = makeStyles(
|
|
|
|
theme => ({
|
|
|
|
expanded: {},
|
|
|
|
root: {
|
|
|
|
width: "100%",
|
|
|
|
border: "none",
|
|
|
|
margin: 0,
|
|
|
|
padding: 0,
|
|
|
|
minHeight: 0,
|
|
|
|
paddingTop: theme.spacing(2),
|
|
|
|
|
|
|
|
"&$expanded": {
|
|
|
|
minHeight: 0
|
|
|
|
}
|
|
|
|
},
|
|
|
|
content: {
|
|
|
|
margin: 0,
|
|
|
|
|
|
|
|
"&$expanded": {
|
|
|
|
margin: 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}),
|
|
|
|
{ name: "ChannelWithVariantAvailabilityItemWrapperSummary" }
|
|
|
|
);
|
|
|
|
|
|
|
|
const useStyles = makeStyles(
|
|
|
|
() => ({
|
|
|
|
container: {
|
|
|
|
display: "flex",
|
|
|
|
flexDirection: "column"
|
|
|
|
}
|
|
|
|
}),
|
|
|
|
{ name: "ChannelWithVariantAvailabilityItemWrapper" }
|
|
|
|
);
|
|
|
|
|
|
|
|
const messages = defineMessages({
|
|
|
|
variantCountLabel: {
|
|
|
|
defaultMessage: "{variantsCount} variants",
|
|
|
|
description: "variants count label"
|
|
|
|
},
|
|
|
|
allVariantsLabel: {
|
|
|
|
defaultMessage: "All variants",
|
|
|
|
description: "all variants label"
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
interface ChannelAvailabilityItemWrapperProps {
|
|
|
|
variants: ProductDetails_product_variants[];
|
|
|
|
channelId: string;
|
|
|
|
channels: ChannelData[];
|
|
|
|
channelsWithVariantsData: ChannelsWithVariantsData;
|
|
|
|
messages: Messages;
|
|
|
|
}
|
|
|
|
|
|
|
|
const ChannelWithVariantsAvailabilityItemWrapper: React.FC<ChannelAvailabilityItemWrapperProps> = ({
|
|
|
|
channels,
|
|
|
|
channelsWithVariantsData,
|
|
|
|
channelId,
|
|
|
|
variants,
|
|
|
|
messages: commonChannelMessages,
|
|
|
|
children
|
|
|
|
}) => {
|
|
|
|
const expanderClasses = useExpanderStyles({});
|
|
|
|
const summaryClasses = useSummaryStyles({});
|
|
|
|
const classes = useStyles({});
|
|
|
|
const intl = useIntl();
|
|
|
|
|
|
|
|
const { name } = channels.find(getById(channelId));
|
|
|
|
const { selectedVariantsIds } = channelsWithVariantsData[channelId];
|
|
|
|
|
|
|
|
const variantsCount = selectedVariantsIds.length;
|
|
|
|
|
2021-09-17 16:02:44 +00:00
|
|
|
const variantsLabel = areAllChannelVariantsSelected(
|
|
|
|
variants?.map(variant => variant.id),
|
Add channel shipping zones (#1015)
* Add naked input option to SingleAutocompleteSelectField and update it's stories
* Add new icons - chevron up, down & trash
* Add deletable item component and stories
* Add card add items footer component to be used in warehouses and product stocks assign
* Update schema and types
* Add shipping zones card components
* Update channel details page form to also include shipping zones
* Update makeTopLevelSearch hook files directory and add getSearchFetchMoreProps function to avoid extracting it manually every time
* Update channels types & fragments
* Move getDefaultNotifierSuccessErrorData function to useNotifier utils, update dir etc., also make order discount provider use it from the new dir
* Add shippinh zone to channel update and create and add shipping zone search
* Update messages
* Fix types
* Fix lint, types etc
* Small refactor from review and quick fix styles of shipping zones card
* Refactor a bit and update snapshots
* Refactor a bit and update snapshots
* Addd / refactor channels availability components
* Add useChannelsWithProductVariants hook with utils and types
* Add / refactor more channels availability components
* Move avatar from table cell avatar to separate component for it to be usable outside of tables
* Add channels with variants logic to product create and update pages & views
* Refactor components to use updated channels availability components
* Remove unnecessary comments
* Update storybook
* Update types
* Update messages
* Fix prices for variants / simple product not uodating properly
* Post merge cleanup, update schema, types, etc.
* Change shipping zone details warehouses card into settings card and add ability to assign channels to shipping zone
* Update types
* Update snapshots
* Fix selecting / deselecting all channels in channels with variants modal
* Fixes after review, some types changes etc.
* Update snapshots
* Small types fixes
* Make price rates views use parent shipping method channels instead of all
* Make price rates views use parent shipping method channels instead of all
* Update types
* Fix bugs
* Fixes after review
* Fix channels availability data submission
* Fix lint
* Fix variant pricing card showing not related channels
* Fixes after review
* Fix types
* Hide unaviable variants in add products to draft order dialog
* Fix channels with variants availability modal showing confirm button as enabled when it shouldn't
* Fix types
* Update semi checked icon to match old designs
* Update types
* Update channels icon in channels with variants availability
* Fix product cypress test after product channels mutation changed
* Fix trash and chevron down colors in dark mode
* Fix shipping zones card footer not updating query after click away
* Fix types in schema, add condition not to display shipping zones select in channel details if all zones have already been selected
* Fix products adding in order draft dialog
* Fix simple productupdate
* Update snapshots after merge with master
* Update messages
* Fix product api request for cypress
* Add missing test id
* Fix selecting if product is simple -> form being submitted with empty data sometimes
* Update snapshots, messages and add fix for invalid date at product update
* Remove unnecessary imports
* Fix failing test in saleor 2552 (#1061)
* fix
* fix
* fix
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
Co-authored-by: Karolina <rakoczy.karolina@gmail.com>
2021-04-14 13:44:25 +00:00
|
|
|
selectedVariantsIds
|
2021-09-17 16:02:44 +00:00
|
|
|
)
|
Add channel shipping zones (#1015)
* Add naked input option to SingleAutocompleteSelectField and update it's stories
* Add new icons - chevron up, down & trash
* Add deletable item component and stories
* Add card add items footer component to be used in warehouses and product stocks assign
* Update schema and types
* Add shipping zones card components
* Update channel details page form to also include shipping zones
* Update makeTopLevelSearch hook files directory and add getSearchFetchMoreProps function to avoid extracting it manually every time
* Update channels types & fragments
* Move getDefaultNotifierSuccessErrorData function to useNotifier utils, update dir etc., also make order discount provider use it from the new dir
* Add shippinh zone to channel update and create and add shipping zone search
* Update messages
* Fix types
* Fix lint, types etc
* Small refactor from review and quick fix styles of shipping zones card
* Refactor a bit and update snapshots
* Refactor a bit and update snapshots
* Addd / refactor channels availability components
* Add useChannelsWithProductVariants hook with utils and types
* Add / refactor more channels availability components
* Move avatar from table cell avatar to separate component for it to be usable outside of tables
* Add channels with variants logic to product create and update pages & views
* Refactor components to use updated channels availability components
* Remove unnecessary comments
* Update storybook
* Update types
* Update messages
* Fix prices for variants / simple product not uodating properly
* Post merge cleanup, update schema, types, etc.
* Change shipping zone details warehouses card into settings card and add ability to assign channels to shipping zone
* Update types
* Update snapshots
* Fix selecting / deselecting all channels in channels with variants modal
* Fixes after review, some types changes etc.
* Update snapshots
* Small types fixes
* Make price rates views use parent shipping method channels instead of all
* Make price rates views use parent shipping method channels instead of all
* Update types
* Fix bugs
* Fixes after review
* Fix channels availability data submission
* Fix lint
* Fix variant pricing card showing not related channels
* Fixes after review
* Fix types
* Hide unaviable variants in add products to draft order dialog
* Fix channels with variants availability modal showing confirm button as enabled when it shouldn't
* Fix types
* Update semi checked icon to match old designs
* Update types
* Update channels icon in channels with variants availability
* Fix product cypress test after product channels mutation changed
* Fix trash and chevron down colors in dark mode
* Fix shipping zones card footer not updating query after click away
* Fix types in schema, add condition not to display shipping zones select in channel details if all zones have already been selected
* Fix products adding in order draft dialog
* Fix simple productupdate
* Update snapshots after merge with master
* Update messages
* Fix product api request for cypress
* Add missing test id
* Fix selecting if product is simple -> form being submitted with empty data sometimes
* Update snapshots, messages and add fix for invalid date at product update
* Remove unnecessary imports
* Fix failing test in saleor 2552 (#1061)
* fix
* fix
* fix
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
Co-authored-by: Karolina <rakoczy.karolina@gmail.com>
2021-04-14 13:44:25 +00:00
|
|
|
? messages.allVariantsLabel
|
|
|
|
: messages.variantCountLabel;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<ExpansionPanel classes={expanderClasses}>
|
|
|
|
<ExpansionPanelSummary
|
|
|
|
expandIcon={<IconChevronDown />}
|
|
|
|
classes={summaryClasses}
|
|
|
|
>
|
|
|
|
<div className={classes.container}>
|
|
|
|
<Typography>{name}</Typography>
|
|
|
|
<Label text={intl.formatMessage(variantsLabel, { variantsCount })} />
|
|
|
|
<Label text={commonChannelMessages.availableDateText} />
|
|
|
|
</div>
|
|
|
|
</ExpansionPanelSummary>
|
|
|
|
{children}
|
|
|
|
</ExpansionPanel>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default ChannelWithVariantsAvailabilityItemWrapper;
|