bananas-commerce-admin 0.17.18 → 0.17.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
2
  import { Box, FormControlLabel, Switch, Typography } from "@mui/material";
3
3
  import { useI18n } from "../../../contexts/I18nContext";
4
- const ExchangeSwitch = ({ checked, onChange }) => {
4
+ const ExchangeSwitch = ({ checked, onChange, disabled }) => {
5
5
  const { t } = useI18n();
6
6
  return (React.createElement(Box, { position: "absolute", right: 16, top: 16 },
7
- React.createElement(FormControlLabel, { checked: checked, control: React.createElement(Switch, { color: "primary", size: "small" }), label: React.createElement(Typography, { color: "textSecondary", variant: "caption" }, t("Exchange")), labelPlacement: "end", sx: { margin: 0, gap: 0.5 }, onChange: () => onChange() })));
7
+ React.createElement(FormControlLabel, { checked: checked, control: React.createElement(Switch, { color: "primary", size: "small" }), disabled: disabled, label: React.createElement(Typography, { color: "textSecondary", variant: "caption" }, t("Exchange")), labelPlacement: "end", sx: { margin: 0, gap: 0.5 }, onChange: () => onChange() })));
8
8
  };
9
9
  export default ExchangeSwitch;
10
10
  //# sourceMappingURL=ExchangeSwitch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExchangeSwitch.js","sourceRoot":"","sources":["../../../../../src/extensions/pos/components/ExchangeSwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAOxD,MAAM,cAAc,GAAkC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9E,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QACzC,oBAAC,gBAAgB,IACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,GAAG,EAChD,KAAK,EACH,oBAAC,UAAU,IAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAC,SAAS,IAChD,CAAC,CAAC,UAAU,CAAC,CACH,EAEf,cAAc,EAAC,KAAK,EACpB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAC1B,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"ExchangeSwitch.js","sourceRoot":"","sources":["../../../../../src/extensions/pos/components/ExchangeSwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAQxD,MAAM,cAAc,GAAkC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxF,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QACzC,oBAAC,gBAAgB,IACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,GAAG,EAChD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EACH,oBAAC,UAAU,IAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAC,SAAS,IAChD,CAAC,CAAC,UAAU,CAAC,CACH,EAEf,cAAc,EAAC,KAAK,EACpB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAC1B,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -19,7 +19,7 @@ const PurchaseAmountWidget = ({ data, sx }) => {
19
19
  const api = useApi();
20
20
  const { user } = useUser();
21
21
  const [shouldExchange, setShouldExchange] = useState(true);
22
- const { exchangedData, totalAmount, onlyExchangedCurrency } = useExchangedData(data, shouldExchange);
22
+ const { exchangedData, totalAmount, onlyExchangedCurrency, exchangeAvailable } = useExchangedData(data, shouldExchange);
23
23
  const purchaseAmounts = data.length;
24
24
  const filteredAmount = diffDatesByGranularityWithFilter(filter);
