Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
frontend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
frontend
Commits
5f1d43ef
Commit
5f1d43ef
authored
Jun 28, 2024
by
tom
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
restrict imports from lodash
parent
6af23f3c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
34 additions
and
22 deletions
+34
-22
.eslintrc.js
.eslintrc.js
+5
-0
recentSearchKeywords.ts
lib/recentSearchKeywords.ts
+2
-2
UserOp.tsx
ui/pages/UserOp.tsx
+7
-3
TxAssetFlows.tsx
ui/tx/TxAssetFlows.tsx
+2
-2
generateFlowViewData.ts
ui/tx/assetFlows/utils/generateFlowViewData.ts
+2
-2
getTokensData.ts
ui/tx/assetFlows/utils/getTokensData.ts
+12
-10
useDescribeTxs.tsx
ui/txs/noves/useDescribeTxs.tsx
+4
-3
No files found.
.eslintrc.js
View file @
5f1d43ef
...
@@ -10,9 +10,14 @@ const RESTRICTED_MODULES = {
...
@@ -10,9 +10,14 @@ const RESTRICTED_MODULES = {
importNames
:
[
'
Popover
'
,
'
useToast
'
],
importNames
:
[
'
Popover
'
,
'
useToast
'
],
message
:
'
Please use corresponding component or hook from ui/shared/chakra component instead
'
,
message
:
'
Please use corresponding component or hook from ui/shared/chakra component instead
'
,
},
},
{
name
:
'
lodash
'
,
message
:
'
Please use `import [package] from
\'
lodash/[package]
\'
` instead.
'
,
},
],
],
patterns
:
[
patterns
:
[
'
icons/*
'
,
'
icons/*
'
,
'
!lodash/*
'
,
],
],
};
};
...
...
lib/recentSearchKeywords.ts
View file @
5f1d43ef
import
{
uniq
}
from
'
lodash
'
;
import
_uniq
from
'
lodash/uniq
'
;
import
isBrowser
from
'
./isBrowser
'
;
import
isBrowser
from
'
./isBrowser
'
;
...
@@ -27,7 +27,7 @@ export function saveToRecentKeywords(value: string) {
...
@@ -27,7 +27,7 @@ export function saveToRecentKeywords(value: string) {
}
}
const
keywordsArr
=
getRecentSearchKeywords
();
const
keywordsArr
=
getRecentSearchKeywords
();
const
result
=
uniq
([
value
,
...
keywordsArr
]).
slice
(
0
,
MAX_KEYWORDS_NUMBER
-
1
);
const
result
=
_
uniq
([
value
,
...
keywordsArr
]).
slice
(
0
,
MAX_KEYWORDS_NUMBER
-
1
);
window
.
localStorage
.
setItem
(
RECENT_KEYWORDS_LS_KEY
,
JSON
.
stringify
(
result
));
window
.
localStorage
.
setItem
(
RECENT_KEYWORDS_LS_KEY
,
JSON
.
stringify
(
result
));
}
}
...
...
ui/pages/UserOp.tsx
View file @
5f1d43ef
import
{
inRange
}
from
'
lodash
'
;
import
_inRange
from
'
lodash/inRange
'
;
import
{
useRouter
}
from
'
next/router
'
;
import
{
useRouter
}
from
'
next/router
'
;
import
React
from
'
react
'
;
import
React
from
'
react
'
;
...
@@ -43,7 +43,11 @@ const UserOp = () => {
...
@@ -43,7 +43,11 @@ const UserOp = () => {
if
(
!
userOpQuery
.
data
)
{
if
(
!
userOpQuery
.
data
)
{
return
true
;
return
true
;
}
else
{
}
else
{
if
(
inRange
(
Number
(
tt
.
log_index
),
userOpQuery
.
data
?.
user_logs_start_index
,
userOpQuery
.
data
?.
user_logs_start_index
+
userOpQuery
.
data
?.
user_logs_count
))
{
if
(
_inRange
(
Number
(
tt
.
log_index
),
userOpQuery
.
data
?.
user_logs_start_index
,
userOpQuery
.
data
?.
user_logs_start_index
+
userOpQuery
.
data
?.
user_logs_count
,
))
{
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -54,7 +58,7 @@ const UserOp = () => {
...
@@ -54,7 +58,7 @@ const UserOp = () => {
if
(
!
userOpQuery
.
data
)
{
if
(
!
userOpQuery
.
data
)
{
return
true
;
return
true
;
}
else
{
}
else
{
if
(
inRange
(
log
.
index
,
userOpQuery
.
data
?.
user_logs_start_index
,
userOpQuery
.
data
?.
user_logs_start_index
+
userOpQuery
.
data
?.
user_logs_count
))
{
if
(
_
inRange
(
log
.
index
,
userOpQuery
.
data
?.
user_logs_start_index
,
userOpQuery
.
data
?.
user_logs_start_index
+
userOpQuery
.
data
?.
user_logs_count
))
{
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
...
ui/tx/TxAssetFlows.tsx
View file @
5f1d43ef
import
{
Table
,
Tbody
,
Tr
,
Th
,
Box
,
Skeleton
,
Text
,
Show
,
Hide
}
from
'
@chakra-ui/react
'
;
import
{
Table
,
Tbody
,
Tr
,
Th
,
Box
,
Skeleton
,
Text
,
Show
,
Hide
}
from
'
@chakra-ui/react
'
;
import
_
from
'
lodash
'
;
import
_
chunk
from
'
lodash/chunk
'
;
import
React
,
{
useMemo
,
useState
}
from
'
react
'
;
import
React
,
{
useMemo
,
useState
}
from
'
react
'
;
import
type
{
PaginationParams
}
from
'
ui/shared/pagination/types
'
;
import
type
{
PaginationParams
}
from
'
ui/shared/pagination/types
'
;
...
@@ -33,7 +33,7 @@ export default function TxAssetFlows(props: FlowViewProps) {
...
@@ -33,7 +33,7 @@ export default function TxAssetFlows(props: FlowViewProps) {
const
[
page
,
setPage
]
=
useState
<
number
>
(
1
);
const
[
page
,
setPage
]
=
useState
<
number
>
(
1
);
const
ViewData
=
useMemo
(()
=>
(
queryData
?
generateFlowViewData
(
queryData
)
:
[]),
[
queryData
]);
const
ViewData
=
useMemo
(()
=>
(
queryData
?
generateFlowViewData
(
queryData
)
:
[]),
[
queryData
]);
const
chunkedViewData
=
_
.
chunk
(
ViewData
,
50
);
const
chunkedViewData
=
_chunk
(
ViewData
,
50
);
const
paginationProps
:
PaginationParams
=
useMemo
(()
=>
({
const
paginationProps
:
PaginationParams
=
useMemo
(()
=>
({
onNextPageClick
:
()
=>
setPage
(
page
+
1
),
onNextPageClick
:
()
=>
setPage
(
page
+
1
),
...
...
ui/tx/assetFlows/utils/generateFlowViewData.ts
View file @
5f1d43ef
import
_
from
'
lodash
'
;
import
_
findIndex
from
'
lodash/findIndex
'
;
import
type
{
NovesNft
,
NovesResponseData
,
NovesSentReceived
,
NovesToken
}
from
'
types/api/noves
'
;
import
type
{
NovesNft
,
NovesResponseData
,
NovesSentReceived
,
NovesToken
}
from
'
types/api/noves
'
;
...
@@ -27,7 +27,7 @@ export function generateFlowViewData(data: NovesResponseData): Array<NovesFlowVi
...
@@ -27,7 +27,7 @@ export function generateFlowViewData(data: NovesResponseData): Array<NovesFlowVi
const
txItems
=
[
...
sent
,
...
received
];
const
txItems
=
[
...
sent
,
...
received
];
const
paidGasIndex
=
_
.
findIndex
(
txItems
,
(
item
)
=>
item
.
action
===
'
paidGas
'
);
const
paidGasIndex
=
_findIndex
(
txItems
,
(
item
)
=>
item
.
action
===
'
paidGas
'
);
if
(
paidGasIndex
>=
0
)
{
if
(
paidGasIndex
>=
0
)
{
const
element
=
txItems
.
splice
(
paidGasIndex
,
1
)[
0
];
const
element
=
txItems
.
splice
(
paidGasIndex
,
1
)[
0
];
element
.
to
.
name
=
'
Validators
'
;
element
.
to
.
name
=
'
Validators
'
;
...
...
ui/tx/assetFlows/utils/getTokensData.ts
View file @
5f1d43ef
import
_
from
'
lodash
'
;
import
_groupBy
from
'
lodash/groupBy
'
;
import
_keysIn
from
'
lodash/keysIn
'
;
import
_mapValues
from
'
lodash/mapValues
'
;
import
type
{
NovesResponseData
}
from
'
types/api/noves
'
;
import
type
{
NovesResponseData
}
from
'
types/api/noves
'
;
import
type
{
TokenInfo
}
from
'
types/api/token
'
;
import
type
{
TokenInfo
}
from
'
types/api/token
'
;
...
@@ -47,28 +49,28 @@ export function getTokensData(data: NovesResponseData): TokensData {
...
@@ -47,28 +49,28 @@ export function getTokensData(data: NovesResponseData): TokensData {
});
});
// Group tokens by property into arrays
// Group tokens by property into arrays
const
tokensGroupByname
=
_
.
groupBy
(
tokens
,
'
name
'
);
const
tokensGroupByname
=
_groupBy
(
tokens
,
'
name
'
);
const
tokensGroupBySymbol
=
_
.
groupBy
(
tokens
,
'
symbol
'
);
const
tokensGroupBySymbol
=
_groupBy
(
tokens
,
'
symbol
'
);
const
tokensGroupById
=
_
.
groupBy
(
tokens
,
'
id
'
);
const
tokensGroupById
=
_groupBy
(
tokens
,
'
id
'
);
// Map properties to an object and remove duplicates
// Map properties to an object and remove duplicates
const
mappedNames
=
_
.
mapValues
(
tokensGroupByname
,
(
i
)
=>
{
const
mappedNames
=
_mapValues
(
tokensGroupByname
,
(
i
)
=>
{
return
i
[
0
];
return
i
[
0
];
});
});
const
mappedSymbols
=
_
.
mapValues
(
tokensGroupBySymbol
,
(
i
)
=>
{
const
mappedSymbols
=
_mapValues
(
tokensGroupBySymbol
,
(
i
)
=>
{
return
i
[
0
];
return
i
[
0
];
});
});
const
mappedIds
=
_
.
mapValues
(
tokensGroupById
,
(
i
)
=>
{
const
mappedIds
=
_mapValues
(
tokensGroupById
,
(
i
)
=>
{
return
i
[
0
];
return
i
[
0
];
});
});
const
filters
=
[
'
undefined
'
,
'
null
'
];
const
filters
=
[
'
undefined
'
,
'
null
'
];
// Array of keys to match in string
// Array of keys to match in string
const
nameList
=
_
.
keysIn
(
mappedNames
).
filter
(
i
=>
!
filters
.
includes
(
i
));
const
nameList
=
_keysIn
(
mappedNames
).
filter
(
i
=>
!
filters
.
includes
(
i
));
const
symbolList
=
_
.
keysIn
(
mappedSymbols
).
filter
(
i
=>
!
filters
.
includes
(
i
));
const
symbolList
=
_keysIn
(
mappedSymbols
).
filter
(
i
=>
!
filters
.
includes
(
i
));
const
idList
=
_
.
keysIn
(
mappedIds
).
filter
(
i
=>
!
filters
.
includes
(
i
));
const
idList
=
_keysIn
(
mappedIds
).
filter
(
i
=>
!
filters
.
includes
(
i
));
return
{
return
{
nameList
,
nameList
,
...
...
ui/txs/noves/useDescribeTxs.tsx
View file @
5f1d43ef
import
{
useQuery
}
from
'
@tanstack/react-query
'
;
import
{
useQuery
}
from
'
@tanstack/react-query
'
;
import
_
from
'
lodash
'
;
import
_chunk
from
'
lodash/chunk
'
;
import
_uniq
from
'
lodash/uniq
'
;
import
React
from
'
react
'
;
import
React
from
'
react
'
;
import
type
{
NovesDescribeTxsResponse
}
from
'
types/api/noves
'
;
import
type
{
NovesDescribeTxsResponse
}
from
'
types/api/noves
'
;
...
@@ -15,8 +16,8 @@ const translateEnabled = feature.isEnabled && feature.provider === 'noves';
...
@@ -15,8 +16,8 @@ const translateEnabled = feature.isEnabled && feature.provider === 'noves';
export
default
function
useDescribeTxs
(
items
:
Array
<
Transaction
>
|
undefined
,
viewAsAccountAddress
:
string
|
undefined
,
isPlaceholderData
:
boolean
)
{
export
default
function
useDescribeTxs
(
items
:
Array
<
Transaction
>
|
undefined
,
viewAsAccountAddress
:
string
|
undefined
,
isPlaceholderData
:
boolean
)
{
const
apiFetch
=
useApiFetch
();
const
apiFetch
=
useApiFetch
();
const
txsHash
=
_
.
uniq
(
items
?.
map
(
i
=>
i
.
hash
));
const
txsHash
=
_uniq
(
items
?.
map
(
i
=>
i
.
hash
));
const
txChunks
=
_
.
chunk
(
txsHash
,
10
);
const
txChunks
=
_chunk
(
txsHash
,
10
);
const
queryKey
=
{
const
queryKey
=
{
viewAsAccountAddress
,
viewAsAccountAddress
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment