@odynn/awayz-core 0.9.30 → 0.9.32

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.
@@ -27,8 +27,8 @@ const c = (r, t) => {
27
27
  maximumFractionDigits: 0
28
28
  }).replace(/\d/g, "").trim();
29
29
  export {
30
- c as a,
31
- u as b,
30
+ i as a,
31
+ c as b,
32
32
  y as c,
33
- i as g
33
+ u as g
34
34
  };
@@ -1,107 +1,110 @@
1
- import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
- import { useQuery as g } from "@tanstack/react-query";
1
+ import { jsx as r, jsxs as l } from "react/jsx-runtime";
2
+ import { useQuery as R } from "@tanstack/react-query";
3
3
  import "../../arrayExtensions-DlcBOj5a.js";
4
- import { g as E, a as C, b as u } from "../../cashUtils-DJFSvWw5.js";
5
- import { E as R } from "../../noRetryInstance-DKhe8ju0.js";
6
- import { useMemo as _ } from "react";
7
- import { a as N } from "../../index-C8p5kinH.js";
4
+ import { g as m, a as _, b as N } from "../../cashUtils-DB_r0g-F.js";
5
+ import { E as S } from "../../noRetryInstance-DKhe8ju0.js";
6
+ import { useMemo as T } from "react";
7
+ import { a as f } from "../../index-C8p5kinH.js";
8
8
  import "react-i18next";
9
9
  import '../../assets/_styles3.css';import '../../assets/_styles.css';import '../../assets/_styles2.css';/* empty css */
10
10
  import "../../_styles.flight-booking-CaUgKcMC.js";
11
11
  /* empty css */
12
- import { EInvalidAmountDisplayOption as o, EToolTipPosition as S } from "./CashValueTypes.js";
13
- import { useAwayzContext as T } from "../../hooks/useAwayzContext.js";
12
+ import { EInvalidAmountDisplayOption as s, EToolTipPosition as D } from "./CashValueTypes.js";
13
+ import { useAwayzContext as I } from "../../hooks/useAwayzContext.js";
14
14
  import "../../configs/awayzClient.js";
15
15
  /* empty css */
16
16
  import "../../context/AwayzContext.js";
