Skip to content

Commit 593f27b

Browse files
committed
react state and selectors
Update circular-deps.jsonc Update .madgerc Fix return type Fix bug
1 parent 1f1806a commit 593f27b

File tree

12 files changed

+1545
-100
lines changed

12 files changed

+1545
-100
lines changed

.madgerc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
"ui/pages/confirmations/**",
2727
"ui/ducks/**",
2828
"ui/selectors/**",
29-
"ui/hooks/**",
3029
"ui/store/**",
31-
"ui/helpers/utils/token-util.js",
3230
"ui/components/multichain/**",
3331
"ui/components/app/**",
3432
"ui/components/component-library/**",

development/circular-deps.jsonc

Lines changed: 4 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -196,29 +196,6 @@
196196
"ui/components/multichain/index.js"
197197
],
198198
["ui/ducks/alerts/unconnected-account.js", "ui/store/actions.ts"],
199-
[
200-
"ui/ducks/confirm-transaction/confirm-transaction.duck.js",
201-
"ui/ducks/index.js",
202-
"ui/ducks/metamask/metamask.js",
203-
"ui/ducks/send/send.js",
204-
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
205-
"ui/pages/confirmations/confirmation/templates/error.js",
206-
"ui/pages/confirmations/confirmation/templates/index.js",
207-
"ui/selectors/selectors.js",
208-
"ui/store/actions.ts",
209-
"ui/store/store.ts"
210-
],
211-
[
212-
"ui/ducks/confirm-transaction/confirm-transaction.duck.js",
213-
"ui/ducks/index.js",
214-
"ui/ducks/metamask/metamask.js",
215-
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
216-
"ui/pages/confirmations/confirmation/templates/error.js",
217-
"ui/pages/confirmations/confirmation/templates/index.js",
218-
"ui/selectors/selectors.js",
219-
"ui/store/actions.ts",
220-
"ui/store/store.ts"
221-
],
222199
[
223200
"ui/ducks/confirm-transaction/confirm-transaction.duck.js",
224201
"ui/ducks/metamask/metamask.js",
@@ -231,88 +208,18 @@
231208
"ui/store/actions.ts"
232209
],
233210
[
234-
"ui/ducks/domains.js",
235-
"ui/ducks/index.js",
236-
"ui/store/actions.ts",
237-
"ui/store/store.ts"
238-
],
239-
[
240-
"ui/ducks/index.js",
241-
"ui/ducks/metamask/metamask.js",
242-
"ui/ducks/ramps/ramps.ts",
243-
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
244-
"ui/pages/confirmations/confirmation/templates/error.js",
245-
"ui/pages/confirmations/confirmation/templates/index.js",
246-
"ui/selectors/multichain.ts",
247-
"ui/selectors/selectors.js",
248-
"ui/store/actions.ts",
249-
"ui/store/store.ts"
250-
],
251-
[
252-
"ui/ducks/index.js",
253-
"ui/ducks/metamask/metamask.js",
254-
"ui/ducks/swaps/swaps.js",
255-
"ui/hooks/useTokenFiatAmount.js",
256-
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
257-
"ui/pages/confirmations/confirmation/templates/error.js",
258-
"ui/pages/confirmations/confirmation/templates/index.js",
259-
"ui/selectors/selectors.js",
260-
"ui/store/actions.ts",
261-
"ui/store/store.ts"
262-
],
263-
[
264-
"ui/ducks/index.js",
265211
"ui/ducks/metamask/metamask.js",
266-
"ui/ducks/swaps/swaps.js",
267212
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
268213
"ui/pages/confirmations/confirmation/templates/error.js",
269214
"ui/pages/confirmations/confirmation/templates/index.js",
270215
"ui/selectors/selectors.js",
271-
"ui/store/actions.ts",
272-
"ui/store/store.ts"
216+
"ui/store/actions.ts"
273217
],
274218
[
275-
"ui/ducks/index.js",
276219
"ui/ducks/metamask/metamask.js",
277-
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
278-
"ui/pages/confirmations/confirmation/templates/error.js",
279-
"ui/pages/confirmations/confirmation/templates/index.js",
280-
"ui/selectors/selectors.js",
281-
"ui/store/actions.ts",
282-
"ui/store/store.ts"
283-
],
284-
[
285-
"ui/ducks/index.js",
286-
"ui/ducks/ramps/ramps.ts",
287-
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
288-
"ui/pages/confirmations/confirmation/templates/error.js",
289-
"ui/pages/confirmations/confirmation/templates/index.js",
290220
"ui/selectors/multichain.ts",
291-
"ui/selectors/selectors.js",
292-
"ui/store/actions.ts",
293-
"ui/store/store.ts"
294-
],
295-
[
296-
"ui/ducks/index.js",
297-
"ui/ducks/swaps/swaps.js",
298-
"ui/helpers/utils/token-util.js",
299-
"ui/hooks/useTokenFiatAmount.js",
300-
"ui/store/actions.ts",
301-
"ui/store/store.ts"
302-
],
303-
[
304-
"ui/ducks/index.js",
305-
"ui/ducks/swaps/swaps.js",
306-
"ui/store/actions.ts",
307-
"ui/store/store.ts"
308-
],
309-
[
310-
"ui/ducks/metamask/metamask.js",
311-
"ui/pages/confirmations/confirmation/ResultTemplate.ts",
312-
"ui/pages/confirmations/confirmation/templates/error.js",
313-
"ui/pages/confirmations/confirmation/templates/index.js",
314-
"ui/selectors/selectors.js",
315-
"ui/store/actions.ts"
221+
"ui/selectors/selectors.js"
316222
],
317-
["ui/ducks/metamask/metamask.js", "ui/selectors/selectors.js"]
223+
["ui/ducks/metamask/metamask.js", "ui/selectors/selectors.js"],
224+
["ui/selectors/multichain.ts", "ui/selectors/selectors.js"]
318225
]

