Skip to content

Commit c4c7676

Browse files
committed
little tweaks
1 parent 37a11e6 commit c4c7676

File tree

5 files changed

+31
-20
lines changed

5 files changed

+31
-20
lines changed

src/components/FindWalletProductTable/index.tsx

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
import { useEffect, useMemo, useState } from "react"
22

3-
import { ChainName, FilterOption, Lang, Wallet } from "@/lib/types"
3+
import {
4+
ChainName,
5+
FilterOption,
6+
Lang,
7+
Wallet,
8+
WalletFilter,
9+
} from "@/lib/types"
410

511
import { useWalletColumns } from "@/components/FindWalletProductTable/hooks/useWalletColumns"
612
import { useWalletFilters } from "@/components/FindWalletProductTable/hooks/useWalletFilters"
713
import { useWalletPersonaPresets } from "@/components/FindWalletProductTable/hooks/useWalletPersonaPresets"
814
import ProductTable from "@/components/ProductTable"
915

1016
import { trackCustomEvent } from "@/lib/utils/matomo"
17+
import { getFilteredWalletsCount } from "@/lib/utils/wallets"
1118

1219
import FindWalletsNoResults from "./FindWalletsNoResults"
1320
import WalletSubComponent from "./WalletSubComponent"
@@ -76,20 +83,10 @@ const FindWalletProductTable = ({ wallets }: { wallets: Wallet[] }) => {
7683
}, [wallets, filters, activeFilterKeys])
7784

7885
const personasWalletCounts = useMemo(() => {
79-
if (!Array.isArray(wallets)) return []
80-
81-
return walletPersonas.map((persona) => {
82-
const trueKeys = Object.keys(persona.presetFilters).filter(
83-
(key) => persona.presetFilters[key] === true
84-
)
85-
86-
return wallets.reduce(
87-
(count, wallet) =>
88-
count + (trueKeys.every((key) => wallet[key]) ? 1 : 0),
89-
0
90-
)
91-
})
92-
}, [wallets, walletPersonas])
86+
return walletPersonas.map((persona) =>
87+
getFilteredWalletsCount(persona.presetFilters as WalletFilter)
88+
)
89+
}, [walletPersonas])
9390

9491
// Reset filters
9592
const resetFilters = () => {

src/components/ProductTable/MobileFilters.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ interface MobileFiltersProps {
2525
filters: FilterOption[]
2626
setFilters: React.Dispatch<React.SetStateAction<FilterOption[]>>
2727
presets: TPresetFilters
28+
presetFiltersCounts?: number[]
2829
activePresets: number[]
2930
handleSelectPreset: (index: number) => void
3031
dataCount: number
@@ -39,6 +40,7 @@ const MobileFilters = ({
3940
filters,
4041
setFilters,
4142
presets,
43+
presetFiltersCounts,
4244
activePresets,
4345
handleSelectPreset,
4446
dataCount,
@@ -84,6 +86,7 @@ const MobileFilters = ({
8486
<div className="flex-1 overflow-y-auto">
8587
<PresetFilters
8688
presets={presets}
89+
presetFiltersCounts={presetFiltersCounts}
8790
activePresets={activePresets}
8891
handleSelectPreset={handleSelectPreset}
8992
showMobileSidebar={true}

src/components/ProductTable/PresetFilters.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ export interface PresetFiltersProps {
77
activePresets: number[]
88
handleSelectPreset: (index: number) => void
99
showMobileSidebar?: boolean
10-
presetFilterCounts?: number[]
10+
presetFiltersCounts?: number[]
1111
}
1212

1313
const PresetFilters = ({
1414
presets,
1515
activePresets,
1616
handleSelectPreset,
1717
showMobileSidebar = false,
18-
presetFilterCounts,
18+
presetFiltersCounts,
1919
}: PresetFiltersProps) => {
2020
const colors = {
2121
text: [
@@ -97,9 +97,9 @@ const PresetFilters = ({
9797
)}
9898
>
9999
{preset.title}{" "}
100-
{presetFilterCounts?.[idx] && (
100+
{presetFiltersCounts?.[idx] && (
101101
<span className="font-normal">
102-
({presetFilterCounts[idx]})
102+
({presetFiltersCounts[idx]})
103103
</span>
104104
)}
105105
</h3>

src/components/ProductTable/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ const ProductTable = <T,>({
269269
presets={presetFilters}
270270
activePresets={activePresets}
271271
handleSelectPreset={handleSelectPreset}
272-
presetFilterCounts={presetFiltersCounts}
272+
presetFiltersCounts={presetFiltersCounts}
273273
/>
274274
) : (
275275
<></>
@@ -281,6 +281,7 @@ const ProductTable = <T,>({
281281
filters={filters}
282282
setFilters={setFilters}
283283
presets={presetFilters}
284+
presetFiltersCounts={presetFiltersCounts}
284285
activePresets={activePresets}
285286
handleSelectPreset={handleSelectPreset}
286287
dataCount={data.length}

src/lib/utils/wallets.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,3 +195,13 @@ export const getLanguageCountWalletsData = (locale: string) => {
195195
languageCountWalletsData.sort((a, b) => a.name.localeCompare(b.name))
196196
return languageCountWalletsData
197197
}
198+
199+
export const getFilteredWalletsCount = (filters: WalletFilter) => {
200+
return walletsData.filter((wallet) => {
201+
const activeFilters = Object.entries(filters).filter(
202+
([_, value]) => value === true
203+
)
204+
205+
return activeFilters.every(([feature]) => wallet[feature] === true)
206+
}).length
207+
}

0 commit comments

Comments
 (0)