@mx-cartographer/experiences 9.5.0 → 9.5.2
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.
- package/CHANGELOG.md +8 -1
- package/dist/accounts/components/AccountListItem.es.js +1 -1
- package/dist/accounts/components/AccountsList.es.js +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection.es.js +3 -3
- package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.es.js +3 -3
- package/dist/accounts/utils/AccountFields.es.js +11 -11
- package/dist/budgets/BubbleBudgetsMiniWidget.es.js +1 -1
- package/dist/budgets/components/Overview.es.js +1 -1
- package/dist/budgets/components/addbudget/UnbudgetedRow.es.js +4 -4
- package/dist/budgets/components/shared/BudgetDetailsTopSection.es.js +1 -1
- package/dist/cashflow/CashflowOnboarding.es.js +57 -55
- package/dist/cashflow/CashflowOnboarding.es.js.map +1 -1
- package/dist/cashflow/CashflowWidget.es.js +1 -1
- package/dist/cashflow/components/SummaryTab.es.js +1 -1
- package/dist/common/hooks/index.d.ts +1 -0
- package/dist/common/hooks/useRepeatingTransactionEligibility.d.ts +6 -0
- package/dist/common/hooks/useRepeatingTransactionEligibility.es.js +12 -0
- package/dist/common/hooks/useRepeatingTransactionEligibility.es.js.map +1 -0
- package/dist/common/index.es.js +114 -112
- package/dist/core/constants/repeatingTransactions.d.ts +5 -2
- package/dist/core/constants/repeatingTransactions.es.js +24 -9
- package/dist/core/constants/repeatingTransactions.es.js.map +1 -1
- package/dist/core/index.es.js +79 -79
- package/dist/core/stores/AccountStore.es.js +1 -1
- package/dist/core/stores/CashflowStore.es.js +1 -1
- package/dist/core/stores/CategoryStore.es.js +1 -1
- package/dist/core/stores/FinstrongStore.es.js +4 -4
- package/dist/core/stores/GoalStore.es.js +1 -1
- package/dist/core/stores/RecurringTransactionsStore.es.js +9 -9
- package/dist/core/stores/SettingsStore.es.js +7 -7
- package/dist/core/stores/TransactionStore.es.js +13 -13
- package/dist/core/utils/BudgetUtil.es.js +1 -1
- package/dist/core/utils/DateUtil.es.js +5 -5
- package/dist/core/utils/DebtUtils.es.js +6 -6
- package/dist/core/utils/RecurringTransactionsUtil.d.ts +13 -1
- package/dist/core/utils/RecurringTransactionsUtil.es.js +111 -106
- package/dist/core/utils/RecurringTransactionsUtil.es.js.map +1 -1
- package/dist/core/utils/TransactionUtils.es.js +6 -6
- package/dist/debts/DebtsWidget.es.js +1 -1
- package/dist/debts/components/DebtsChart.es.js +4 -4
- package/dist/debts/components/DebtsTable.es.js +6 -6
- package/dist/debts/components/actions/ExtraPaymentAction.es.js +4 -4
- package/dist/debts/components/actions/InterestRateAction.es.js +4 -4
- package/dist/debts/components/actions/MonthlyPaymentAction.es.js +4 -4
- package/dist/debts/components/actions/OriginalBalanceAction.es.js +4 -4
- package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js +1 -1
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent.es.js +4 -4
- package/dist/finstrong/components/ProfileDrawer.es.js +1 -1
- package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent.es.js +1 -1
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js +106 -104
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js.map +1 -1
- package/dist/finstrong/components/shared/Accounts.es.js +4 -4
- package/dist/finstrong/components/shared/Transactions.es.js +4 -4
- package/dist/goals/GoalsWidget.es.js +7 -7
- package/dist/goals/components/AccountSelectionDrawer.es.js +4 -4
- package/dist/goals/components/AddGoal.es.js +1 -1
- package/dist/goals/components/GoalDetailsDrawer.es.js +1 -1
- package/dist/goals/components/ManageGoals.es.js +1 -1
- package/dist/goals/components/actions/ChangeAccountAction.es.js +1 -1
- package/dist/goals/components/managegoals/OngoingListItem.es.js +4 -4
- package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation.es.js +1 -1
- package/dist/insights-v2/actionBlocks/TransactionHistoryBlock/TransactionHistoryBlock.es.js +4 -4
- package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js +1 -1
- package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.es.js +1 -1
- package/dist/investments/InvestmentsWidget.es.js +7 -7
- package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js +10 -10
- package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.es.js +4 -4
- package/dist/recurringtransactions/components/RecurringTransactionList.es.js +10 -10
- package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.es.js +4 -4
- package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js +6 -6
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js +45 -43
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageExpenses.es.js +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.es.js +6 -6
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.d.ts +7 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js +15 -16
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map +1 -1
- package/dist/settings/components/devices/DeviceList.es.js +1 -1
- package/dist/settings/components/devices/DeviceTable.es.js +1 -1
- package/dist/settings/components/notifications/AccountProfileListItem.es.js +5 -5
- package/dist/settings/components/notifications/NotificationSettings.es.js +1 -1
- package/dist/spending/components/SpendingDonut.es.js +1 -1
- package/dist/transactions/components/shared/TransactionDetails.es.js +8 -8
- package/dist/transactions/components/shared/TransactionList.es.js +4 -4
- package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js +6 -6
- package/dist/transactions/components/splitmanager/SplitManager.es.js +4 -4
- package/dist/transactions/utils/Transactions.es.js +1 -1
- package/dist/trends/components/CategoriesListItem.es.js +4 -4
- package/dist/trends/components/CategoryDetails.es.js +6 -6
- package/dist/trends/components/TrendsChart.es.js +1 -1
- package/package.json +2 -2
|
@@ -1,94 +1,95 @@
|
|
|
1
|
-
import { useAccountStore as
|
|
2
|
-
import Dt from "../../../common/components/drawer/Drawer.es.js";
|
|
1
|
+
import { useAccountStore as St, useFinstrongStore as Ct, useGlobalCopyStore as xt, useRecurringTransactionsStore as Tt, useTransactionStore as At, useUserStore as Dt } from "../../../common/context/hooks.es.js";
|
|
3
2
|
import { Frequency as It, RepeatingType as wt } from "../../../core/types/RepeatingTransaction.es.js";
|
|
4
3
|
import { getNextPaymentDate as Mt } from "../../../core/utils/RecurringTransactionsUtil.es.js";
|
|
5
|
-
import Ot from "../../../common/
|
|
6
|
-
import
|
|
7
|
-
import
|
|
4
|
+
import { useRepeatingTransactionEligibility as Ot } from "../../../common/hooks/useRepeatingTransactionEligibility.es.js";
|
|
5
|
+
import Bt from "../../../common/components/drawer/Drawer.es.js";
|
|
6
|
+
import Ft from "../../../common/components/ConnectDrawer.es.js";
|
|
7
|
+
import { incomeFilter as E, incomeFilterSearch as Pt } from "../../../transactions/utils/Filters.es.js";
|
|
8
|
+
import { SelectTransaction as Rt } from "../../../recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js";
|
|
8
9
|
import "../../constants/index.es.js";
|
|
9
|
-
import
|
|
10
|
+
import kt from "../../../accounts/components/AccountsListCompact.es.js";
|
|
10
11
|
import { OnboardingSteps as e } from "../../../core/types/Finstrong.es.js";
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
12
|
+
import vt from "./OnboardingAddMonthlyIncome.es.js";
|
|
13
|
+
import Et from "./OnboardingBirthday.es.js";
|
|
14
|
+
import Lt from "./OnboardingCreditScore.es.js";
|
|
15
|
+
import Ut from "./OnboardingStepsHeader.es.js";
|
|
15
16
|
import r from "react";
|
|
16
|
-
import { observer as
|
|
17
|
+
import { observer as Nt } from "mobx-react-lite";
|
|
17
18
|
import D from "@mui/material/Stack";
|
|
18
|
-
import { H2 as
|
|
19
|
-
import { endOfMonth as
|
|
20
|
-
import { startOfMonth as
|
|
21
|
-
import { startOfToday as
|
|
22
|
-
import
|
|
23
|
-
import { Add as
|
|
24
|
-
import { jsx as
|
|
25
|
-
import
|
|
26
|
-
import { subDays as
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
19
|
+
import { H2 as qt, P as Gt } from "@mxenabled/mxui";
|
|
20
|
+
import { endOfMonth as Ht } from "date-fns/endOfMonth";
|
|
21
|
+
import { startOfMonth as Wt } from "date-fns/startOfMonth";
|
|
22
|
+
import { startOfToday as L } from "date-fns/startOfToday";
|
|
23
|
+
import jt from "@mui/material/Button";
|
|
24
|
+
import { Add as $t } from "@mxenabled/mx-icons";
|
|
25
|
+
import { jsx as a, jsxs as g } from "react/jsx-runtime";
|
|
26
|
+
import zt from "@mui/material/Box";
|
|
27
|
+
import { subDays as Jt } from "date-fns/subDays";
|
|
28
|
+
import { formatISO as Kt } from "date-fns/formatISO";
|
|
29
|
+
import { fromUnixTime as Qt } from "date-fns/fromUnixTime";
|
|
29
30
|
var U = {
|
|
30
31
|
step: e.ConnectAccounts,
|
|
31
32
|
type: "main"
|
|
32
|
-
},
|
|
33
|
-
const { visibleAccounts: b } =
|
|
33
|
+
}, Vt = ({ isOpen: N, onClose: q }) => {
|
|
34
|
+
const { visibleAccounts: b } = St(), { calculateHealthScore: G } = Ct(), { finstrong: n } = xt(), { addRepeatingTransaction: H, setDateRange: W } = Tt(), { filter: j, setFilter: I, transactions: S } = At(), { user: i, userProfile: $, updateUser: w, updateUserProfile: z } = Dt(), J = Ot(), [l, K] = r.useState(i.credit_score || 0), [c, d] = r.useState(U), [C, Q] = r.useState(1), [x, V] = r.useState(It.EveryMonth), [y, M] = r.useState([]), [T, O] = r.useState(!1), [X, B] = r.useState(!1), [f, Y] = r.useState(i.birthday), [A, Z] = r.useState(15), [s, F] = r.useState("");
|
|
34
35
|
r.useEffect(() => {
|
|
35
36
|
W({
|
|
36
|
-
start:
|
|
37
|
-
end:
|
|
37
|
+
start: Wt(L()),
|
|
38
|
+
end: Ht(L())
|
|
38
39
|
});
|
|
39
40
|
}, []), r.useEffect(() => {
|
|
40
41
|
I({
|
|
41
42
|
accounts: b.map((t) => t.guid),
|
|
42
43
|
dateRange: {
|
|
43
|
-
start:
|
|
44
|
+
start: Jt(/* @__PURE__ */ new Date(), 90),
|
|
44
45
|
end: /* @__PURE__ */ new Date()
|
|
45
46
|
},
|
|
46
|
-
custom:
|
|
47
|
+
custom: E
|
|
47
48
|
});
|
|
48
49
|
}, [b]);
|
|
49
|
-
const
|
|
50
|
+
const P = r.useMemo(() => S.find((t) => t.guid === s), [s, S]), tt = r.useMemo(() => ({
|
|
50
51
|
[e.ConnectAccounts]: !0,
|
|
51
52
|
[e.MonthlyIncome]: !!s,
|
|
52
|
-
[e.Birthday]: !!
|
|
53
|
-
[e.CreditScore]: !!
|
|
53
|
+
[e.Birthday]: !!i.birthday || !!f,
|
|
54
|
+
[e.CreditScore]: !!i.credit_score || !!l
|
|
54
55
|
})[c.step], [
|
|
55
56
|
l,
|
|
56
57
|
c,
|
|
57
58
|
f,
|
|
58
59
|
s,
|
|
59
|
-
|
|
60
|
-
]),
|
|
60
|
+
i
|
|
61
|
+
]), p = b.length > 0, et = r.useMemo(() => {
|
|
61
62
|
const { step: t } = c;
|
|
62
63
|
let o = 0;
|
|
63
|
-
return t >= e.MonthlyIncome &&
|
|
64
|
+
return t >= e.MonthlyIncome && p && o++, t >= e.Birthday && y.length && o++, t >= e.CreditScore && (i.birthday || i.credit_score) && o++, o;
|
|
64
65
|
}, [
|
|
65
66
|
c.step,
|
|
66
|
-
|
|
67
|
+
p,
|
|
67
68
|
y.length,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
]),
|
|
69
|
+
i.birthday,
|
|
70
|
+
i.credit_score
|
|
71
|
+
]), nt = (t) => {
|
|
71
72
|
I({
|
|
72
73
|
...j,
|
|
73
|
-
custom: (o) => t ?
|
|
74
|
+
custom: (o) => t ? Pt(o, t) : E(o)
|
|
74
75
|
});
|
|
75
|
-
},
|
|
76
|
+
}, ot = {
|
|
76
77
|
[e.ConnectAccounts]: {
|
|
77
|
-
main:
|
|
78
|
-
mainActionContent:
|
|
78
|
+
main: p ? /* @__PURE__ */ a(kt, { shouldShowBalance: !1 }) : null,
|
|
79
|
+
mainActionContent: p ? n.onboarding_next : n.onboarding_add_accounts,
|
|
79
80
|
primaryText: n.connect_your_accounts,
|
|
80
81
|
secondaryText: n.onboarding_connect_your_accounts_secondary
|
|
81
82
|
},
|
|
82
83
|
[e.MonthlyIncome]: {
|
|
83
|
-
detail: /* @__PURE__ */
|
|
84
|
+
detail: /* @__PURE__ */ a(vt, {
|
|
84
85
|
firstDay: C,
|
|
85
86
|
frequency: x,
|
|
86
87
|
incomeTransactions: y,
|
|
87
88
|
secondDay: A,
|
|
88
89
|
setCurrentStep: (t) => {
|
|
89
90
|
d(t), M((o) => {
|
|
90
|
-
if (o.some((
|
|
91
|
-
const m = S.find((
|
|
91
|
+
if (o.some((u) => u.guid === s)) return o.filter((u) => u.guid !== s);
|
|
92
|
+
const m = S.find((u) => u.guid === s);
|
|
92
93
|
return m ? [...o, {
|
|
93
94
|
...m,
|
|
94
95
|
firstDay: C,
|
|
@@ -97,19 +98,20 @@ var U = {
|
|
|
97
98
|
}] : o;
|
|
98
99
|
});
|
|
99
100
|
},
|
|
100
|
-
setFirstDay:
|
|
101
|
-
setFrequency:
|
|
102
|
-
setSecondDay:
|
|
103
|
-
transaction:
|
|
101
|
+
setFirstDay: Q,
|
|
102
|
+
setFrequency: V,
|
|
103
|
+
setSecondDay: Z,
|
|
104
|
+
transaction: P
|
|
104
105
|
}),
|
|
105
106
|
detailActionContent: n.onboarding_confirm_income,
|
|
106
|
-
main: /* @__PURE__ */
|
|
107
|
-
|
|
107
|
+
main: /* @__PURE__ */ a(Rt, {
|
|
108
|
+
eligibilityFilter: J,
|
|
109
|
+
onSearch: nt,
|
|
108
110
|
onSelected: (t) => {
|
|
109
111
|
d({
|
|
110
112
|
step: e.MonthlyIncome,
|
|
111
113
|
type: "detail"
|
|
112
|
-
}),
|
|
114
|
+
}), F(t);
|
|
113
115
|
}
|
|
114
116
|
}),
|
|
115
117
|
mainActionContent: n.onboarding_confirm_income,
|
|
@@ -117,64 +119,64 @@ var U = {
|
|
|
117
119
|
secondaryText: n.onboarding_add_income_secondary
|
|
118
120
|
},
|
|
119
121
|
[e.Birthday]: {
|
|
120
|
-
main: /* @__PURE__ */
|
|
122
|
+
main: /* @__PURE__ */ a(Et, {
|
|
121
123
|
selectedDate: f,
|
|
122
|
-
setSelectedDate:
|
|
124
|
+
setSelectedDate: Y
|
|
123
125
|
}),
|
|
124
126
|
mainActionContent: n.onboarding_next,
|
|
125
127
|
primaryText: n.onboarding_birthday_primary,
|
|
126
128
|
secondaryText: n.onboarding_birthday_secondary
|
|
127
129
|
},
|
|
128
130
|
[e.CreditScore]: {
|
|
129
|
-
main: /* @__PURE__ */
|
|
131
|
+
main: /* @__PURE__ */ a(Lt, {
|
|
130
132
|
creditScore: l,
|
|
131
|
-
setCreditScore:
|
|
133
|
+
setCreditScore: K
|
|
132
134
|
}),
|
|
133
135
|
mainActionContent: n.onboarding_next,
|
|
134
136
|
primaryText: n.onboarding_credit_score_primary,
|
|
135
137
|
secondaryText: n.onboarding_credit_score_secondary
|
|
136
138
|
}
|
|
137
|
-
},
|
|
138
|
-
d(U), O(!1),
|
|
139
|
-
},
|
|
140
|
-
O(!0), await
|
|
139
|
+
}, R = () => {
|
|
140
|
+
d(U), O(!1), F(""), q();
|
|
141
|
+
}, k = async () => {
|
|
142
|
+
O(!0), await ct(y), await G(), await z({
|
|
141
143
|
...$,
|
|
142
144
|
has_completed_finstrong_onboarding: !0
|
|
143
|
-
}),
|
|
144
|
-
},
|
|
145
|
+
}), R();
|
|
146
|
+
}, rt = () => {
|
|
145
147
|
if (c.step === e.CreditScore) {
|
|
146
|
-
|
|
148
|
+
k();
|
|
147
149
|
return;
|
|
148
150
|
}
|
|
149
151
|
d({
|
|
150
152
|
step: c.step + 1,
|
|
151
153
|
type: "main"
|
|
152
154
|
});
|
|
153
|
-
},
|
|
155
|
+
}, it = () => {
|
|
154
156
|
const { step: t } = c, o = t + 1;
|
|
155
157
|
switch (t) {
|
|
156
158
|
case e.Birthday:
|
|
157
|
-
f && f !==
|
|
158
|
-
...
|
|
159
|
+
f && f !== i.birthday && w({
|
|
160
|
+
...i,
|
|
159
161
|
birthday: f
|
|
160
162
|
});
|
|
161
163
|
break;
|
|
162
164
|
case e.CreditScore:
|
|
163
|
-
l && l !==
|
|
164
|
-
...
|
|
165
|
+
l && l !== i.credit_score && w({
|
|
166
|
+
...i,
|
|
165
167
|
credit_score: l
|
|
166
|
-
}),
|
|
168
|
+
}), k();
|
|
167
169
|
return;
|
|
168
170
|
case e.MonthlyIncome:
|
|
169
171
|
s && y.findIndex(({ guid: m }) => m === s) === -1 && M((m) => [...m, {
|
|
170
|
-
...
|
|
172
|
+
...P,
|
|
171
173
|
firstDay: C,
|
|
172
174
|
frequency: x,
|
|
173
175
|
secondDay: A
|
|
174
176
|
}]);
|
|
175
177
|
break;
|
|
176
178
|
case e.ConnectAccounts:
|
|
177
|
-
if (!
|
|
179
|
+
if (!p) {
|
|
178
180
|
B(!0);
|
|
179
181
|
return;
|
|
180
182
|
}
|
|
@@ -203,29 +205,29 @@ var U = {
|
|
|
203
205
|
step: t - 1,
|
|
204
206
|
type: "main"
|
|
205
207
|
});
|
|
206
|
-
},
|
|
208
|
+
}, ct = async (t) => {
|
|
207
209
|
for (const o of t) {
|
|
208
|
-
const { account_guid: m, amount:
|
|
210
|
+
const { account_guid: m, amount: u, date: mt, description: pt, feed_description: ut, firstDay: lt, frequency: v, secondDay: yt, merchant_guid: ft, payee: _t, transaction_type: gt } = o, ht = Mt(v, Qt(mt)), bt = {
|
|
209
211
|
account_guid: m,
|
|
210
|
-
amount:
|
|
212
|
+
amount: u,
|
|
211
213
|
created_by: 0,
|
|
212
|
-
description:
|
|
213
|
-
merchant_guid:
|
|
214
|
-
predicted_occurs_on:
|
|
215
|
-
recurrence_day:
|
|
216
|
-
recurrence_type:
|
|
214
|
+
description: _t || pt || ut,
|
|
215
|
+
merchant_guid: ft,
|
|
216
|
+
predicted_occurs_on: Kt(ht, { representation: "date" }),
|
|
217
|
+
recurrence_day: lt,
|
|
218
|
+
recurrence_type: v,
|
|
217
219
|
repeating_transaction_type: wt.Income,
|
|
218
|
-
second_recurrence_day:
|
|
219
|
-
transaction_type:
|
|
220
|
-
user_guid:
|
|
220
|
+
second_recurrence_day: yt,
|
|
221
|
+
transaction_type: gt,
|
|
222
|
+
user_guid: i.guid
|
|
221
223
|
};
|
|
222
|
-
await H(
|
|
224
|
+
await H(bt, o);
|
|
223
225
|
}
|
|
224
|
-
}, _ =
|
|
226
|
+
}, _ = ot[c.step], h = c.step === e.ConnectAccounts, st = {
|
|
225
227
|
fullWidth: !0,
|
|
226
|
-
...h && !
|
|
227
|
-
},
|
|
228
|
-
return /* @__PURE__ */ g(r.Fragment, { children: [/* @__PURE__ */
|
|
228
|
+
...h && !p && { startIcon: /* @__PURE__ */ a($t, {}) }
|
|
229
|
+
}, dt = !h || h && !p;
|
|
230
|
+
return /* @__PURE__ */ g(r.Fragment, { children: [/* @__PURE__ */ a(Bt, {
|
|
229
231
|
footerStyles: {
|
|
230
232
|
borderTop: 1,
|
|
231
233
|
borderColor: "divider",
|
|
@@ -234,15 +236,15 @@ var U = {
|
|
|
234
236
|
},
|
|
235
237
|
hasSecondaryAction: !h,
|
|
236
238
|
isOpen: N,
|
|
237
|
-
isPrimaryDisabled: !
|
|
238
|
-
onClose:
|
|
239
|
+
isPrimaryDisabled: !tt,
|
|
240
|
+
onClose: R,
|
|
239
241
|
onSecondaryAction: at,
|
|
240
|
-
primaryButtonProps:
|
|
242
|
+
primaryButtonProps: st,
|
|
241
243
|
primaryText: _?.mainActionContent,
|
|
242
244
|
secondaryColor: "primary",
|
|
243
245
|
secondaryText: n.onboarding_back,
|
|
244
246
|
title: n.title,
|
|
245
|
-
...!T && { onPrimaryAction:
|
|
247
|
+
...!T && { onPrimaryAction: it },
|
|
246
248
|
children: /* @__PURE__ */ g(D, {
|
|
247
249
|
sx: {
|
|
248
250
|
bgcolor: "background.default",
|
|
@@ -257,7 +259,7 @@ var U = {
|
|
|
257
259
|
top: 126
|
|
258
260
|
},
|
|
259
261
|
children: [
|
|
260
|
-
/* @__PURE__ */
|
|
262
|
+
/* @__PURE__ */ a("img", {
|
|
261
263
|
alt: "",
|
|
262
264
|
src: "https://content.moneydesktop.com/storage/MD_Assets/serenity/loading_animation_final.gif",
|
|
263
265
|
style: {
|
|
@@ -265,31 +267,31 @@ var U = {
|
|
|
265
267
|
width: 211
|
|
266
268
|
}
|
|
267
269
|
}),
|
|
268
|
-
/* @__PURE__ */
|
|
269
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ a(qt, { children: n.onboarding_calculate_primary }),
|
|
271
|
+
/* @__PURE__ */ a(Gt, {
|
|
270
272
|
sx: { textAlign: "center" },
|
|
271
273
|
variant: "subtitle1",
|
|
272
274
|
children: n.onboarding_calculate_secondary
|
|
273
275
|
})
|
|
274
276
|
]
|
|
275
277
|
}), _ && !T && /* @__PURE__ */ g(r.Fragment, { children: [
|
|
276
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ a(Ut, {
|
|
277
279
|
completeCopy: n.complete,
|
|
278
280
|
primaryText: _.primaryText,
|
|
279
281
|
secondaryText: _.secondaryText,
|
|
280
|
-
value:
|
|
282
|
+
value: et
|
|
281
283
|
}),
|
|
282
|
-
c.type === "main" && /* @__PURE__ */ g(
|
|
284
|
+
c.type === "main" && /* @__PURE__ */ g(zt, {
|
|
283
285
|
sx: { bgcolor: "background.default" },
|
|
284
|
-
children: [_.main,
|
|
286
|
+
children: [_.main, dt && /* @__PURE__ */ a(D, {
|
|
285
287
|
sx: {
|
|
286
288
|
alignItems: "center",
|
|
287
289
|
px: 24,
|
|
288
290
|
py: 12
|
|
289
291
|
},
|
|
290
|
-
children: /* @__PURE__ */
|
|
292
|
+
children: /* @__PURE__ */ a(jt, {
|
|
291
293
|
fullWidth: !0,
|
|
292
|
-
onClick:
|
|
294
|
+
onClick: rt,
|
|
293
295
|
children: n.onboarding_do_it_later
|
|
294
296
|
})
|
|
295
297
|
})]
|
|
@@ -297,14 +299,14 @@ var U = {
|
|
|
297
299
|
c.type === "detail" && _.detail
|
|
298
300
|
] })]
|
|
299
301
|
})
|
|
300
|
-
}), /* @__PURE__ */
|
|
302
|
+
}), /* @__PURE__ */ a(Ft, {
|
|
301
303
|
onClose: () => B(!1),
|
|
302
|
-
showConnectWidget:
|
|
304
|
+
showConnectWidget: X,
|
|
303
305
|
title: n.connect_more_accounts_button
|
|
304
306
|
})] });
|
|
305
|
-
},
|
|
307
|
+
}, we = Nt(Vt);
|
|
306
308
|
export {
|
|
307
|
-
|
|
309
|
+
we as default
|
|
308
310
|
};
|
|
309
311
|
|
|
310
312
|
//# sourceMappingURL=OnboardingStepsDrawer.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingStepsDrawer.es.js","names":[],"sources":["../../../../src/finstrong/components/onboarding/OnboardingStepsDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { formatISO } from 'date-fns/formatISO'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\n\nimport { H2, P } from '@mxenabled/mxui'\nimport { Add } from '@mxenabled/mx-icons'\n\nimport AccountsListCompact from '../../../accounts/components/AccountsListCompact'\nimport {\n ConnectDrawer,\n Drawer,\n useAccountStore,\n useFinstrongStore,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n useUserStore,\n} from '../../../common'\nimport {\n Frequency,\n type RepeatingTransaction,\n RepeatingType,\n type Transaction,\n} from '../../../core'\nimport { OnboardingSteps } from '../../../core/types/Finstrong'\nimport { SelectTransaction } from '../../../recurringtransactions'\nimport { getNextPaymentDate } from '../../../core/utils/RecurringTransactionsUtil'\nimport { incomeFilter, incomeFilterSearch } from '../../../transactions/utils/Filters'\n\nimport { CALCULATING_ANIMATION_URL } from '../../constants'\n\nimport OnboardingAddMonthlyIncome from './OnboardingAddMonthlyIncome'\nimport OnboardingBirthday from './OnboardingBirthday'\nimport OnboardingCreditScore from './OnboardingCreditScore'\nimport OnboardingStepsHeader from './OnboardingStepsHeader'\n\ninterface IncomeTransaction extends Transaction {\n firstDay: number\n frequency: Frequency\n secondDay: number\n}\n\ninterface OnboardingStepsDrawerProps {\n isOpen: boolean\n onClose: () => void\n}\n\ninterface Steps {\n detail?: React.ReactNode\n detailActionContent?: string\n main: React.ReactNode\n mainActionContent: string\n primaryText: string\n secondaryText: string\n}\n\ntype StepType = 'main' | 'detail'\nexport interface StepState {\n step: OnboardingSteps\n type: StepType\n}\n\nconst INITIAL_STEP_STATE: StepState = {\n step: OnboardingSteps.ConnectAccounts,\n type: 'main',\n}\n\nconst OnboardingStepsDrawer = ({ isOpen, onClose }: OnboardingStepsDrawerProps) => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { calculateHealthScore } = useFinstrongStore()\n const { finstrong: copy } = useGlobalCopyStore()\n const { addRepeatingTransaction, setDateRange } = useRecurringTransactionsStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n const { user, userProfile, updateUser, updateUserProfile } = useUserStore()\n\n const [creditScore, setCreditScore] = React.useState<number>(user.credit_score || 0)\n const [currentStep, setCurrentStep] = React.useState<{ step: OnboardingSteps; type: StepType }>(\n INITIAL_STEP_STATE,\n )\n const [firstDay, setFirstDay] = React.useState(1)\n const [frequency, setFrequency] = React.useState(Frequency.EveryMonth)\n const [incomeTransactions, setIncomeTransactions] = React.useState<IncomeTransaction[]>([])\n const [isComplete, setIsComplete] = React.useState(false)\n const [isConnectDrawerOpen, setIsConnectDrawerOpen] = React.useState(false)\n const [selectedDate, setSelectedDate] = React.useState<number | null | undefined>(user.birthday)\n const [secondDay, setSecondDay] = React.useState(15)\n const [transactionGuid, setTransactionGuid] = React.useState('')\n\n React.useEffect(() => {\n setDateRange({ start: startOfMonth(startOfToday()), end: endOfMonth(startOfToday()) })\n }, [])\n\n React.useEffect(() => {\n setFilter({\n accounts: accounts.map((account) => account.guid),\n dateRange: {\n start: subDays(new Date(), 90),\n end: new Date(),\n },\n custom: incomeFilter,\n })\n }, [accounts])\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const isPrimaryActionEnabled = React.useMemo(() => {\n const isValid: Partial<Record<OnboardingSteps, boolean>> = {\n [OnboardingSteps.ConnectAccounts]: true,\n [OnboardingSteps.MonthlyIncome]: !!transactionGuid,\n [OnboardingSteps.Birthday]: !!user.birthday || !!selectedDate,\n [OnboardingSteps.CreditScore]: !!user.credit_score || !!creditScore,\n }\n\n return isValid[currentStep.step]\n }, [creditScore, currentStep, selectedDate, transactionGuid, user])\n\n const hasAccounts = accounts.length > 0\n const progressValue = React.useMemo(() => {\n const { step } = currentStep\n\n let value = 0\n\n if (step >= OnboardingSteps.MonthlyIncome && hasAccounts) value++\n if (step >= OnboardingSteps.Birthday && !!incomeTransactions.length) value++\n if (step >= OnboardingSteps.CreditScore && (user.birthday || user.credit_score)) value++\n\n return value\n }, [currentStep.step, hasAccounts, incomeTransactions.length, user.birthday, user.credit_score])\n\n const handleSelectTransaction = (searchValue: string) => {\n setFilter({\n ...filter,\n custom: (transaction: Transaction) => {\n if (searchValue) return incomeFilterSearch(transaction, searchValue)\n\n return incomeFilter(transaction)\n },\n })\n }\n\n const steps: Partial<Record<OnboardingSteps, Steps>> = {\n [OnboardingSteps.ConnectAccounts]: {\n main: hasAccounts ? <AccountsListCompact shouldShowBalance={false} /> : null,\n mainActionContent: hasAccounts ? copy.onboarding_next : copy.onboarding_add_accounts,\n primaryText: copy.connect_your_accounts,\n secondaryText: copy.onboarding_connect_your_accounts_secondary,\n },\n [OnboardingSteps.MonthlyIncome]: {\n detail: (\n <OnboardingAddMonthlyIncome\n firstDay={firstDay}\n frequency={frequency}\n incomeTransactions={incomeTransactions}\n secondDay={secondDay}\n setCurrentStep={(step) => {\n setCurrentStep(step)\n setIncomeTransactions((prev) => {\n const exists = prev.some((t) => t.guid === transactionGuid)\n if (exists) return prev.filter((t) => t.guid !== transactionGuid)\n\n const newTransaction = transactions.find((t) => t.guid === transactionGuid)\n return newTransaction\n ? [...prev, { ...newTransaction, firstDay, frequency, secondDay }]\n : prev\n })\n }}\n setFirstDay={setFirstDay}\n setFrequency={setFrequency}\n setSecondDay={setSecondDay}\n transaction={transaction!}\n />\n ),\n detailActionContent: copy.onboarding_confirm_income,\n main: (\n <SelectTransaction\n onSearch={handleSelectTransaction}\n onSelected={(guid) => {\n setCurrentStep({ step: OnboardingSteps.MonthlyIncome, type: 'detail' })\n setTransactionGuid(guid)\n }}\n />\n ),\n mainActionContent: copy.onboarding_confirm_income,\n primaryText: copy.onboarding_add_income_primary,\n secondaryText: copy.onboarding_add_income_secondary,\n },\n [OnboardingSteps.Birthday]: {\n main: <OnboardingBirthday selectedDate={selectedDate} setSelectedDate={setSelectedDate} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_birthday_primary,\n secondaryText: copy.onboarding_birthday_secondary,\n },\n [OnboardingSteps.CreditScore]: {\n main: <OnboardingCreditScore creditScore={creditScore} setCreditScore={setCreditScore} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_credit_score_primary,\n secondaryText: copy.onboarding_credit_score_secondary,\n },\n }\n\n const handleClose = () => {\n setCurrentStep(INITIAL_STEP_STATE)\n setIsComplete(false)\n setTransactionGuid('')\n\n onClose()\n }\n\n const handleComplete = async () => {\n setIsComplete(true)\n\n await addRecurringIncome(incomeTransactions)\n await calculateHealthScore()\n await updateUserProfile({ ...userProfile, has_completed_finstrong_onboarding: true })\n\n handleClose()\n }\n\n const handleDoItLater = () => {\n if (currentStep.step === OnboardingSteps.CreditScore) {\n handleComplete()\n return\n }\n\n setCurrentStep({ step: currentStep.step + 1, type: 'main' })\n }\n\n const handlePrimaryAction = () => {\n const { step } = currentStep\n const nextStep = step + 1\n\n switch (step) {\n case OnboardingSteps.Birthday:\n if (selectedDate && selectedDate !== user.birthday) {\n updateUser({ ...user, birthday: selectedDate })\n }\n break\n\n case OnboardingSteps.CreditScore:\n if (creditScore && creditScore !== user.credit_score) {\n updateUser({ ...user, credit_score: creditScore })\n }\n handleComplete()\n return\n\n case OnboardingSteps.MonthlyIncome:\n if (\n transactionGuid &&\n incomeTransactions.findIndex(({ guid }) => guid === transactionGuid) === -1\n ) {\n setIncomeTransactions((prev) => [\n ...prev,\n { ...transaction!, firstDay, frequency, secondDay },\n ])\n }\n break\n\n case OnboardingSteps.ConnectAccounts:\n if (!hasAccounts) {\n setIsConnectDrawerOpen(true)\n return\n }\n break\n\n default:\n break\n }\n\n if (nextStep in OnboardingSteps) setCurrentStep({ step: nextStep, type: 'main' })\n }\n\n const handleSecondaryAction = () => {\n const { step, type } = currentStep\n\n if (type === 'detail') {\n setCurrentStep({ step, type: 'main' })\n return\n }\n\n if (step === OnboardingSteps.Birthday && incomeTransactions.length) {\n setCurrentStep({ step: step - 1, type: 'detail' })\n return\n }\n\n if (step > OnboardingSteps.ConnectAccounts) setCurrentStep({ step: step - 1, type: 'main' })\n }\n\n const addRecurringIncome = async (transactions: IncomeTransaction[]) => {\n for (const t of transactions) {\n const {\n account_guid,\n amount,\n date,\n description,\n feed_description,\n firstDay,\n frequency,\n secondDay,\n merchant_guid,\n payee,\n transaction_type,\n } = t\n\n const nextDate = getNextPaymentDate(frequency, fromUnixTime(date))\n\n const repeatingTransaction = {\n account_guid,\n amount,\n created_by: 0,\n description: payee || description || feed_description,\n merchant_guid,\n predicted_occurs_on: formatISO(nextDate, { representation: 'date' }),\n recurrence_day: firstDay,\n recurrence_type: frequency,\n repeating_transaction_type: RepeatingType.Income,\n second_recurrence_day: secondDay,\n transaction_type,\n user_guid: user.guid,\n } as RepeatingTransaction\n\n await addRepeatingTransaction(repeatingTransaction, t)\n }\n }\n\n const currentStepData = steps[currentStep.step]\n const isConnectAccountsStep = currentStep.step === OnboardingSteps.ConnectAccounts\n const primaryButtonProps = {\n fullWidth: true,\n ...(isConnectAccountsStep && !hasAccounts && { startIcon: <Add /> }),\n }\n const showDoItLaterButton = !isConnectAccountsStep || (isConnectAccountsStep && !hasAccounts)\n\n return (\n <React.Fragment>\n <Drawer\n footerStyles={{ borderTop: 1, borderColor: 'divider', px: 24, py: 16 }}\n hasSecondaryAction={!isConnectAccountsStep}\n isOpen={isOpen}\n isPrimaryDisabled={!isPrimaryActionEnabled}\n onClose={handleClose}\n onSecondaryAction={handleSecondaryAction}\n primaryButtonProps={primaryButtonProps}\n primaryText={currentStepData?.mainActionContent}\n secondaryColor=\"primary\"\n secondaryText={copy.onboarding_back}\n title={copy.title}\n {...(!isComplete && { onPrimaryAction: handlePrimaryAction })}\n >\n <Stack sx={{ bgcolor: 'background.default', height: '100%' }}>\n {isComplete && (\n <Stack sx={{ alignItems: 'center', gap: 24, position: 'relative', px: 16, top: 126 }}>\n <img alt=\"\" src={CALCULATING_ANIMATION_URL} style={{ minHeight: 100, width: 211 }} />\n <H2>{copy.onboarding_calculate_primary}</H2>\n <P sx={{ textAlign: 'center' }} variant=\"subtitle1\">\n {copy.onboarding_calculate_secondary}\n </P>\n </Stack>\n )}\n {currentStepData && !isComplete && (\n <React.Fragment>\n <OnboardingStepsHeader\n completeCopy={copy.complete}\n primaryText={currentStepData.primaryText}\n secondaryText={currentStepData.secondaryText}\n value={progressValue}\n />\n {currentStep.type === 'main' && (\n <Box sx={{ bgcolor: 'background.default' }}>\n {currentStepData.main}\n {showDoItLaterButton && (\n <Stack sx={{ alignItems: 'center', px: 24, py: 12 }}>\n <Button fullWidth={true} onClick={handleDoItLater}>\n {copy.onboarding_do_it_later}\n </Button>\n </Stack>\n )}\n </Box>\n )}\n {currentStep.type === 'detail' && currentStepData.detail}\n </React.Fragment>\n )}\n </Stack>\n </Drawer>\n\n <ConnectDrawer\n onClose={() => setIsConnectDrawerOpen(false)}\n showConnectWidget={isConnectDrawerOpen}\n title={copy.connect_more_accounts_button}\n />\n </React.Fragment>\n )\n}\n\nexport default observer(OnboardingStepsDrawer)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OnboardingStepsDrawer.es.js","names":[],"sources":["../../../../src/finstrong/components/onboarding/OnboardingStepsDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { formatISO } from 'date-fns/formatISO'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\n\nimport { H2, P } from '@mxenabled/mxui'\nimport { Add } from '@mxenabled/mx-icons'\n\nimport AccountsListCompact from '../../../accounts/components/AccountsListCompact'\nimport {\n ConnectDrawer,\n Drawer,\n useAccountStore,\n useFinstrongStore,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useRepeatingTransactionEligibility,\n useTransactionStore,\n useUserStore,\n} from '../../../common'\nimport {\n Frequency,\n type RepeatingTransaction,\n RepeatingType,\n type Transaction,\n} from '../../../core'\nimport { OnboardingSteps } from '../../../core/types/Finstrong'\nimport { SelectTransaction } from '../../../recurringtransactions'\nimport { getNextPaymentDate } from '../../../core/utils/RecurringTransactionsUtil'\nimport { incomeFilter, incomeFilterSearch } from '../../../transactions/utils/Filters'\n\nimport { CALCULATING_ANIMATION_URL } from '../../constants'\n\nimport OnboardingAddMonthlyIncome from './OnboardingAddMonthlyIncome'\nimport OnboardingBirthday from './OnboardingBirthday'\nimport OnboardingCreditScore from './OnboardingCreditScore'\nimport OnboardingStepsHeader from './OnboardingStepsHeader'\n\ninterface IncomeTransaction extends Transaction {\n firstDay: number\n frequency: Frequency\n secondDay: number\n}\n\ninterface OnboardingStepsDrawerProps {\n isOpen: boolean\n onClose: () => void\n}\n\ninterface Steps {\n detail?: React.ReactNode\n detailActionContent?: string\n main: React.ReactNode\n mainActionContent: string\n primaryText: string\n secondaryText: string\n}\n\ntype StepType = 'main' | 'detail'\nexport interface StepState {\n step: OnboardingSteps\n type: StepType\n}\n\nconst INITIAL_STEP_STATE: StepState = {\n step: OnboardingSteps.ConnectAccounts,\n type: 'main',\n}\n\nconst OnboardingStepsDrawer = ({ isOpen, onClose }: OnboardingStepsDrawerProps) => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { calculateHealthScore } = useFinstrongStore()\n const { finstrong: copy } = useGlobalCopyStore()\n const { addRepeatingTransaction, setDateRange } = useRecurringTransactionsStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n const { user, userProfile, updateUser, updateUserProfile } = useUserStore()\n const eligibilityFilter = useRepeatingTransactionEligibility()\n\n const [creditScore, setCreditScore] = React.useState<number>(user.credit_score || 0)\n const [currentStep, setCurrentStep] = React.useState<{ step: OnboardingSteps; type: StepType }>(\n INITIAL_STEP_STATE,\n )\n const [firstDay, setFirstDay] = React.useState(1)\n const [frequency, setFrequency] = React.useState(Frequency.EveryMonth)\n const [incomeTransactions, setIncomeTransactions] = React.useState<IncomeTransaction[]>([])\n const [isComplete, setIsComplete] = React.useState(false)\n const [isConnectDrawerOpen, setIsConnectDrawerOpen] = React.useState(false)\n const [selectedDate, setSelectedDate] = React.useState<number | null | undefined>(user.birthday)\n const [secondDay, setSecondDay] = React.useState(15)\n const [transactionGuid, setTransactionGuid] = React.useState('')\n\n React.useEffect(() => {\n setDateRange({ start: startOfMonth(startOfToday()), end: endOfMonth(startOfToday()) })\n }, [])\n\n React.useEffect(() => {\n setFilter({\n accounts: accounts.map((account) => account.guid),\n dateRange: {\n start: subDays(new Date(), 90),\n end: new Date(),\n },\n custom: incomeFilter,\n })\n }, [accounts])\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const isPrimaryActionEnabled = React.useMemo(() => {\n const isValid: Partial<Record<OnboardingSteps, boolean>> = {\n [OnboardingSteps.ConnectAccounts]: true,\n [OnboardingSteps.MonthlyIncome]: !!transactionGuid,\n [OnboardingSteps.Birthday]: !!user.birthday || !!selectedDate,\n [OnboardingSteps.CreditScore]: !!user.credit_score || !!creditScore,\n }\n\n return isValid[currentStep.step]\n }, [creditScore, currentStep, selectedDate, transactionGuid, user])\n\n const hasAccounts = accounts.length > 0\n const progressValue = React.useMemo(() => {\n const { step } = currentStep\n\n let value = 0\n\n if (step >= OnboardingSteps.MonthlyIncome && hasAccounts) value++\n if (step >= OnboardingSteps.Birthday && !!incomeTransactions.length) value++\n if (step >= OnboardingSteps.CreditScore && (user.birthday || user.credit_score)) value++\n\n return value\n }, [currentStep.step, hasAccounts, incomeTransactions.length, user.birthday, user.credit_score])\n\n const handleSelectTransaction = (searchValue: string) => {\n setFilter({\n ...filter,\n custom: (transaction: Transaction) => {\n if (searchValue) return incomeFilterSearch(transaction, searchValue)\n\n return incomeFilter(transaction)\n },\n })\n }\n\n const steps: Partial<Record<OnboardingSteps, Steps>> = {\n [OnboardingSteps.ConnectAccounts]: {\n main: hasAccounts ? <AccountsListCompact shouldShowBalance={false} /> : null,\n mainActionContent: hasAccounts ? copy.onboarding_next : copy.onboarding_add_accounts,\n primaryText: copy.connect_your_accounts,\n secondaryText: copy.onboarding_connect_your_accounts_secondary,\n },\n [OnboardingSteps.MonthlyIncome]: {\n detail: (\n <OnboardingAddMonthlyIncome\n firstDay={firstDay}\n frequency={frequency}\n incomeTransactions={incomeTransactions}\n secondDay={secondDay}\n setCurrentStep={(step) => {\n setCurrentStep(step)\n setIncomeTransactions((prev) => {\n const exists = prev.some((t) => t.guid === transactionGuid)\n if (exists) return prev.filter((t) => t.guid !== transactionGuid)\n\n const newTransaction = transactions.find((t) => t.guid === transactionGuid)\n return newTransaction\n ? [...prev, { ...newTransaction, firstDay, frequency, secondDay }]\n : prev\n })\n }}\n setFirstDay={setFirstDay}\n setFrequency={setFrequency}\n setSecondDay={setSecondDay}\n transaction={transaction!}\n />\n ),\n detailActionContent: copy.onboarding_confirm_income,\n main: (\n <SelectTransaction\n eligibilityFilter={eligibilityFilter}\n onSearch={handleSelectTransaction}\n onSelected={(guid) => {\n setCurrentStep({ step: OnboardingSteps.MonthlyIncome, type: 'detail' })\n setTransactionGuid(guid)\n }}\n />\n ),\n mainActionContent: copy.onboarding_confirm_income,\n primaryText: copy.onboarding_add_income_primary,\n secondaryText: copy.onboarding_add_income_secondary,\n },\n [OnboardingSteps.Birthday]: {\n main: <OnboardingBirthday selectedDate={selectedDate} setSelectedDate={setSelectedDate} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_birthday_primary,\n secondaryText: copy.onboarding_birthday_secondary,\n },\n [OnboardingSteps.CreditScore]: {\n main: <OnboardingCreditScore creditScore={creditScore} setCreditScore={setCreditScore} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_credit_score_primary,\n secondaryText: copy.onboarding_credit_score_secondary,\n },\n }\n\n const handleClose = () => {\n setCurrentStep(INITIAL_STEP_STATE)\n setIsComplete(false)\n setTransactionGuid('')\n\n onClose()\n }\n\n const handleComplete = async () => {\n setIsComplete(true)\n\n await addRecurringIncome(incomeTransactions)\n await calculateHealthScore()\n await updateUserProfile({ ...userProfile, has_completed_finstrong_onboarding: true })\n\n handleClose()\n }\n\n const handleDoItLater = () => {\n if (currentStep.step === OnboardingSteps.CreditScore) {\n handleComplete()\n return\n }\n\n setCurrentStep({ step: currentStep.step + 1, type: 'main' })\n }\n\n const handlePrimaryAction = () => {\n const { step } = currentStep\n const nextStep = step + 1\n\n switch (step) {\n case OnboardingSteps.Birthday:\n if (selectedDate && selectedDate !== user.birthday) {\n updateUser({ ...user, birthday: selectedDate })\n }\n break\n\n case OnboardingSteps.CreditScore:\n if (creditScore && creditScore !== user.credit_score) {\n updateUser({ ...user, credit_score: creditScore })\n }\n handleComplete()\n return\n\n case OnboardingSteps.MonthlyIncome:\n if (\n transactionGuid &&\n incomeTransactions.findIndex(({ guid }) => guid === transactionGuid) === -1\n ) {\n setIncomeTransactions((prev) => [\n ...prev,\n { ...transaction!, firstDay, frequency, secondDay },\n ])\n }\n break\n\n case OnboardingSteps.ConnectAccounts:\n if (!hasAccounts) {\n setIsConnectDrawerOpen(true)\n return\n }\n break\n\n default:\n break\n }\n\n if (nextStep in OnboardingSteps) setCurrentStep({ step: nextStep, type: 'main' })\n }\n\n const handleSecondaryAction = () => {\n const { step, type } = currentStep\n\n if (type === 'detail') {\n setCurrentStep({ step, type: 'main' })\n return\n }\n\n if (step === OnboardingSteps.Birthday && incomeTransactions.length) {\n setCurrentStep({ step: step - 1, type: 'detail' })\n return\n }\n\n if (step > OnboardingSteps.ConnectAccounts) setCurrentStep({ step: step - 1, type: 'main' })\n }\n\n const addRecurringIncome = async (transactions: IncomeTransaction[]) => {\n for (const t of transactions) {\n const {\n account_guid,\n amount,\n date,\n description,\n feed_description,\n firstDay,\n frequency,\n secondDay,\n merchant_guid,\n payee,\n transaction_type,\n } = t\n\n const nextDate = getNextPaymentDate(frequency, fromUnixTime(date))\n\n const repeatingTransaction = {\n account_guid,\n amount,\n created_by: 0,\n description: payee || description || feed_description,\n merchant_guid,\n predicted_occurs_on: formatISO(nextDate, { representation: 'date' }),\n recurrence_day: firstDay,\n recurrence_type: frequency,\n repeating_transaction_type: RepeatingType.Income,\n second_recurrence_day: secondDay,\n transaction_type,\n user_guid: user.guid,\n } as RepeatingTransaction\n\n await addRepeatingTransaction(repeatingTransaction, t)\n }\n }\n\n const currentStepData = steps[currentStep.step]\n const isConnectAccountsStep = currentStep.step === OnboardingSteps.ConnectAccounts\n const primaryButtonProps = {\n fullWidth: true,\n ...(isConnectAccountsStep && !hasAccounts && { startIcon: <Add /> }),\n }\n const showDoItLaterButton = !isConnectAccountsStep || (isConnectAccountsStep && !hasAccounts)\n\n return (\n <React.Fragment>\n <Drawer\n footerStyles={{ borderTop: 1, borderColor: 'divider', px: 24, py: 16 }}\n hasSecondaryAction={!isConnectAccountsStep}\n isOpen={isOpen}\n isPrimaryDisabled={!isPrimaryActionEnabled}\n onClose={handleClose}\n onSecondaryAction={handleSecondaryAction}\n primaryButtonProps={primaryButtonProps}\n primaryText={currentStepData?.mainActionContent}\n secondaryColor=\"primary\"\n secondaryText={copy.onboarding_back}\n title={copy.title}\n {...(!isComplete && { onPrimaryAction: handlePrimaryAction })}\n >\n <Stack sx={{ bgcolor: 'background.default', height: '100%' }}>\n {isComplete && (\n <Stack sx={{ alignItems: 'center', gap: 24, position: 'relative', px: 16, top: 126 }}>\n <img alt=\"\" src={CALCULATING_ANIMATION_URL} style={{ minHeight: 100, width: 211 }} />\n <H2>{copy.onboarding_calculate_primary}</H2>\n <P sx={{ textAlign: 'center' }} variant=\"subtitle1\">\n {copy.onboarding_calculate_secondary}\n </P>\n </Stack>\n )}\n {currentStepData && !isComplete && (\n <React.Fragment>\n <OnboardingStepsHeader\n completeCopy={copy.complete}\n primaryText={currentStepData.primaryText}\n secondaryText={currentStepData.secondaryText}\n value={progressValue}\n />\n {currentStep.type === 'main' && (\n <Box sx={{ bgcolor: 'background.default' }}>\n {currentStepData.main}\n {showDoItLaterButton && (\n <Stack sx={{ alignItems: 'center', px: 24, py: 12 }}>\n <Button fullWidth={true} onClick={handleDoItLater}>\n {copy.onboarding_do_it_later}\n </Button>\n </Stack>\n )}\n </Box>\n )}\n {currentStep.type === 'detail' && currentStepData.detail}\n </React.Fragment>\n )}\n </Stack>\n </Drawer>\n\n <ConnectDrawer\n onClose={() => setIsConnectDrawerOpen(false)}\n showConnectWidget={isConnectDrawerOpen}\n title={copy.connect_more_accounts_button}\n />\n </React.Fragment>\n )\n}\n\nexport default observer(OnboardingStepsDrawer)\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import I from "../../../common/utils/AccountDisplayName.es.js";
|
|
2
2
|
import { useAppConfig as D, useGlobalCopyStore as h, useGlobalUiStore as $ } from "../../../common/context/hooks.es.js";
|
|
3
|
-
import B from "../../../
|
|
4
|
-
import
|
|
3
|
+
import { formatCurrency as B } from "../../../core/utils/NumberFormatting.es.js";
|
|
4
|
+
import L from "../../../common/components/drawer/Drawer.es.js";
|
|
5
5
|
import k from "../../../common/components/ConnectDrawer.es.js";
|
|
6
6
|
import { getAccountBalanceDetails as O } from "../../../accounts/utils/AccountFields.es.js";
|
|
7
7
|
import S from "../../../accounts/components/AccountsListCompact.es.js";
|
|
@@ -46,7 +46,7 @@ var W = ({ loadAccounts: i, loadMoreLabel: y }) => {
|
|
|
46
46
|
/* @__PURE__ */ t(M, {
|
|
47
47
|
bold: !0,
|
|
48
48
|
variant: "body2",
|
|
49
|
-
children:
|
|
49
|
+
children: B(w(e), "0,0.00")
|
|
50
50
|
})
|
|
51
51
|
]
|
|
52
52
|
}), c < f.length - 1 && /* @__PURE__ */ t(j, { variant: "inset" })] }, e.guid))
|
|
@@ -69,7 +69,7 @@ var W = ({ loadAccounts: i, loadMoreLabel: y }) => {
|
|
|
69
69
|
y
|
|
70
70
|
]
|
|
71
71
|
})
|
|
72
|
-
}) }), /* @__PURE__ */ t(
|
|
72
|
+
}) }), /* @__PURE__ */ t(L, {
|
|
73
73
|
isOpen: C,
|
|
74
74
|
onClose: () => p(!1),
|
|
75
75
|
title: l.accounts,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useCategoryStore as T, useGlobalCopyStore as A } from "../../../common/context/hooks.es.js";
|
|
2
|
-
import $ from "../../../
|
|
2
|
+
import { fromUnixToDayOfWeekAndDate as $ } from "../../../core/utils/DateUtil.es.js";
|
|
3
3
|
import { formatCurrency as j } from "../../../core/utils/NumberFormatting.es.js";
|
|
4
|
-
import
|
|
4
|
+
import z from "../../../common/components/drawer/Drawer.es.js";
|
|
5
5
|
import B from "../../../common/components/ConnectDrawer.es.js";
|
|
6
6
|
import G from "../../../transactions/components/shared/TransactionList.es.js";
|
|
7
7
|
import _ from "react";
|
|
@@ -12,7 +12,7 @@ import { ChevronRight as R } from "@mxenabled/mx-icons";
|
|
|
12
12
|
import { Fragment as y, jsx as e, jsxs as o } from "react/jsx-runtime";
|
|
13
13
|
import { useTheme as F } from "@mui/material/styles";
|
|
14
14
|
import d from "@mui/material/Box";
|
|
15
|
-
var Z = ({ transactions: r = [], amountColor: x = "success.main", amountPosition: v = "center", formatDate: C =
|
|
15
|
+
var Z = ({ transactions: r = [], amountColor: x = "success.main", amountPosition: v = "center", formatDate: C = $, secondaryIcon: s }) => {
|
|
16
16
|
const m = F(), { connect: w, finstrong: l, categories: k } = A(), [D, p] = _.useState(!1), [S, g] = _.useState(!1), { getCategoryName: I } = T(), i = 3, h = r.length > i, O = r.length - i;
|
|
17
17
|
let u = r;
|
|
18
18
|
return h && (u = r.map((t) => ({
|
|
@@ -114,7 +114,7 @@ var Z = ({ transactions: r = [], amountColor: x = "success.main", amountPosition
|
|
|
114
114
|
l.key_indicators_borrow.have_manageable_debt_drawer.have_manageable_debt_more_transactions
|
|
115
115
|
]
|
|
116
116
|
})
|
|
117
|
-
}) }), /* @__PURE__ */ e(
|
|
117
|
+
}) }), /* @__PURE__ */ e(z, {
|
|
118
118
|
isOpen: D,
|
|
119
119
|
onClose: () => p(!1),
|
|
120
120
|
title: l.key_indicators_borrow.have_manageable_debt_drawer.have_manageable_debt_transactions,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { buildDynamicCopy as p } from "../core/utils/Localization.es.js";
|
|
2
2
|
import { useAccountStore as P, useEvent as U, useGlobalCopyStore as Y, useGlobalUiStore as $, useGoalStore as q } from "../common/context/hooks.es.js";
|
|
3
3
|
import { useScreenSize as H } from "../common/hooks/useScreenSize.es.js";
|
|
4
|
+
import { TrackType as o } from "../core/types/Goal.es.js";
|
|
5
|
+
import { formatCurrency as T } from "../core/utils/NumberFormatting.es.js";
|
|
4
6
|
import { useWidgetLoadTimer as J } from "../common/hooks/useWidgetLoadTimer.es.js";
|
|
5
7
|
import Q from "../common/components/drawer/Drawer.es.js";
|
|
6
|
-
import { ANALYTICS_EVENTS as
|
|
7
|
-
import { TrackType as o } from "../core/types/Goal.es.js";
|
|
8
|
-
import { formatCurrency as C } from "../core/utils/NumberFormatting.es.js";
|
|
8
|
+
import { ANALYTICS_EVENTS as C } from "../common/constants/Analytics.es.js";
|
|
9
9
|
import X from "../common/components/Loader.es.js";
|
|
10
10
|
import { WidgetContainer as Z } from "../common/components/WidgetContainer.es.js";
|
|
11
11
|
import { EmptyState as tt } from "../common/components/EmptyState.es.js";
|
|
@@ -27,14 +27,14 @@ var xt = at(({ onBackClick: E, onMenuClick: L, sx: D }) => {
|
|
|
27
27
|
widgetName: "GoalsWidget",
|
|
28
28
|
isLoaded: s
|
|
29
29
|
}), i.useEffect(() => {
|
|
30
|
-
v || R().finally(), b(
|
|
30
|
+
v || R().finally(), b(C.GOALS_VIEW);
|
|
31
31
|
}, []), i.useEffect(() => {
|
|
32
32
|
_ && K().finally();
|
|
33
33
|
}, [_]);
|
|
34
34
|
const B = () => {
|
|
35
|
-
b(
|
|
35
|
+
b(C.GOALS_CLICK_FILTER);
|
|
36
36
|
}, a = () => {
|
|
37
|
-
u(!0), b(
|
|
37
|
+
u(!0), b(C.GOALS_CLICK_ADD);
|
|
38
38
|
}, y = (d) => {
|
|
39
39
|
u(!1), d === o.SAVINGS_TRACK ? m(0) : d === o.DEBT_TRACK ? m(1) : d === o.RETIREMENT_TRACK && m(2);
|
|
40
40
|
}, l = i.useMemo(() => s && k.length === 0, [
|
|
@@ -43,7 +43,7 @@ var xt = at(({ onBackClick: E, onMenuClick: L, sx: D }) => {
|
|
|
43
43
|
N
|
|
44
44
|
]);
|
|
45
45
|
if (!_ || !s) return /* @__PURE__ */ t(X, {});
|
|
46
|
-
const M = p(r ? e.tab_subtitle_mobile : e.tab_subtitle,
|
|
46
|
+
const M = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, T(F, "0,0")), V = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, T(O, "0,0")), j = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, T(W, "0,0"));
|
|
47
47
|
return /* @__PURE__ */ c(Z, {
|
|
48
48
|
actions: [{
|
|
49
49
|
iconName: "add",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import x from "../../common/utils/AccountDisplayName.es.js";
|
|
2
2
|
import { useAppConfig as y, useGlobalCopyStore as b } from "../../common/context/hooks.es.js";
|
|
3
|
-
import k from "../../
|
|
4
|
-
import
|
|
3
|
+
import { formatCurrency as k } from "../../core/utils/NumberFormatting.es.js";
|
|
4
|
+
import w from "../../common/components/drawer/Drawer.es.js";
|
|
5
5
|
import { ConnectCard as A } from "../../common/components/ConnectCard.es.js";
|
|
6
6
|
import l from "react";
|
|
7
7
|
import { InstitutionLogo as L } from "@mxenabled/mxui";
|
|
@@ -18,7 +18,7 @@ var O = ({ accounts: s, isOpen: d, onClose: p, onSave: f, title: u }) => {
|
|
|
18
18
|
const r = e.findIndex((C) => C.guid === t.guid), i = [...e];
|
|
19
19
|
r >= 0 ? i.splice(r, 1) : i.push(t), h(i);
|
|
20
20
|
};
|
|
21
|
-
return /* @__PURE__ */ n(
|
|
21
|
+
return /* @__PURE__ */ n(w, {
|
|
22
22
|
ariaLabelClose: g.close_aria,
|
|
23
23
|
isOpen: d,
|
|
24
24
|
onClose: p,
|
|
@@ -35,7 +35,7 @@ var O = ({ accounts: s, isOpen: d, onClose: p, onSave: f, title: u }) => {
|
|
|
35
35
|
}) }),
|
|
36
36
|
/* @__PURE__ */ o(B, {
|
|
37
37
|
primary: x(t, { allowNickname: c?.show_account_nicknames_in_master }),
|
|
38
|
-
secondary:
|
|
38
|
+
secondary: k(t.balance || 0, "0,0.00")
|
|
39
39
|
}),
|
|
40
40
|
/* @__PURE__ */ o(I, { checked: e.some((i) => i.guid === t.guid) })
|
|
41
41
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { AccountType as i } from "../../core/types/Account.es.js";
|
|
1
2
|
import E from "../../common/utils/AccountDisplayName.es.js";
|
|
2
3
|
import { useAccountStore as D, useAppConfig as S, useGlobalCopyStore as b, useGoalStore as k } from "../../common/context/hooks.es.js";
|
|
3
|
-
import { AccountType as i } from "../../core/types/Account.es.js";
|
|
4
4
|
import { GoalType as l, MetaType as n, TrackType as r } from "../../core/types/Goal.es.js";
|
|
5
5
|
import { getGoalTypes as G } from "../../core/utils/GoalsUtil.es.js";
|
|
6
6
|
import { AddGoalListItem as O } from "./addgoal/AddGoalListItem.es.js";
|