saleor-dashboard/src/orders/components/OrderHistory/ExtendedDiscountTimelineEvent/ExtendedDiscountTimelineEvent.tsx

107 lines
2.8 KiB
TypeScript
Raw Normal View History

Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
import { Typography } from "@material-ui/core";
import HorizontalSpacer from "@saleor/apps/components/HorizontalSpacer";
import CardSpacer from "@saleor/components/CardSpacer";
import { TimelineEvent } from "@saleor/components/Timeline";
import { TitleElement } from "@saleor/components/Timeline/TimelineEventHeader";
Use graphql-codegen (#1874) * Use generated hooks in apps * Remove unused files * Use proper types in apps * Use generated hooks in attributes * Use generated hooks in auth module * Use generated hooks in categories * Use generated hooks in channels * Use generated types in collections * Remove legacy types from background tasks * Use generated hooks in customers * Use generated hooks in discounts * Use generated hook in file upload * Use generated types in gift cards * Use generated types in home * Use generated hooks in navigation * Use generated hooks in orders * Use generated hooks in pages * Use generated hooks in page types * Use generated hooks in permission groups * Use generated hooks in plugins * Use generated hooks in products * Use fragment to mark product variants * Improve code a bit * Use generated hooks in page types * Use generated types in searches * Use generated hooks in shipping * Use generated hooks in site settings * Use generated hooks in staff members * Use generated hooks in taxes * Place all gql generated files in one directory * Use generated hooks in translations * Use global types from new generated module * Use generated hooks in warehouses * Use generated hooks in webhooks * Use generated fragment types * Unclutter types * Remove hoc components * Split hooks and types * Fetch introspection file * Delete obsolete schema file * Fix rebase artifacts * Fix autoreplace * Fix auth provider tests * Fix urls * Remove leftover types * Fix rebase artifacts
2022-03-09 08:56:55 +00:00
import { OrderEventFragment, OrderEventsEnum } from "@saleor/graphql";
Use MacawUI (#1229) * Replace withStyleswith useStyles (#1100) * Replace withStyleswith useStyles * Update messages * Use rem as a spacing unit (#1101) * Use rems as spacing units * Fix visual bugs * Update stories * Use macaw-ui as theme provider (#1108) * Use macaw ui as a theme provider * Add react-dom to aliases * Fix jest module resolution * Update useTheme hook usage * Fix test wrapper * Use macaw from git repo * Fix CI * Update stories * Fix aliasing * Extract savebar to macaw ui (#1146) * wip * Use savebar from macaw * Use confirm button from macaw * Improve file structure * Use sidebar context from macaw * Update macaw * Update macaw version * Remove savebar from storybook * Update stories * Use alerts and notifications from macaw (#1166) * Use alerts from macaw * Add notifications from macaw * Update stories * Pin macaw version * Encapsulate limit reached in one component * Remove unused imports * Use backlinks from macaw (#1183) * Use backlink from macaw * Update macaw version * Use macaw sidebar (#1148) * Use sidebar from macaw * Use shipped logo * Use lowercase * Update stories * Use user chip from macaw (#1191) * Use user chip from macaw * Use dedicated components for menu items * Simplify code * Bump version and fix types (#1210) * Rename onBack to onClick * Rename UserChip to UserChipMenu * Rename IMenuItem to SidebarMenuItem * Update macaw version * Fix tables after changes in macaw (#1220) * Update macaw version * Update changelog * Update stories * Fix after rebase * Update to macaw 0.2.0 * Lint files * Update macaw to 0.2.2
2021-07-21 08:59:52 +00:00
import { makeStyles } from "@saleor/macaw-ui";
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
import React from "react";
import { defineMessages, useIntl } from "react-intl";
import Label from "../Label";
import MoneySection, { MoneySectionType } from "./MoneySection";
const useStyles = makeStyles(
() => ({
horizontalContainer: {
display: "flex",
flexDirection: "row",
justifyContent: "space-between",
alignItems: "baseline",
width: "100%",
},
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
}),
{ name: "ExtendedDiscountTimelineEvent" },
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
);
export const messages = defineMessages({
reasonLabel: {
id: "kVOslW",
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
defaultMessage: "Reason for discount",
description: "reason for discount label",
},
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
});
interface ExtendedTimelineEventProps {
Use graphql-codegen (#1874) * Use generated hooks in apps * Remove unused files * Use proper types in apps * Use generated hooks in attributes * Use generated hooks in auth module * Use generated hooks in categories * Use generated hooks in channels * Use generated types in collections * Remove legacy types from background tasks * Use generated hooks in customers * Use generated hooks in discounts * Use generated hook in file upload * Use generated types in gift cards * Use generated types in home * Use generated hooks in navigation * Use generated hooks in orders * Use generated hooks in pages * Use generated hooks in page types * Use generated hooks in permission groups * Use generated hooks in plugins * Use generated hooks in products * Use fragment to mark product variants * Improve code a bit * Use generated hooks in page types * Use generated types in searches * Use generated hooks in shipping * Use generated hooks in site settings * Use generated hooks in staff members * Use generated hooks in taxes * Place all gql generated files in one directory * Use generated hooks in translations * Use global types from new generated module * Use generated hooks in warehouses * Use generated hooks in webhooks * Use generated fragment types * Unclutter types * Remove hoc components * Split hooks and types * Fetch introspection file * Delete obsolete schema file * Fix rebase artifacts * Fix autoreplace * Fix auth provider tests * Fix urls * Remove leftover types * Fix rebase artifacts
2022-03-09 08:56:55 +00:00
event: OrderEventFragment;
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
titleElements: TitleElement[];
}
const ExtendedDiscountTimelineEvent: React.FC<ExtendedTimelineEventProps> = ({
event,
titleElements,
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
}) => {
const classes = useStyles({});
const intl = useIntl();
const { lines, date, type } = event;
const parsedDiscount =
type === OrderEventsEnum.ORDER_LINE_DISCOUNT_UPDATED
? lines[0].discount
: event.discount;
const {
valueType: calculationMode,
value,
reason,
amount: moneyData,
oldValueType: oldCalculationMode,
oldValue,
oldAmount: oldMoneyData,
Saleor 1856/implement discount modal 2 (#978) * Add currency to orderline unitprice and update hella lots of types * wip * Add diiscount modal component * Refactor action dialog - move buttons to separate component so they can be reused * Add discount provider to keep logic of discounts separated and wrap proper components * Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc * UUpdate lots of types, fragments, schema etc * Update quries and mutations * ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc * Add order line discount provider + consumer, same for order discount * Fix ts wip * Update schema and types * Update order discount provider * Add nnetto price to order details fragment and update lots of types * Adjust fixtures to order details containing net total * Move both order and order line provider to same dir to make types and utils more accessible * Update schema to match master * Update schema and types * Update order history, add some related components, add events etc. * Fix types * Fix schema to match master * Update messages * Update changelog * Retrigger build * Add stories and update common modal to display floats properly * Add and update stories and tests * Add optional displaying of reason in case it's empty * Make user name label for history events return email if last name and first name are absent * Update schema, types, and mutations to properly refresh * Remove unnecessary imports * Add discounts decorator to draft details page storybook * Fixs after review * Update messages * Small fixes to timeline events * Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette * Updaste tests, messages * Fixs after review * Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode * Add change to changelog * Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null * Refactor selecting employee name in utils * Add conditional to extended timeline event when orderline is null
2021-03-05 14:52:02 +00:00
} = parsedDiscount;
const shouldDisplayOldNewSections = !!oldValue;
return (
<TimelineEvent date={date} titleElements={titleElements}>
{shouldDisplayOldNewSections && (
<div className={classes.horizontalContainer}>
<MoneySection
sectionType={MoneySectionType.NEW}
value={value}
moneyData={moneyData}
calculationMode={calculationMode}
/>
<HorizontalSpacer spacing={4} />
<MoneySection
sectionType={MoneySectionType.OLD}
value={oldValue}
moneyData={oldMoneyData}
calculationMode={oldCalculationMode}
/>
</div>
)}
{!shouldDisplayOldNewSections && (
<MoneySection
sectionType={MoneySectionType.ONLY}
value={value}
moneyData={moneyData}
calculationMode={calculationMode}
/>
)}
<CardSpacer />
{!!reason && (
<>
<Label text={intl.formatMessage(messages.reasonLabel)} />
<Typography>{reason}</Typography>
</>
)}
</TimelineEvent>
);
};
export default ExtendedDiscountTimelineEvent;