shared/types/rewards.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,72 @@ export type EstimatedPointsDto = {
200200
*/
201201
bonusBips: number;
202202
};
203+
204+
/**
205+
* UI toast state for rewards errors.
206+
*/
207+
export type RewardsErrorToastState = {
208+
isOpen: boolean;
209+
title: string;
210+
description: string;
211+
actionText?: string;
212+
onActionClick?: () => void;
213+
};
214+
215+
export type RewardsGeoMetadata = {
216+
/**
217+
* The geographic location string (e.g., 'US', 'CA-ON', 'FR')
218+
*/
219+
geoLocation: string;
220+
/**
221+
* Whether the location is allowed for opt-in
222+
*/
223+
optinAllowedForGeo: boolean;
224+
};
225+
226+
/**
227+
* Input DTO for getting opt-in status of multiple addresses
228+
*/
229+
export type OptInStatusInputDto = {
230+
/**
231+
* The addresses to check opt-in status for
232+
*
233+
* @example [
234+
* '0xDE37C32E8dbD1CD325B8023a00550a5beA97eF13',
235+
* '0xDE37C32E8dbD1CD325B8023a00550a5beA97eF14',
236+
* '0xDE37C32E8dbD1CD325B8023a00550a5beA97eF15'
237+
* ]
238+
*/
239+
addresses: string[];
240+
};
241+
242+
/**
243+
* Response DTO for opt-in status of multiple addresses
244+
*/
245+
export type OptInStatusDto = {
246+
/**
247+
* The opt-in status of the addresses in the same order as the input
248+
*
249+
* @example [true, true, false]
250+
*/
251+
ois: boolean[];
252+
253+
/**
254+
* The subscription IDs of the addresses in the same order as the input
255+
*
256+
* @example ['sub_123', 'sub_456', null]
257+
*/
258+
sids: (string | null)[];
259+
};
260+
261+
/**
262+
* Response DTO for opt-out operation
263+
*/
264+
export type OptOutDto = {
265+
/**
266+
* Whether the opt-out operation was successful
267+
*
268+
* @example true
269+
*/
270+
success: boolean;
271+
};

test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,7 @@
429429
"srpSessionData": "object"
430430
},
431431
"ramps": "object",
432+
"rewards": "object",
432433
"send": "object",
433434
"smartAccounts": "object",
434435
"swaps": "object",

ui/ducks/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import historyReducer from './history/history';
1414
import rampsReducer from './ramps/ramps';
1515
import confirmAlertsReducer from './confirm-alerts/confirm-alerts';
1616
import smartAccountsReducer from './smart-accounts/smart-accounts';
17+
import rewardsReducer from './rewards';
1718

1819
export default combineReducers({
1920
[AlertTypes.invalidCustomNetwork]: invalidCustomNetwork,
@@ -32,4 +33,5 @@ export default combineReducers({
3233
gas: gasReducer,
3334
localeMessages: localeMessagesReducer,
3435
smartAccounts: smartAccountsReducer,
36+
rewards: rewardsReducer,
3537
});

0 commit comments

Comments
 (0)