Skip to content

Commit c719e45

Browse files
fix deselcting filters
1 parent 14d54fe commit c719e45

File tree

4 files changed

+37
-8
lines changed

4 files changed

+37
-8
lines changed

src/components/FindWallet/MobileFiltersMenu.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ import WalletFilterSidebar, {
2626
type MobileFiltersMenuProps = WalletFilterSidebarProps & {
2727
showMobileSidebar: boolean
2828
setFilters: React.Dispatch<React.SetStateAction<WalletFilter>>
29-
selectedPersona: number
30-
setSelectedPersona: React.Dispatch<React.SetStateAction<number>>
29+
selectedPersona: number[]
30+
setSelectedPersona: React.Dispatch<React.SetStateAction<number[]>>
3131
onOpen: () => void
3232
onClose: () => void
3333
totalWallets: number

src/components/FindWallet/WalletFilterPersona.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ const WalletFilterPersona = ({
7373
const newFilters = computeFilters(newSelectedPersonas, personas)
7474
setFilters((prevFilters) => {
7575
const combinedFilters = Object.fromEntries(
76-
Object.entries(prevFilters).map(([key, value]) => {
76+
Object.entries(prevFilters).map(([key]) => {
7777
return [key, newFilters[key]]
7878
})
7979
)

src/hooks/useWalletPersonas.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ export const useWalletPersonas = () => {
2222
hardware_support: false,
2323
rpc_importing: false,
2424
nft_support: false,
25-
connect_to_dapps: true,
25+
connect_to_dapps: false,
2626
staking: false,
2727
swaps: false,
28-
layer_2: true,
28+
layer_2: false,
2929
gas_fee_customization: false,
3030
ens_support: false,
31-
erc_20_support: true,
32-
buy_crypto: true,
31+
erc_20_support: false,
32+
buy_crypto: false,
3333
withdraw_crypto: false,
3434
multisig: false,
3535
social_recovery: false,

src/pages/wallets/find-wallet.tsx

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ import {
4444
WALLETS_FILTERS_DEFAULT,
4545
} from "@/lib/constants"
4646

47+
import { useWalletPersonas } from "../../hooks/useWalletPersonas"
48+
4749
import { WalletSupportedLanguageContext } from "@/contexts/WalletSupportedLanguageContext"
4850
import { useWalletTable } from "@/hooks/useWalletTable"
4951
import HeroImage from "@/public/images/wallets/wallet-hero.png"
@@ -106,7 +108,7 @@ const FindWalletPage = ({
106108
}: InferGetStaticPropsType<typeof getStaticProps>) => {
107109
const { pathname } = useRouter()
108110
const { t } = useTranslation("page-wallets-find-wallet")
109-
111+
const personas = useWalletPersonas()
110112
const resetWalletFilter = useRef(() => {})
111113

112114
const [filters, setFilters] = useState(WALLETS_FILTERS_DEFAULT)
@@ -122,10 +124,36 @@ const FindWalletPage = ({
122124
walletCardData,
123125
} = useWalletTable({ filters, supportedLanguage, t, walletData: wallets })
124126

127+
const updatePersonaUponFilterChange = (filters) => {
128+
const newSelectedPersona: number[] = []
129+
const trueFilters = Object.fromEntries(
130+
Object.entries(filters).filter(([_, value]) => value)
131+
)
132+
if (Object.keys(trueFilters).length === 0) {
133+
setSelectedPersona([])
134+
return
135+
}
136+
137+
for (let i = 0; i < personas.length; i++) {
138+
const truePresetFilters = Object.fromEntries(
139+
Object.entries(personas[i].presetFilters).filter(([_, value]) => value)
140+
)
141+
const isPersonaSelected = Object.entries(truePresetFilters).every(
142+
([key, value]) => trueFilters[key] === value
143+
)
144+
if (isPersonaSelected) {
145+
newSelectedPersona.push(i)
146+
}
147+
}
148+
149+
setSelectedPersona(newSelectedPersona)
150+
}
151+
125152
const updateFilterOption = (key) => {
126153
const updatedFilters = { ...filters }
127154
updatedFilters[key] = !updatedFilters[key]
128155
setFilters(updatedFilters)
156+
updatePersonaUponFilterChange(updatedFilters)
129157
}
130158

131159
const updateFilterOptions = (keys, value) => {
@@ -134,6 +162,7 @@ const FindWalletPage = ({
134162
updatedFilters[key] = value
135163
}
136164
setFilters(updatedFilters)
165+
updatePersonaUponFilterChange(updatedFilters)
137166
}
138167

139168
const resetFilters = () => {

0 commit comments

Comments
 (0)