25
25
  const isFourColumn = useMemo(() => {
@@ -34,7 +34,7 @@ const PurchaseAmountWidget = ({ data, sx }) => {
34
34
  return false;
35
35
  }, [api, user]);
36
36
  return (React.createElement(WidgetCard, { gridColumn: { md: isFourColumn ? "span 3" : "span 4", sm: "span 1" }, gridRow: "span 1", sx: sx, title: t("Purchase Revenue") },
37
- React.createElement(ExchangeSwitch, { checked: shouldExchange, onChange: () => setShouldExchange((prev) => !prev) }),
37
+ React.createElement(ExchangeSwitch, { checked: shouldExchange, disabled: !exchangeAvailable, onChange: () => setShouldExchange((prev) => !prev) }),
38
38
  purchaseAmounts >= 2 ? (React.createElement(React.Fragment, null,
39
39
  React.createElement(SitesAmountsList, { data: exchangedData, isExchanged: shouldExchange }),
40
40
  shouldExchange && onlyExchangedCurrency && (React.createElement(SitesTotal, { amount: totalAmount, currency: "SEK" })))) : (React.createElement(Stack, { height: "100%", px: 2 },
@@ -1 +1 @@
1
- {"version":3,"file":"PurchaseAmountWidget.js","sourceRoot":"","sources":["../../../../../src/extensions/pos/contrib/PurchaseAmountWidget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PurchaseAmountWidget.js","sourceRoot":"","sources":["../../../../../src/extensions/pos/contrib/PurchaseAmountWidget.tsx"],"names":[],"mappings":"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"}
@@ -17,11 +17,14 @@ export function useExchangedData(data, shouldExchange, toCurrency = "SEK", excha
17
17
  const totalAmount = exchangedData.reduce((acc, item) => {
18
18
  return acc + parseFloat(item.amount);
19
19
  }, 0);
20
- const onlyExchangedCurrency = exchangedData.every((item) => item.currency === toCurrency);
20
+ const onlyExchangedCurrency = exchangedData.every((item) => item.currency.toUpperCase() === toCurrency.toUpperCase());
21
+ const exchangeAvailable = data.some((item) => item.currency.toUpperCase() in exchangeRates &&
22
+ item.currency.toUpperCase() !== toCurrency.toUpperCase());
21
23
  return {
22
24
  exchangedData,
23
25
  totalAmount,
24
26
  onlyExchangedCurrency,
27
+ exchangeAvailable,
25
28
  };
26
29
  }
27
30
  const sekExchangeRates = {
@@ -1 +1 @@
1
- {"version":3,"file":"useExchangedData.js","sourceRoot":"","sources":["../../../../../src/extensions/pos/hooks/useExchangedData.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,IAA0B,EAC1B,cAAuB,EACvB,aAAqB,KAAK,EAC1B,gBAAwC,gBAAgB;IAExD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,aAAa,EAAE,CAAC;YACnE,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EAAE,CACN,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;oBACvB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAgC,CAAC,CACzE,CAAC,OAAO,CAAC,CAAC,CAAC;gBACZ,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;aACtD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACrD,OAAO,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,MAAM,qBAAqB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IAE1F,OAAO;QACL,aAAa;QACb,WAAW;QACX,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,IAAI;CACV,CAAC"}
1
+ {"version":3,"file":"useExchangedData.js","sourceRoot":"","sources":["../../../../../src/extensions/pos/hooks/useExchangedData.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,IAA0B,EAC1B,cAAuB,EACvB,aAAqB,KAAK,EAC1B,gBAAwC,gBAAgB;IAExD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,aAAa,EAAE,CAAC;YACnE,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EAAE,CACN,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;oBACvB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAgC,CAAC,CACzE,CAAC,OAAO,CAAC,CAAC,CAAC;gBACZ,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;aACtD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACrD,OAAO,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,MAAM,qBAAqB,GAAG,aAAa,CAAC,KAAK,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CACnE,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,aAAa;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAC3D,CAAC;IAEF,OAAO;QACL,aAAa;QACb,WAAW;QACX,qBAAqB;QACrB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,IAAI;CACV,CAAC"}
@@ -2,6 +2,7 @@ import React from "react";
2
2
  export interface ExchangeSwitchProps {
3
3
  checked: boolean;
4
4
  onChange: () => void;
5
+ disabled?: boolean;
5
6
  }
6
7
  declare const ExchangeSwitch: React.FC<ExchangeSwitchProps>;
7
8
  export default ExchangeSwitch;
@@ -7,4 +7,5 @@ export declare function useExchangedData(data: PurchaseAmountItem[], shouldExcha
7
7
  }[];
8
8
  totalAmount: number;
9
9
  onlyExchangedCurrency: boolean;
10
+ exchangeAvailable: boolean;
10
11
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bananas-commerce-admin",
3
- "version": "0.17.18",
3
+ "version": "0.17.19",
4
4
  "description": "What's this, an admin for apes?",
5
5
  "keywords": [
6
6
  "admin",
@@ -7,9 +7,10 @@ import { useI18n } from "../../../contexts/I18nContext";
7
7
  export interface ExchangeSwitchProps {
8
8
  checked: boolean;
9
9
  onChange: () => void;
10
+ disabled?: boolean;
10
11
  }
11
12
 
12
- const ExchangeSwitch: React.FC<ExchangeSwitchProps> = ({ checked, onChange }) => {
13
+ const ExchangeSwitch: React.FC<ExchangeSwitchProps> = ({ checked, onChange, disabled }) => {
13
14
  const { t } = useI18n();
14
15
 
15
16
  return (
@@ -17,6 +18,7 @@ const ExchangeSwitch: React.FC<ExchangeSwitchProps> = ({ checked, onChange }) =>
17
18
  <FormControlLabel
18
19
  checked={checked}
19
20
  control={<Switch color="primary" size="small" />}
21
+ disabled={disabled}
20
22
  label={
21
23
  <Typography color="textSecondary" variant="caption">
22
24
  {t("Exchange")}
@@ -24,7 +24,7 @@ const PurchaseAmountWidget: ContribComponent<PurchaseAmountItem[]> = ({ data, sx
24
24
  const { user } = useUser();
25
25
 
26
26
  const [shouldExchange, setShouldExchange] = useState(true);
27
- const { exchangedData, totalAmount, onlyExchangedCurrency } = useExchangedData(
27
+ const { exchangedData, totalAmount, onlyExchangedCurrency, exchangeAvailable } = useExchangedData(
28
28
  data,
29
29
  shouldExchange,
30
30
  );
@@ -56,6 +56,7 @@ const PurchaseAmountWidget: ContribComponent<PurchaseAmountItem[]> = ({ data, sx
56
56
  >
57
57
  <ExchangeSwitch
58
58
  checked={shouldExchange}
59
+ disabled={!exchangeAvailable}
59
60
  onChange={() => setShouldExchange((prev) => !prev)}
60
61
  />
61
62
  {purchaseAmounts >= 2 ? (
@@ -29,12 +29,21 @@ export function useExchangedData(
29
29
  return acc + parseFloat(item.amount);
30
30
  }, 0);
31
31
 
32
- const onlyExchangedCurrency = exchangedData.every((item) => item.currency === toCurrency);
32
+ const onlyExchangedCurrency = exchangedData.every(
33
+ (item) => item.currency.toUpperCase() === toCurrency.toUpperCase(),
34
+ );
35
+
36
+ const exchangeAvailable = data.some(
37
+ (item) =>
38
+ item.currency.toUpperCase() in exchangeRates &&
39
+ item.currency.toUpperCase() !== toCurrency.toUpperCase(),
40
+ );
33
41
 
34
42
  return {
35
43
  exchangedData,
36
44
  totalAmount,
37
45
  onlyExchangedCurrency,
46
+ exchangeAvailable,
38
47
  };
39
48
  }
40
49