17
- import { CurrencyService as D } from "../../services/currency/CurrencyService.js";
18
- import { Tooltip as I } from "../Tooltip/Tooltip.js";
19
- const M = 1e3 * 60 * 60, z = ({
17
+ import { CurrencyService as M } from "../../services/currency/CurrencyService.js";
18
+ import { Tooltip as O } from "../Tooltip/Tooltip.js";
19
+ const x = 1e3 * 60 * 60, k = ({
20
20
  amount: i,
21
- currency: r,
22
- position: f = S.RIGHT,
23
- zeroDisplayOption: A = o.NA,
24
- customDisplay: v,
21
+ currency: e,
22
+ position: v = D.RIGHT,
23
+ zeroDisplayOption: A = s.NA,
24
+ customDisplay: y,
25
25
  decimalPlaces: p = 2,
26
- showConversion: y = !1
26
+ showConversion: g = !1,
27
+ showOriginal: E = !1
27
28
  }) => {
28
- var h;
29
- const { user: t } = T(), n = ((h = t == null ? void 0 : t.preferences) == null ? void 0 : h.currency) ?? r, s = n !== r, { data: c, isPending: m } = g({
30
- queryKey: [R.CONVERT_CURRENCY, r, n],
31
- queryFn: () => D.convertCurrency({
32
- baseCurrency: r,
29
+ var h, C;
30
+ const { user: o } = I(), n = ((h = o == null ? void 0 : o.preferences) == null ? void 0 : h.currency) ?? ((C = o == null ? void 0 : o.userRegion) == null ? void 0 : C.currency), t = n !== e, { data: c, isPending: d } = R({
31
+ queryKey: [S.CONVERT_CURRENCY, e, n],
32
+ queryFn: () => M.convertCurrency({
33
+ baseCurrency: e,
33
34
  targetCurrency: n
34
35
  }),
35
- enabled: s && !!r && !!i,
36
- staleTime: M
37
- }), a = _(() => {
38
- if (!t)
36
+ enabled: t && !!e && !!i,
37
+ staleTime: x
38
+ }), a = T(() => {
39
+ if (!o)
39
40
  return null;
40
- let d = typeof i == "string" ? parseFloat(i) : i;
41
- if (s) {
42
- if (m || !c) return null;
43
- d = d * c;
41
+ let u = typeof i == "string" ? parseFloat(i) : i;
42
+ if (t) {
43
+ if (d || !c) return null;
44
+ u = u * c;
44
45
  }
45
- return d;
46
- }, [i, t, m, s, c]);
47
- if (m && s)
48
- return /* @__PURE__ */ e("span", { className: "currency-conversion loading", children: i });
46
+ return u;
47
+ }, [i, o, d, t, c]);
48
+ if (E)
49
+ return /* @__PURE__ */ r("span", { className: "currency-conversion", children: m(i, e, p) });
50
+ if (d && t)
51
+ return /* @__PURE__ */ r("span", { className: "currency-conversion loading", children: i });
49
52
  if (!n || !a || a < 0)
50
53
  switch (A) {
51
- case o.NA:
52
- return /* @__PURE__ */ e("span", { children: "N/A" });
53
- case o.HIDDEN:
54
- return /* @__PURE__ */ e("span", { className: "hidden", children: "N/A" });
55
- case o.DISPLAY_AS_ZERO:
56
- return /* @__PURE__ */ e("span", { children: "0" });
57
- case o.DISPLAY_AS_ZERO_WITH_CURRENCY:
58
- return /* @__PURE__ */ e("span", { children: C(0, n ?? r) });
59
- case o.DISPLAY_AS_ZERO_WITH_CURRENCY_NO_DECIMAL:
60
- return /* @__PURE__ */ e("span", { children: E(0, n ?? r) });
61
- case o.CUSTOM:
62
- return /* @__PURE__ */ e("span", { children: a == 0 ? v : "N/A" });
54
+ case s.NA:
55
+ return /* @__PURE__ */ r("span", { children: "N/A" });
56
+ case s.HIDDEN:
57
+ return /* @__PURE__ */ r("span", { className: "hidden", children: "N/A" });
58
+ case s.DISPLAY_AS_ZERO:
59
+ return /* @__PURE__ */ r("span", { children: "0" });
60
+ case s.DISPLAY_AS_ZERO_WITH_CURRENCY:
61
+ return /* @__PURE__ */ r("span", { children: N(0, n ?? e) });
62
+ case s.DISPLAY_AS_ZERO_WITH_CURRENCY_NO_DECIMAL:
63
+ return /* @__PURE__ */ r("span", { children: _(0, n ?? e) });
64
+ case s.CUSTOM:
65
+ return /* @__PURE__ */ r("span", { children: a == 0 ? y : "N/A" });
63
66
  default:
64
- return /* @__PURE__ */ e("span", { children: "N/A" });
67
+ return /* @__PURE__ */ r("span", { children: "N/A" });
65
68
  }
66
69
  return /* @__PURE__ */ l("span", { className: "currency-conversion", children: [
67
- u(
70
+ m(
68
71
  a,
69
72
  n,
70
73
  p
71
74
  ),
72
- s && y && /* @__PURE__ */ e(
73
- I,
75
+ t && g && /* @__PURE__ */ r(
76
+ O,
74
77
  {
75
- trigger: /* @__PURE__ */ e("sup", { children: /* @__PURE__ */ e(N, {}) }),
76
- position: f,
78
+ trigger: /* @__PURE__ */ r("sup", { children: /* @__PURE__ */ r(f, {}) }),
79
+ position: v,
77
80
  children: /* @__PURE__ */ l("div", { className: "currency-conversion-container", children: [
78
81
  /* @__PURE__ */ l("p", { children: [
79
82
  "Converted from ",
80
- r,
83
+ e,
81
84
  " to ",
82
85
  n
83
86
  ] }),
84
87
  /* @__PURE__ */ l("div", { className: "currency-conversion-amounts", children: [
85
- /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e("p", { children: u(i, r, p) }) }),
86
- /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e("p", { children: u(
88
+ /* @__PURE__ */ r("div", { children: /* @__PURE__ */ r("p", { children: m(i, e, p) }) }),
89
+ /* @__PURE__ */ r("div", { children: /* @__PURE__ */ r("p", { children: m(
87
90
  a,
88
91
  n,
89
92
  p
90
93
  ) }) }),
91
- /* @__PURE__ */ e("span", { className: "conversion-icon", children: /* @__PURE__ */ e(N, {}) })
94
+ /* @__PURE__ */ r("span", { className: "conversion-icon", children: /* @__PURE__ */ r(f, {}) })
92
95
  ] }),
93
- /* @__PURE__ */ e("div", { className: "currency-conversion-rate", children: /* @__PURE__ */ l("p", { children: [
96
+ /* @__PURE__ */ r("div", { className: "currency-conversion-rate", children: /* @__PURE__ */ l("p", { children: [
94
97
  "Current Rate:",
95
98
  " ",
96
99
  c ? (
97
100
  // only leaving 2 decimal places for the conversion rate is
98
101
  // not enough, can lead to confusion
99
102
  // use Number constructor to strip unnecessary trailing zeros
100
- `${Number((1 / c).toFixed(5))} ${r}`
103
+ `${Number((1 / c).toFixed(5))} ${e}`
101
104
  ) : "N/A",
102
105
  " ",
103
106
  "≈ ",
104
- C(1, n)
107
+ N(1, n)
105
108
  ] }) })
106
109
  ] })
107
110
  }
@@ -109,6 +112,6 @@ const M = 1e3 * 60 * 60, z = ({
109
112
  ] });
110
113
  };
111
114
  export {
112
- z as CashValue,
113
- M as CurrencyCallStaleTimeMs
115
+ k as CashValue,
116
+ x as CurrencyCallStaleTimeMs
114
117
  };
@@ -1,5 +1,5 @@
1
1
  import "../../arrayExtensions-DlcBOj5a.js";
2
- import { c as M } from "../../cashUtils-DJFSvWw5.js";
2
+ import { c as M } from "../../cashUtils-DB_r0g-F.js";
3
3
  import { e as P, A as l, E as N } from "../../noRetryInstance-DKhe8ju0.js";
4
4
  import { a as o } from "../../_styles.flight-booking-CaUgKcMC.js";
5
5
  import { useState as f, useCallback as I, useEffect as h } from "react";
@@ -17,22 +17,22 @@ import "../../context/AwayzContext.js";
17
17
  /* empty css */
18
18
  import { EAuthFlow as T } from "../../types/EAuthFlow.js";
19
19
  const x = (s, c) => {
20
- var m, y;
21
- let i = "", d = c;
22
- typeof c == "string" ? i = c : c instanceof P ? (i = c.message, d = {
20
+ var m, S;
21
+ let i = "", y = c;
22
+ typeof c == "string" ? i = c : c instanceof P ? (i = c.message, y = {
23
23
  message: c.message,
24
24
  cause: c.cause,
25
25
  status: c.status,
26
26
  data: (m = c == null ? void 0 : c.response) == null ? void 0 : m.data
27
- }) : i = c.message, (y = window.parent) == null || y.postMessage(
27
+ }) : i = c.message, (S = window.parent) == null || S.postMessage(
28
28
  {
29
29
  type: "auth_error",
30
- details: { message: i, action: s, info: d }
30
+ details: { message: i, action: s, info: y }
31
31
  },
32
32
  "*"
33
33
  );
34
34
  }, le = (s) => {
35
- const [c, i] = f(!0), [d, m] = f(!1), [y, A] = f(), [S, k] = f(), [C, _] = f([]), [p, F] = f([]), g = I(
35
+ const [c, i] = f(!0), [y, m] = f(!1), [S, A] = f(), [g, k] = f(), [C, _] = f([]), [p, F] = f([]), E = I(
36
36
  async (t) => {
37
37
  s != null && s.onSuccess && (s == null || s.onSuccess(t)), s != null && s.onSuccessAsync && await (s == null ? void 0 : s.onSuccessAsync(t)), i(!1), m(!0), A(t.token), k(t.user), O.invalidateQueries();
38
38
  },
@@ -59,13 +59,13 @@ const x = (s, c) => {
59
59
  u("no awayz token returned after exchanging id token");
60
60
  return;
61
61
  }
62
- localStorage.setItem(o.TOKEN, n.token), await g(n);
63
- const { data: E, ...K } = await l.getRequestLimit();
62
+ localStorage.setItem(o.TOKEN, n.token), await E(n);
63
+ const { data: d, ...K } = await l.getRequestLimit();
64
64
  if (!K.success) {
65
65
  console.error({ reqLimitError: K });
66
66
  return;
67
67
  }
68
- E == null || E.forEach(
68
+ d == null || d.forEach(
69
69
  (H) => window.parent.postMessage(
70
70
  {
71
71
  type: "request_limit",
@@ -89,7 +89,7 @@ const x = (s, c) => {
89
89
  u(e);
90
90
  return;
91
91
  }
92
- await g({
92
+ await E({
93
93
  user: e,
94
94
  token: localStorage.getItem(o.TOKEN)
95
95
  });
@@ -126,11 +126,11 @@ const x = (s, c) => {
126
126
  if (e.data.type !== "auth") return;
127
127
  const r = (w = e.data) == null ? void 0 : w.idToken, a = e.data.refreshToken, n = s.isTestMode ? e.data.overrideTokenExchangeEndpoint : void 0;
128
128
  if (!r) {
129
- const E = `received message ${JSON.stringify(
129
+ const d = `received message ${JSON.stringify(
130
130
  e.data
131
131
  )}
132
132
  no idToken in body`;
133
- u(E);
133
+ u(d);
134
134
  return;
135
135
  }
136
136
  localStorage.setItem(o.REFRESH_TOKEN, a), await R(r, a, n);
@@ -146,9 +146,9 @@ const x = (s, c) => {
146
146
  };
147
147
  }, []), {
148
148
  isAuthenticating: c,
149
- isAuthenticated: d,
150
- token: y,
151
- user: S,
149
+ isAuthenticated: y,
150
+ token: S,
151
+ user: g,
152
152
  supportedRegions: C,
153
153
  supportedCurrencies: p,
154
154
  signIn: async (t) => {
@@ -158,7 +158,7 @@ const x = (s, c) => {
158
158
  u(e.message);
159
159
  else {
160
160
  const a = (r = e.data) == null ? void 0 : r.refreshToken;
161
- localStorage.setItem(o.REFRESH_TOKEN, a), await g(e.data);
161
+ localStorage.setItem(o.REFRESH_TOKEN, a), await E(e.data);
162
162
  }
163
163
  return e;
164
164
  },
@@ -169,7 +169,7 @@ const x = (s, c) => {
169
169
  u(e.message);
170
170
  else {
171
171
  const a = (r = e.data) == null ? void 0 : r.refreshToken;
172
- localStorage.setItem(o.REFRESH_TOKEN, a), await g(e.data);
172
+ localStorage.setItem(o.REFRESH_TOKEN, a), await E(e.data);
173
173
  }
174
174
  return e;
175
175
  },
@@ -186,7 +186,7 @@ const x = (s, c) => {
186
186
  u(r.message);
187
187
  else {
188
188
  const n = (a = r.data) == null ? void 0 : a.refreshToken;
189
- localStorage.setItem(o.REFRESH_TOKEN, n), await g(r.data);
189
+ localStorage.setItem(o.REFRESH_TOKEN, n), await E(r.data);
190
190
  }
191
191
  return r;
192
192
  },
@@ -198,12 +198,12 @@ const x = (s, c) => {
198
198
  const e = await q.setCurrency(t);
199
199
  if (!e.success || !e.data)
200
200
  return console.error("Failed to set preferred currency:", e), !1;
201
- if (S) {
201
+ if (g) {
202
202
  const r = {
203
- ...S,
203
+ ...g,
204
204
  preferences: {
205
- ...S.preferences,
206
- currency: e.data.currency
205
+ ...g.preferences,
206
+ currency: e.data.currency || g.preferences.currency
207
207
  }
208
208
  };
209
209
  k(r), O.invalidateQueries({
@@ -38,6 +38,10 @@ export interface ICashValueProps {
38
38
  * Defaults to true, but can be set to false to hide it.
39
39
  */
40
40
  showConversion?: boolean;
41
+ /**
42
+ * Whether to show the original amount and currency
43
+ */
44
+ showOriginal?: boolean;
41
45
  }
42
46
  export declare const CurrencyCallStaleTimeMs: number;
43
47
  /**
@@ -47,4 +51,4 @@ export declare const CurrencyCallStaleTimeMs: number;
47
51
  * If the original currency differs from the user's currency, it shows a conversion
48
52
  * tooltip with details about the conversion rate and original amount.
49
53
  */
50
- export declare const CashValue: ({ amount, currency, position, zeroDisplayOption, customDisplay, decimalPlaces, showConversion }: ICashValueProps) => import("react/jsx-runtime").JSX.Element;
54
+ export declare const CashValue: ({ amount, currency, position, zeroDisplayOption, customDisplay, decimalPlaces, showConversion, showOriginal }: ICashValueProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import { StoryObj } from '@storybook/react';
2
2
  import { EInvalidAmountDisplayOption, EToolTipPosition } from './CashValueTypes';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: ({ amount, currency, position, zeroDisplayOption, customDisplay, decimalPlaces, showConversion }: import('./CashValue').ICashValueProps) => import("react/jsx-runtime").JSX.Element;
5
+ component: ({ amount, currency, position, zeroDisplayOption, customDisplay, decimalPlaces, showConversion, showOriginal }: import('./CashValue').ICashValueProps) => import("react/jsx-runtime").JSX.Element;
6
6
  parameters: {
7
7
  layout: string;
8
8
  };
@@ -14,7 +14,7 @@ export interface IUser {
14
14
  isSocialUser: boolean;
15
15
  }
16
16
  export interface IUserPreferences {
17
- currency?: string;
17
+ currency: string;
18
18
  }
19
19
  export interface IAccount {
20
20
  userId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odynn/awayz-core",
3
- "version": "0.9.30",
3
+ "version": "0.9.32",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"