diff --git a/.storybook/i18next.ts b/.storybook/i18next.ts index 1470c134a11..a2fbde38908 100644 --- a/.storybook/i18next.ts +++ b/.storybook/i18next.ts @@ -23,7 +23,9 @@ export const ns = [ "page-developers-index", "page-what-is-ethereum", "page-upgrades-index", + "page-wallets-find-wallet", "page-developers-docs", + "table", ] as const const supportedLngs = Object.keys(baseLocales) diff --git a/package.json b/package.json index f72353b5013..bb54bff3442 100644 --- a/package.json +++ b/package.json @@ -45,12 +45,14 @@ "@radix-ui/react-portal": "^1.1.1", "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.0", + "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.0", "@radix-ui/react-tabs": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.2", "@radix-ui/react-visually-hidden": "^1.1.0", "@socialgouv/matomo-next": "^1.8.0", + "@tanstack/react-table": "^8.19.3", "chart.js": "^4.4.2", "chartjs-plugin-datalabels": "^2.2.0", "class-variance-authority": "^0.7.0", @@ -87,6 +89,7 @@ "tailwind-variants": "^0.2.1", "tailwindcss-animate": "^1.0.7", "usehooks-ts": "^3.1.0", + "vaul": "^1.0.0", "yaml-loader": "^0.8.0" }, "devDependencies": { diff --git a/src/components/CentralizedExchanges/index.tsx b/src/components/CentralizedExchanges/index.tsx index c95538365e5..555e3c6bdd1 100644 --- a/src/components/CentralizedExchanges/index.tsx +++ b/src/components/CentralizedExchanges/index.tsx @@ -5,13 +5,13 @@ import type { ChildOnlyProp, Lang } from "@/lib/types" import CardList from "@/components/CardList" import Emoji from "@/components/Emoji" -import Select from "@/components/ui/Select" +import InlineLink from "@/components/ui/Link" import { getLocaleTimestamp } from "@/lib/utils/time" import { WEBSITE_EMAIL } from "@/lib/constants" -import InlineLink from "../ui/Link" +import Select from "../Select" import { useCentralizedExchanges } from "@/hooks/useCentralizedExchanges" diff --git a/src/components/DataTable/index.tsx b/src/components/DataTable/index.tsx new file mode 100644 index 00000000000..d8ee7490d14 --- /dev/null +++ b/src/components/DataTable/index.tsx @@ -0,0 +1,123 @@ +import { Fragment, useEffect, useRef, useState } from "react" +import { + ColumnDef, + flexRender, + getCoreRowModel, + getExpandedRowModel, + useReactTable, +} from "@tanstack/react-table" + +import { + Table, + TableBody, + TableCell, + TableHeader, + TableProps, + TableRow, +} from "@/components/ui/Table" + +type DataTableProps = TableProps & { + columns: ColumnDef[] + data: TData[] + subComponent?: React.FC + noResultsComponent?: React.FC +} + +const DataTable = ({ + columns, + data, + subComponent, + noResultsComponent, + ...props +}: DataTableProps) => { + const [isVisible, setIsVisible] = useState(true) + const [currentData, setCurrentData] = useState(data) + const previousDataRef = useRef(data) + + const table = useReactTable({ + data: currentData, + columns, + getRowCanExpand: () => true, + getCoreRowModel: getCoreRowModel(), + getExpandedRowModel: getExpandedRowModel(), + }) + + useEffect(() => { + if (JSON.stringify(data) !== JSON.stringify(previousDataRef.current)) { + setIsVisible(false) + const timer = setTimeout(() => { + setCurrentData(data) + setIsVisible(true) + previousDataRef.current = data + }, 25) // Adjust this value to match your CSS transition duration + + return () => clearTimeout(timer) + } + }, [data]) + + return ( + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext() + )} + + ) + })} + + ))} + + + {table.getRowModel().rows?.length ? ( + table.getRowModel().rows.map((row, idx) => ( + + { + // Prevent expanding the wallet more info section when clicking on the "Visit website" button + if (!(e.target as Element).matches("a, a svg")) { + row.getToggleExpandedHandler()() + } + }} + > + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + {row.getIsExpanded() && ( + + + {subComponent && subComponent(row.original, idx)} + + + )} + + )) + ) : ( + + + {noResultsComponent && noResultsComponent({})} + + + )} + +
+ ) +} + +export default DataTable diff --git a/src/components/FindWallet/LanguageSupportFilter.tsx b/src/components/FindWallet/LanguageSupportFilter.tsx deleted file mode 100644 index 36f3c567e29..00000000000 --- a/src/components/FindWallet/LanguageSupportFilter.tsx +++ /dev/null @@ -1,152 +0,0 @@ -import { ReactNode, useContext } from "react" -import { useRouter } from "next/router" -import { useTranslation } from "next-i18next" -import { - AccordionButton, - AccordionIcon, - AccordionItem, - AccordionPanel, - Box, - Heading, - List, - Text, -} from "@chakra-ui/react" - -import Select from "@/components/ui/Select" - -import { getLanguageCodeName } from "@/lib/utils/intl" -import { trackCustomEvent } from "@/lib/utils/matomo" -import { - getAllWalletsLanguages, - getWalletsTopLanguages, -} from "@/lib/utils/wallets" - -import { WalletSupportedLanguageContext } from "@/contexts/WalletSupportedLanguageContext" - -export const LanguageSupportFilter = () => { - const { t } = useTranslation("page-wallets-find-wallet") - const { locale } = useRouter() - - // Context API - const { supportedLanguage, setSupportedLanguage } = useContext( - WalletSupportedLanguageContext - ) - - const allWalletsLanguages = getAllWalletsLanguages(locale!) - const allWalletsLanguagesOptions = allWalletsLanguages!.map( - ({ langCode, langName }) => { - return { - label: langName, - value: langCode, - } - } - ) - - const handleLanguageFilterSelectChange = (selectedLanguage) => { - if (!selectedLanguage) return - - setSupportedLanguage(selectedLanguage.value) - - trackCustomEvent({ - eventCategory: "WalletFilterSidebar", - eventAction: `Language search`, - eventName: getLanguageCodeName(selectedLanguage.value, locale!), - }) - } - - const handleTopLanguageClick = (languageCode: string) => { - setSupportedLanguage(languageCode) - - trackCustomEvent({ - eventCategory: "WalletFilterSidebar", - eventAction: `Language search`, - eventName: getLanguageCodeName(languageCode, locale!), - }) - } - - return ( - - {({ isExpanded }) => ( - <> - - - - {t("page-find-wallet-languages-supported")} - - - - - - - - { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: "Language search", + eventName: getLanguageCodeName(e, locale!), + }) + updateFilterState(filterIndex, itemIndex, e) + }} + > + + + + + {languageCountWalletsData.map((language) => { + return ( + + {`${language.name} (${language.count})`} + + ) + })} + + +

+ {t("page-find-wallet-popular-languages")} +

+
+ {countSortedLanguagesCount.slice(0, 5).map((language, index, array) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: "Language search", + eventName: getLanguageCodeName(language.langCode, locale!), + }) + updateFilterState(filterIndex, itemIndex, language.langCode) + }} + > + {`${language.name} (${language.count})${index < array.length - 1 ? ", " : ""}`} + + ) + })} +
+ + ) +} + +export default FindWalletLanguageSelectInput diff --git a/src/components/FindWalletProductTable/FindWalletProductTable.stories.tsx b/src/components/FindWalletProductTable/FindWalletProductTable.stories.tsx new file mode 100644 index 00000000000..7a315b20fb2 --- /dev/null +++ b/src/components/FindWalletProductTable/FindWalletProductTable.stories.tsx @@ -0,0 +1,139 @@ +import { Meta, StoryObj } from "@storybook/react" + +import FindWalletProductTable from "@/components/FindWalletProductTable" + +import OneInchWalletImage from "@/public/images/wallets/1inch.png" +import FoxWalletImage from "@/public/images/wallets/foxwallet.png" + +const walletsData = [ + { + last_updated: "2024-08-30", + name: "1inch Wallet", + image: OneInchWalletImage, + twBackgroundColor: "bg-[#2F8AF5]", + twGradiantBrandColor: "from-[#2F8AF5]", + url: "https://1inch.io/wallet", + active_development_team: true, + languages_supported: [ + "en", + "ru", + "zh", + "fr", + "de", + "hi", + "id", + "ja", + "ko", + "pt", + "es", + "tr", + "vi", + ], + twitter: "https://x.com/1inchwallet", + discord: "https://discord.com/invite/1inch", + reddit: "https://www.reddit.com/r/1inch/", + telegram: "https://t.me/OneInchNetwork", + ios: true, + android: true, + linux: false, + windows: false, + macOS: false, + firefox: false, + chromium: false, + hardware: false, + open_source: false, + repo_url: "https://github.com/1inch", + non_custodial: true, + security_audit: [ + "https://blog.1inch.io/the-1inch-wallet-security-explained/", + ], + scam_protection: true, + hardware_support: true, + rpc_importing: false, + nft_support: true, + connect_to_dapps: true, + staking: false, + swaps: true, + layer_2: true, + gas_fee_customization: true, + ens_support: true, + erc_20_support: true, + buy_crypto: true, + withdraw_crypto: true, + multisig: false, + social_recovery: false, + onboard_documentation: + "https://help.1inch.io/en/collections/2897068-1inch-wallet", + documentation: "", + }, + { + last_updated: "2022-06-24", + name: "FoxWallet", + image: FoxWalletImage, + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", + url: "https://foxwallet.com/en", + active_development_team: true, + languages_supported: ["en", "zh", "uk", "ru", "es", "id"], + twitter: "https://twitter.com/FoxWallet", + discord: "https://discord.com/invite/JVjVbe3Zth", + reddit: "", + telegram: "https://t.me/FoxWallet_EN", + ios: true, + android: true, + linux: false, + windows: false, + macOS: false, + firefox: false, + chromium: false, + hardware: false, + open_source: false, + repo_url: "", + non_custodial: true, + security_audit: ["https://www.certik.com/projects/fox-wallet"], + scam_protection: false, + hardware_support: false, + rpc_importing: true, + nft_support: true, + connect_to_dapps: true, + staking: false, + swaps: false, + layer_2: true, + gas_fee_customization: true, + ens_support: false, + erc_20_support: true, + buy_crypto: false, + withdraw_crypto: false, + multisig: false, + social_recovery: false, + onboard_documentation: "https://hc.foxwallet.com/docs/", + documentation: "https://hc.foxwallet.com/docs/faq", + }, +] + +const meta = { + title: "Pages / Special cases / Find Wallet Product Table", + component: FindWalletProductTable, + decorators: [ + (Story) => ( +
+ +
+ ), + ], +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const WalletProductTableStory: Story = { + args: { + wallets: walletsData.map((wallet) => { + return { ...wallet, supportedLanguages: wallet.languages_supported } + }), + }, + render: (args) => { + return + }, +} diff --git a/src/components/FindWalletProductTable/FindWalletsNoResults.tsx b/src/components/FindWalletProductTable/FindWalletsNoResults.tsx new file mode 100644 index 00000000000..bbb487f559f --- /dev/null +++ b/src/components/FindWalletProductTable/FindWalletsNoResults.tsx @@ -0,0 +1,41 @@ +import { useTranslation } from "next-i18next" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import { Button } from "../ui/buttons/Button" + +const FindWalletsNoResults = ({ resetFilters }) => { + const { t } = useTranslation("page-wallets-find-wallet") + + // Track empty state + trackCustomEvent({ + eventCategory: "Wallet_empty_state", + eventAction: "reset", + eventName: "triggered", + }) + + const handleClick = () => { + resetFilters() + trackCustomEvent({ + eventCategory: "Wallet_empty_state", + eventAction: "reset", + eventName: "reset_button_clicked", + }) + } + + return ( +
+
+

+ {t("page-find-wallet-empty-results-title")} +

+

{t("page-find-wallet-empty-results-desc")}

+ +
+
+ ) +} + +export default FindWalletsNoResults diff --git a/src/components/FindWallet/WalletTable/SupportedLanguagesTooltip.tsx b/src/components/FindWalletProductTable/SupportedLanguagesTooltip.tsx similarity index 78% rename from src/components/FindWallet/WalletTable/SupportedLanguagesTooltip.tsx rename to src/components/FindWalletProductTable/SupportedLanguagesTooltip.tsx index 4ea7abd867d..c47ee5149c4 100644 --- a/src/components/FindWallet/WalletTable/SupportedLanguagesTooltip.tsx +++ b/src/components/FindWalletProductTable/SupportedLanguagesTooltip.tsx @@ -1,5 +1,3 @@ -import { Text } from "@chakra-ui/react" - import Tooltip from "@/components/Tooltip" import { formatStringList } from "@/lib/utils/wallets" @@ -27,14 +25,7 @@ export const SupportedLanguagesTooltip = ({ return ( - - + {rest} - + + {rest} ) } diff --git a/src/components/FindWalletProductTable/WalletInfo.tsx b/src/components/FindWalletProductTable/WalletInfo.tsx new file mode 100644 index 00000000000..6791da85ae9 --- /dev/null +++ b/src/components/FindWalletProductTable/WalletInfo.tsx @@ -0,0 +1,141 @@ +import { useTranslation } from "next-i18next" +import { IoChevronDownSharp, IoChevronUpSharp } from "react-icons/io5" + +import { Wallet } from "@/lib/types" + +import { ButtonLink } from "@/components/Buttons" +import { SupportedLanguagesTooltip } from "@/components/FindWalletProductTable/SupportedLanguagesTooltip" +import { DevicesIcon, LanguagesIcon } from "@/components/icons/wallets" +import { TwImage } from "@/components/Image" +import { Badge } from "@/components/ui/badge" + +import { formatStringList, getWalletPersonas } from "@/lib/utils/wallets" + +interface WalletInfoProps { + wallet: Wallet + isExpanded: boolean +} + +const WalletInfo = ({ wallet, isExpanded }: WalletInfoProps) => { + const { t } = useTranslation("page-wallets-find-wallet") + const walletPersonas = getWalletPersonas(wallet) + const deviceLabels: Array = [] + + wallet.ios && deviceLabels.push(t("page-find-wallet-iOS")) + wallet.android && deviceLabels.push(t("page-find-wallet-android")) + wallet.linux && deviceLabels.push(t("page-find-wallet-linux")) + wallet.windows && deviceLabels.push(t("page-find-wallet-windows")) + wallet.macOS && deviceLabels.push(t("page-find-wallet-macOS")) + wallet.chromium && deviceLabels.push(t("page-find-wallet-chromium")) + wallet.firefox && deviceLabels.push(t("page-find-wallet-firefox")) + wallet.hardware && deviceLabels.push(t("page-find-wallet-hardware")) + + return ( +
+
+
+
+ +
+

{wallet.name}

+ {walletPersonas.length > 0 && ( +
+ {walletPersonas.map((persona) => ( + + {t(persona)} + + ))} +
+ )} +
+
+
+
+ +

{wallet.name}

+
+
+ {walletPersonas.length > 0 && ( +
+ {walletPersonas.map((persona) => ( + + {t(persona)} + + ))} +
+ )} +
+
+
+
+
+
+
+ {deviceLabels.length > 0 && ( +
+ +

{deviceLabels.join(" · ")}

+
+ )} +
+ +

+ {formatStringList(wallet.supportedLanguages, 5)}{" "} + +

+
+
+
+
+
+ +
+
+
+
+
+
+
+ + {t("page-find-wallet-visit-website")} + +
+
+
+ ) +} + +export default WalletInfo diff --git a/src/components/FindWalletProductTable/WalletSubComponent.tsx b/src/components/FindWalletProductTable/WalletSubComponent.tsx new file mode 100644 index 00000000000..e175a9a5868 --- /dev/null +++ b/src/components/FindWalletProductTable/WalletSubComponent.tsx @@ -0,0 +1,184 @@ +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" +import { FaDiscord, FaGlobe, FaXTwitter } from "react-icons/fa6" +import { MdInfoOutline } from "react-icons/md" + +import { FilterOption, Lang, WalletData } from "@/lib/types" + +import { useWalletFilters } from "@/components/FindWalletProductTable/hooks/useWalletFilters" +import { + GreenCheckProductGlyphIcon, + WarningProductGlyphIcon, +} from "@/components/icons/staking" +import Tooltip from "@/components/Tooltip" +import InlineLink from "@/components/ui/Link" + +import { cn } from "@/lib/utils/cn" +import { trackCustomEvent } from "@/lib/utils/matomo" +import { getLocaleFormattedDate } from "@/lib/utils/time" + +const SocialLink = (props) => ( + +) + +interface WalletSubComponentProps { + wallet: WalletData + filters: FilterOption[] + listIdx: number +} + +const WalletSubComponent = ({ + wallet, + filters, + listIdx, +}: WalletSubComponentProps) => { + const { locale } = useRouter() + + const { t } = useTranslation("page-wallets-find-wallet") + const walletFiltersOptions: FilterOption[] = useWalletFilters() + + const walletFilterDisplayOrder = [ + t("page-find-wallet-features"), + t("page-find-wallet-security"), + `${t("page-find-wallet-buy-crypto")} / ${t("page-find-wallet-sell-for-fiat")}`, + t("page-find-wallet-smart-contract"), + t("page-find-wallet-advanced"), + ] + + const walletLastUpdated = getLocaleFormattedDate( + locale as Lang, + wallet.last_updated + ) + + trackCustomEvent({ + eventCategory: "WalletMoreInfo", + eventAction: "More info wallet", + eventName: `More info ${wallet.name}`, + }) + + return ( +
+
+
+
+
+
+ {walletFilterDisplayOrder.map((filterHeader, idx) => { + const filterItem = walletFiltersOptions.find( + (option) => option.title === filterHeader + )! + return ( +
+

{filterItem.title}

+
    + {filterItem.items + .sort((a, b) => + wallet[b.filterKey] === wallet[a.filterKey] + ? 0 + : wallet[b.filterKey] + ? 1 + : -1 + ) + .map((item, idx) => { + const featureColor = wallet[item.filterKey] + ? "text-body" + : "text-disabled" + // Split last word off filterLabel to force non-wrapping + // connection between the last word and info Tooltip icon + const filterLabelSplit = item.filterLabel.split(" ") + const filterLabelLastWord = filterLabelSplit.pop() + const filterLabelRoot = filterLabelSplit.join(" ") + return ( +
  • + + {wallet[item.filterKey] ? ( + + ) : ( + + )} + +

    + {filterLabelRoot && `${filterLabelRoot} `} + + {filterLabelLastWord} + + {item.description} +

    + } + > + + + +

    +
  • + ) + })} +
+
+ ) + })} +
+
+

+ {t("page-find-wallet-social-links")} +

+
+ + + + {wallet.discord && ( + + + + )} + {wallet.twitter && ( + + + + )} +
+
+

{`${wallet.name} ${t("page-find-wallet-info-updated-on")} ${walletLastUpdated}`}

+
+
+ ) +} + +export default WalletSubComponent diff --git a/src/components/FindWalletProductTable/hooks/useWalletColumns.tsx b/src/components/FindWalletProductTable/hooks/useWalletColumns.tsx new file mode 100644 index 00000000000..7f5c3655af5 --- /dev/null +++ b/src/components/FindWalletProductTable/hooks/useWalletColumns.tsx @@ -0,0 +1,27 @@ +"use client" + +import { ColumnDef } from "@tanstack/react-table" + +import { Wallet } from "@/lib/types" + +import WalletInfo from "@/components/FindWalletProductTable/WalletInfo" +import { TableHead } from "@/components/ui/Table" + +// This type is used to define the shape of our data. +// You can use a Zod schema here if you want. +export type WalletColumns = { + id: string + walletInfo: Wallet +} + +export const useWalletColumns: ColumnDef[] = [ + { + id: "walletInfo", + header: () => , + cell: ({ row }) => { + return ( + + ) + }, + }, +] diff --git a/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx b/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx new file mode 100644 index 00000000000..9fe7dd485e1 --- /dev/null +++ b/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx @@ -0,0 +1,943 @@ +import { useTranslation } from "next-i18next" + +import { FilterOption } from "@/lib/types" + +import FindWalletLanguageSelectInput from "@/components/FindWalletProductTable/FindWalletLanguageSelectInput" +import { + BrowserIcon, + BuyCryptoIcon, + ConnectDappsIcon, + DesktopIcon, + ENSSupportIcon, + ERC20SupportIcon, + GasFeeCustomizationIcon, + HardwareIcon, + HardwareSupportIcon, + Layer2Icon, + MobileIcon, + MultisigIcon, + NFTSupportIcon, + NonCustodialIcon, + OpenSourceWalletIcon, + RPCImportingIcon, + SocialRecoverIcon, + StakingIcon, + SwapIcon, + WithdrawCryptoIcon, +} from "@/components/icons/wallets" +import CheckboxFilterInput from "@/components/ProductTable/FilterInputs/CheckboxFilterInput" +import SwitchFilterInput from "@/components/ProductTable/FilterInputs/SwitchFilterInput" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import { DEFAULT_LOCALE } from "@/lib/constants" + +export const useWalletFilters = (): FilterOption[] => { + const { t } = useTranslation("page-wallets-find-wallet") + return [ + { + title: t("page-find-wallet-device"), + showFilterOption: true, + items: [ + { + filterKey: "mobile", + filterLabel: t("page-find-wallet-mobile"), + description: "", + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: "mobile", + eventName: `mobile ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [ + { + filterKey: "android", + filterLabel: t("page-find-wallet-android"), + description: "", + inputState: false, + input: ( + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState + ) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-android")}`, + eventName: `android ${newInputState}`, + }) + updateFilterState( + filterIndex, + itemIndex, + newInputState, + optionIndex + ) + }} + /> + ) + }, + }, + { + filterKey: "ios", + filterLabel: t("page-find-wallet-iOS"), + description: "", + inputState: false, + input: ( + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState + ) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-iOS")}`, + eventName: `iOS ${newInputState}`, + }) + updateFilterState( + filterIndex, + itemIndex, + newInputState, + optionIndex + ) + }} + /> + ) + }, + }, + ], + }, + { + filterKey: "desktop", + filterLabel: t("page-find-wallet-desktop"), + description: "", + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-desktop")}`, + eventName: `desktop ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [ + { + filterKey: "linux", + filterLabel: t("page-find-wallet-linux"), + description: "", + inputState: false, + input: ( + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState + ) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-linux")}`, + eventName: `linux ${newInputState}`, + }) + updateFilterState( + filterIndex, + itemIndex, + newInputState, + optionIndex + ) + }} + /> + ) + }, + }, + { + filterKey: "windows", + filterLabel: t("page-find-wallet-windows"), + description: "", + inputState: false, + input: ( + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState + ) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-windows")}`, + eventName: `windows ${newInputState}`, + }) + updateFilterState( + filterIndex, + itemIndex, + newInputState, + optionIndex + ) + }} + /> + ) + }, + }, + { + filterKey: "macOS", + filterLabel: t("page-find-wallet-macOS"), + description: "", + inputState: false, + input: ( + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState + ) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-macOS")}`, + eventName: `macOS ${newInputState}`, + }) + updateFilterState( + filterIndex, + itemIndex, + newInputState, + optionIndex + ) + }} + /> + ) + }, + }, + ], + }, + { + filterKey: "browser", + filterLabel: t("page-find-wallet-browser"), + description: "", + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-browser")}`, + eventName: `browser ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [ + { + filterKey: "chromium", + filterLabel: t("page-find-wallet-chromium"), + description: "", + inputState: false, + input: ( + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState + ) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-chromium")}`, + eventName: `chromium ${newInputState}`, + }) + updateFilterState( + filterIndex, + itemIndex, + newInputState, + optionIndex + ) + }} + /> + ) + }, + }, + { + filterKey: "firefox", + filterLabel: t("page-find-wallet-firefox"), + description: "", + inputState: false, + input: ( + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState + ) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-firefox")}`, + eventName: `firefox ${newInputState}`, + }) + updateFilterState( + filterIndex, + itemIndex, + newInputState, + optionIndex + ) + }} + /> + ) + }, + }, + ], + }, + { + filterKey: "hardware", + filterLabel: t("page-find-wallet-hardware"), + description: "", + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-hardware")}`, + eventName: `hardware ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + ], + }, + { + title: t("page-find-wallet-languages-supported"), + showFilterOption: true, + items: [ + { + filterKey: "languages", + filterLabel: t("page-find-wallet-languages-supported"), + description: "", + inputState: DEFAULT_LOCALE, + ignoreFilterReset: true, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + + ) + }, + options: [], + }, + ], + }, + { + title: `${t("page-find-wallet-buy-crypto")} / ${t( + "page-find-wallet-sell-for-fiat" + )}`, + showFilterOption: true, + items: [ + { + filterKey: "buy_crypto", + filterLabel: t("page-find-wallet-buy-crypto"), + description: t("page-find-wallet-buy-crypto-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-buy-crypto")}`, + eventName: `buy_crypto ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "withdraw_crypto", + filterLabel: t("page-find-wallet-sell-for-fiat"), + description: t("page-find-wallet-sell-for-fiat-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-sell-for-fiat")}`, + eventName: `withdraw_crypto ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + ], + }, + { + title: t("page-find-wallet-features"), + showFilterOption: true, + items: [ + { + filterKey: "connect_to_dapps", + filterLabel: t("page-find-wallet-connect-to-dapps"), + description: t("page-find-wallet-connect-to-dapps-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-connect-to-dapps")}`, + eventName: `connect_to_dapps ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "nft_support", + filterLabel: t("page-find-wallet-nft-support"), + description: t("page-find-wallet-nft-support-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-nft-support")}`, + eventName: `nft_support ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "staking", + filterLabel: t("page-find-wallet-staking"), + description: t("page-find-wallet-staking-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-staking")}`, + eventName: `staking ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "layer_2", + filterLabel: t("page-find-wallet-layer-2"), + description: t("page-find-wallet-layer-2-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-layer-2")}`, + eventName: `layer_2 ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "swaps", + filterLabel: t("page-find-wallet-swaps"), + description: t("page-find-wallet-swaps-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-swaps")}`, + eventName: `swaps ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "hardware_support", + filterLabel: t("page-find-wallet-hardware-wallet-support"), + description: t("page-find-wallet-hardware-wallet-support-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-hardware-wallet-support")}`, + eventName: `hardware_support ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "ens_support", + filterLabel: t("page-find-wallet-ens-support"), + description: t("page-find-wallet-ens-support-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-ens-support")}`, + eventName: `ens_support ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + ], + }, + { + title: t("page-find-wallet-security"), + showFilterOption: true, + items: [ + { + filterKey: "open_source", + filterLabel: t("page-find-wallet-open-source"), + description: t("page-find-wallet-open-source-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-open-source")}`, + eventName: `open_source ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "non_custodial", + filterLabel: t("page-find-wallet-non-custodial"), + description: t("page-find-wallet-non-custodial-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-non-custodial")}`, + eventName: `non_custodial ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + ], + }, + { + title: t("page-find-wallet-smart-contract"), + showFilterOption: true, + items: [ + { + filterKey: "multisig", + filterLabel: t("page-find-wallet-multisig"), + description: t("page-find-wallet-multisig-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-multisig")}`, + eventName: `multisig ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "social_recovery", + filterLabel: t("page-find-wallet-social-recovery"), + description: t("page-find-wallet-social-recovery-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-social-recovery")}`, + eventName: `social_recovery ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + ], + }, + { + title: t("page-find-wallet-advanced"), + showFilterOption: true, + items: [ + { + filterKey: "rpc_importing", + filterLabel: t("page-find-wallet-rpc-importing"), + description: t("page-find-wallet-rpc-importing-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-rpc-importing")}`, + eventName: `rpc_importing ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "erc_20_support", + filterLabel: t("page-find-wallet-token-importing"), + description: t("page-find-wallet-token-importing-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `${t("page-find-wallet-token-importing")}`, + eventName: `erc_20_support ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + { + filterKey: "gas_fee_customization", + filterLabel: t("page-find-wallet-gas-fee-customization"), + description: t("page-find-wallet-gas-fee-customization-desc"), + inputState: false, + input: (filterIndex, itemIndex, inputState, updateFilterState) => { + return ( + { + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: `advanced_features`, + eventName: `gas_fee_customization ${newInputState}`, + }) + updateFilterState(filterIndex, itemIndex, newInputState) + }} + /> + ) + }, + options: [], + }, + ], + }, + { + title: "Hidden filters", + showFilterOption: false, + items: [ + { + filterKey: "new_to_crypto", + filterLabel: "New to crypto", + description: "", + inputState: false, + input: (_) => { + return <> + }, + options: [], + }, + ], + }, + ] +} diff --git a/src/hooks/useWalletPersonas.tsx b/src/components/FindWalletProductTable/hooks/useWalletPersonaPresets.tsx similarity index 98% rename from src/hooks/useWalletPersonas.tsx rename to src/components/FindWalletProductTable/hooks/useWalletPersonaPresets.tsx index 8931043e551..c09efa677e2 100644 --- a/src/hooks/useWalletPersonas.tsx +++ b/src/components/FindWalletProductTable/hooks/useWalletPersonaPresets.tsx @@ -2,7 +2,7 @@ import { useTranslation } from "next-i18next" import { WalletPersonas } from "@/lib/types" -export const useWalletPersonas = () => { +export const useWalletPersonaPresets = (): WalletPersonas[] => { const { t } = useTranslation("page-wallets-find-wallet") const personas: WalletPersonas[] = [ { diff --git a/src/components/FindWalletProductTable/index.tsx b/src/components/FindWalletProductTable/index.tsx new file mode 100644 index 00000000000..b0389658503 --- /dev/null +++ b/src/components/FindWalletProductTable/index.tsx @@ -0,0 +1,87 @@ +import { useMemo, useState } from "react" +import { useTranslation } from "next-i18next" + +import { FilterOption } from "@/lib/types" + +import { useWalletColumns } from "@/components/FindWalletProductTable/hooks/useWalletColumns" +import { useWalletFilters } from "@/components/FindWalletProductTable/hooks/useWalletFilters" +import { useWalletPersonaPresets } from "@/components/FindWalletProductTable/hooks/useWalletPersonaPresets" +import ProductTable from "@/components/ProductTable" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import FindWalletsNoResults from "./FindWalletsNoResults" +import WalletSubComponent from "./WalletSubComponent" + +const FindWalletProductTable = ({ wallets }) => { + const { t } = useTranslation("page-wallets-find-wallet") + const walletPersonas = useWalletPersonaPresets() + const walletFilterOptions = useWalletFilters() + const [filters, setFilters] = useState(walletFilterOptions) + + const filteredData = useMemo(() => { + const activeFilterKeys: string[] = [] + let selectedLanguage: string + + filters.forEach((filter) => { + filter.items.forEach((item) => { + if (item.filterKey === "languages") { + selectedLanguage = item.inputState as string + } else if (item.inputState === true && item.options.length === 0) { + activeFilterKeys.push(item.filterKey) + } + + if (item.options && item.options.length > 0) { + item.options.forEach((option) => { + if (option.inputState === true) { + activeFilterKeys.push(option.filterKey) + } + }) + } + }) + }) + + return wallets + .filter((item) => { + return item.languages_supported.includes(selectedLanguage) + }) + .filter((item) => { + return activeFilterKeys.every((key) => item[key]) + }) + }, [wallets, filters]) + + // Reset filters + const resetFilters = () => { + setFilters(walletFilterOptions) + trackCustomEvent({ + eventCategory: "WalletFilterSidebar", + eventAction: "Reset button", + eventName: "reset_click", + }) + } + + return ( + ( + + )} + noResultsComponent={() => ( + + )} + mobileFiltersLabel={t("page-find-wallet-see-wallets")} + /> + ) +} + +export default FindWalletProductTable diff --git a/src/components/Layer2/Layer2Onboard.tsx b/src/components/Layer2/Layer2Onboard.tsx index e9864e9b492..e9cf30dc26f 100644 --- a/src/components/Layer2/Layer2Onboard.tsx +++ b/src/components/Layer2/Layer2Onboard.tsx @@ -27,7 +27,7 @@ import { ButtonLink } from "../Buttons" import InlineLink from "../Link" import OldHeading from "../OldHeading" import Text from "../OldText" -import Select, { SelectOnChange } from "../ui/Select" +import Select, { SelectOnChange } from "../Select" const Flex50 = (props: ChildOnlyProp) => ( diff --git a/src/components/ProductTable/FilterInputs/CheckboxFilterInput.tsx b/src/components/ProductTable/FilterInputs/CheckboxFilterInput.tsx new file mode 100644 index 00000000000..f9f8d244e11 --- /dev/null +++ b/src/components/ProductTable/FilterInputs/CheckboxFilterInput.tsx @@ -0,0 +1,40 @@ +import { FilterInputState } from "@/lib/types" + +import Checkbox from "@/../tailwind/ui/Checkbox" + +interface CheckboxFilterInputProps { + label: string + filterIndex: number + itemIndex: number + optionIndex: number + inputState: FilterInputState + updateFilterState: ( + filterIndex: number, + itemIndex: number, + newInputState: boolean, + optionIndex: number + ) => void +} + +const CheckboxFilterInput = ({ + label, + filterIndex, + itemIndex, + optionIndex, + inputState, + updateFilterState, +}: CheckboxFilterInputProps) => { + return ( +
+ { + updateFilterState(filterIndex, itemIndex, e as boolean, optionIndex) + }} + /> +

{label}

+
+ ) +} + +export default CheckboxFilterInput diff --git a/src/components/ProductTable/FilterInputs/SwitchFilterInput.tsx b/src/components/ProductTable/FilterInputs/SwitchFilterInput.tsx new file mode 100644 index 00000000000..8deeba46292 --- /dev/null +++ b/src/components/ProductTable/FilterInputs/SwitchFilterInput.tsx @@ -0,0 +1,51 @@ +import type { IconType } from "react-icons" + +import { FilterInputState } from "@/lib/types" + +import Switch from "@/../tailwind/ui/Switch" + +interface SwitchFilterInputProps { + Icon?: IconType + label: string + description?: string + filterIndex: number + itemIndex: number + inputState: FilterInputState + updateFilterState: ( + filterIndex: number, + itemIndex: number, + newInputState: boolean + ) => void +} + +const SwitchFilterInput = ({ + Icon, + label, + description, + filterIndex, + itemIndex, + inputState, + updateFilterState, +}: SwitchFilterInputProps) => { + return ( + <> +
+
+
+ {Icon && } +
+

{label}

+
+ { + updateFilterState(filterIndex, itemIndex, e as boolean) + }} + /> +
+

{description}

+ + ) +} + +export default SwitchFilterInput diff --git a/src/components/ProductTable/Filters.tsx b/src/components/ProductTable/Filters.tsx new file mode 100644 index 00000000000..4dfc33ba1b7 --- /dev/null +++ b/src/components/ProductTable/Filters.tsx @@ -0,0 +1,149 @@ +import { useTranslation } from "next-i18next" +import { BsArrowCounterclockwise } from "react-icons/bs" + +import { FilterInputState, FilterOption } from "@/lib/types" + +import { Button } from "@/components/ui/buttons/Button" + +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/../tailwind/ui/accordion" + +interface PresetFiltersProps { + filters: FilterOption[] + activeFiltersCount: number + setFilters: (filterOptions: FilterOption[]) => void + resetFilters: () => void +} + +const Filters = ({ + filters, + setFilters, + resetFilters, + activeFiltersCount, +}: PresetFiltersProps) => { + const { t } = useTranslation("table") + + const updateFilterState = ( + filterIndex: number, + itemIndex: number, + newInputState: FilterInputState, + optionIndex?: number + ) => { + const updatedFilters = filters.map((filter, idx) => { + if (idx !== filterIndex) return filter + + const updatedItems = filter.items.map((item, i) => { + if (i === itemIndex) { + if (typeof optionIndex !== "undefined") { + const updatedOptions = item.options.map((option, j) => { + if (j === optionIndex) { + return { + ...option, + inputState: newInputState, + } + } + return option + }) + return { + ...item, + options: updatedOptions, + } + } + return { + ...item, + inputState: newInputState, + options: item.options.map((option) => { + return { + ...option, + inputState: newInputState, + } + }), + } + } + return item + }) + return { + ...filter, + items: updatedItems, + } + }) + setFilters(updatedFilters) + } + + return ( +
+
+

+ {t("table-filters")} ({activeFiltersCount}) +

+ +
+ `item ${idx}`)} + > + {filters.map((filter, filterIndex) => { + if (filter.showFilterOption) { + return ( + + +

+ {filter.title} +

+
+ + {filter.items.map((item, itemIndex) => { + return ( +
+ {item.input( + filterIndex, + itemIndex, + item.inputState, + updateFilterState + )} + {item.inputState === true && item.options.length ? ( +
+ {item.options.map((option, optionIndex) => { + return option.input( + filterIndex, + itemIndex, + optionIndex, + option.inputState, + updateFilterState + ) + })} +
+ ) : null} +
+ ) + })} +
+
+ ) + } + })} +
+
+ ) +} + +export default Filters diff --git a/src/components/ProductTable/MobileFilters.tsx b/src/components/ProductTable/MobileFilters.tsx new file mode 100644 index 00000000000..86f9fd5a366 --- /dev/null +++ b/src/components/ProductTable/MobileFilters.tsx @@ -0,0 +1,114 @@ +import React from "react" +import { useTranslation } from "next-i18next" +import { BsArrowCounterclockwise } from "react-icons/bs" +import { IoClose } from "react-icons/io5" // Add this import + +import { FilterOption, TPresetFilters } from "@/lib/types" + +import { FilterBurgerIcon } from "@/components/icons/wallets" +import Filters from "@/components/ProductTable/Filters" +import PresetFilters from "@/components/ProductTable/PresetFilters" +import { + Drawer, + DrawerClose, + DrawerContent, + DrawerFooter, + DrawerTrigger, +} from "@/components/ui/drawer" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import { Button } from "../ui/buttons/Button" + +interface MobileFiltersProps { + filters: FilterOption[] + setFilters: React.Dispatch> + presets: TPresetFilters + activePresets: number[] + handleSelectPreset: (index: number) => void + dataCount: number + activeFiltersCount: number + mobileFiltersOpen: boolean + setMobileFiltersOpen: React.Dispatch> + resetFilters: () => void + mobileFiltersLabel: string +} + +const MobileFilters = ({ + filters, + setFilters, + presets, + activePresets, + handleSelectPreset, + dataCount, + activeFiltersCount, + mobileFiltersOpen, + setMobileFiltersOpen, + resetFilters, + mobileFiltersLabel, +}: MobileFiltersProps) => { + const { t } = useTranslation("table") + + return ( + { + setMobileFiltersOpen(open) + trackCustomEvent({ + eventCategory: "MobileFilterToggle", + eventAction: "Tap MobileFilterToggle", + eventName: `show mobile filters ${open}`, + }) + }} + > + + + + +
+ + + +
+
+ + +
+ +
+
+ +
+ + + +
+
+
+
+ ) +} + +export default MobileFilters diff --git a/src/components/ProductTable/PresetFilters.tsx b/src/components/ProductTable/PresetFilters.tsx new file mode 100644 index 00000000000..ca6ed2023dc --- /dev/null +++ b/src/components/ProductTable/PresetFilters.tsx @@ -0,0 +1,92 @@ +import { useTranslation } from "next-i18next" + +import type { TPresetFilters } from "@/lib/types" + +import { cn } from "@/lib/utils/cn" + +export interface PresetFiltersProps { + presets: TPresetFilters + activePresets: number[] + handleSelectPreset: (index: number) => void + showMobileSidebar?: boolean +} + +const PresetFilters = ({ + presets, + activePresets, + handleSelectPreset, + showMobileSidebar = false, +}: PresetFiltersProps) => { + const { t } = useTranslation("table") + + return ( +
+

+ {t("table-what-are-you-looking-for")} +

+
+ {presets.map((preset, idx) => { + return ( +
+ +
+ ) + })} +
+
+ ) +} + +export default PresetFilters diff --git a/src/components/ProductTable/index.tsx b/src/components/ProductTable/index.tsx new file mode 100644 index 00000000000..0cac8278137 --- /dev/null +++ b/src/components/ProductTable/index.tsx @@ -0,0 +1,313 @@ +import { + Dispatch, + FC, + SetStateAction, + useEffect, + useMemo, + useState, +} from "react" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" +import { ColumnDef } from "@tanstack/react-table" + +import type { + FilterOption, + ProductTableColumnDefs, + ProductTableRow, + TPresetFilters, +} from "@/lib/types" + +import Table from "@/components/DataTable" +import Filters from "@/components/ProductTable/Filters" +import MobileFilters from "@/components/ProductTable/MobileFilters" +import PresetFilters from "@/components/ProductTable/PresetFilters" +import { Button } from "@/components/ui/buttons/Button" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +interface ProductTableProps { + columns: ColumnDef[] + data: TData[] + allDataLength: number + filters: FilterOption[] + presetFilters: TPresetFilters + resetFilters: () => void + setFilters: Dispatch> + subComponent?: FC + noResultsComponent?: React.FC + mobileFiltersLabel: string +} + +const ProductTable = ({ + columns, + data, + allDataLength, + filters, + presetFilters, + resetFilters, + setFilters, + subComponent, + noResultsComponent, + mobileFiltersLabel, +}: ProductTableProps) => { + const router = useRouter() + const { t } = useTranslation("table") + const [activePresets, setActivePresets] = useState([]) + const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false) + + // Update filters based on router query + useEffect(() => { + if (Object.keys(router.query).length > 0) { + const updatedFilters = filters.map((filter) => ({ + ...filter, + items: filter.items.map((item) => ({ + ...item, + inputState: Object.keys(router.query).includes(item.filterKey) + ? true + : item.inputState, + options: item.options.map((option) => ({ + ...option, + inputState: Object.keys(router.query).includes(option.filterKey) + ? true + : option.inputState, + })), + })), + })) + setFilters(updatedFilters) + router.replace(router.pathname, undefined, { shallow: true }) + } + }, [router]) + + // Update or remove preset filters + const handleSelectPreset = (idx: number) => { + if (activePresets.includes(idx)) { + trackCustomEvent({ + eventCategory: "UserPersona", + eventAction: `${presetFilters[idx].title}`, + eventName: `${presetFilters[idx].title} false`, + }) + // Get filters that are true for the preset being removed + const presetToRemove = presetFilters[idx].presetFilters + const filtersToRemove = Object.keys(presetToRemove).filter( + (key) => presetToRemove[key] + ) + + // Filter out keys that are present in other active presets + const finalFiltersToRemove = filtersToRemove.filter((key) => { + return !activePresets + .filter((preset) => preset !== idx) + .some((preset) => presetFilters[preset].presetFilters[key]) + }) + + // Set inputState of filters to false for the filters being removed + const updatedFilters = filters.map((filter) => ({ + ...filter, + items: filter.items.map((item) => ({ + ...item, + inputState: finalFiltersToRemove.includes(item.filterKey) + ? false + : item.inputState, + options: item.options.map((option) => ({ + ...option, + inputState: finalFiltersToRemove.includes(option.filterKey) + ? false + : option.inputState, + })), + })), + })) + setFilters(updatedFilters) + + setActivePresets(activePresets.filter((item) => item !== idx)) + } else { + const newActivePresets = activePresets.concat(idx) + trackCustomEvent({ + eventCategory: "UserPersona", + eventAction: `${presetFilters[idx].title}`, + eventName: `${presetFilters[idx].title} true`, + }) + setActivePresets(newActivePresets) + + // Apply the filters for the selected preset + const combinedPresetFilters = newActivePresets.reduce((acc, idx) => { + const preset = presetFilters[idx].presetFilters + Object.keys(preset).forEach((key) => { + acc[key] = acc[key] || preset[key] + }) + return acc + }, {}) + + const updatedFilters = filters.map((filter) => ({ + ...filter, + items: filter.items.map((item) => ({ + ...item, + // Keep existing inputState if true, otherwise apply preset filter + inputState: + item.inputState || + (item.ignoreFilterReset + ? item.inputState + : combinedPresetFilters[item.filterKey] || false), + options: item.options.map((option) => ({ + ...option, + // Keep existing inputState if true, otherwise apply preset filter + inputState: + option.inputState || + (option.ignoreFilterReset + ? option.inputState + : combinedPresetFilters[option.filterKey] || false), + })), + })), + })) + setFilters(updatedFilters) + } + } + + // Update activePresets based on current filters + useEffect(() => { + const currentFilters = {} + + filters.forEach((filter) => { + filter.items.forEach((item) => { + if (item.inputState === true) { + currentFilters[item.filterKey] = item.inputState + } + + if (item.options && item.options.length > 0) { + item.options.forEach((option) => { + if (option.inputState === true) { + currentFilters[option.filterKey] = option.inputState + } + }) + } + }) + }) + + const presetsToApply = presetFilters.reduce( + (acc, preset, idx) => { + const presetFilters = preset.presetFilters + const activePresetKeys = Object.keys(presetFilters).filter( + (key) => presetFilters[key] + ) + const allItemsInCurrentFilters = activePresetKeys.every( + (key) => currentFilters[key] !== undefined + ) + + if (allItemsInCurrentFilters) { + acc.push(idx) + } + return acc + }, + [] + ) + + setActivePresets((prevActivePresets) => { + const newActivePresets = [ + ...new Set([...prevActivePresets, ...presetsToApply]), + ] + return newActivePresets.filter((idx) => presetsToApply.includes(idx)) + }) + }, [filters, presetFilters]) + + // Count active filters + const activeFiltersCount = useMemo(() => { + return filters.reduce((count, filter) => { + return ( + count + + filter.items.reduce((itemCount, item) => { + if (item.options && item.options.length > 0) { + return ( + itemCount + + item.options.filter( + (option) => + typeof option.inputState === "boolean" && option.inputState + ).length + ) + } + return ( + itemCount + + (typeof item.inputState === "boolean" && item.inputState ? 1 : 0) + ) + }, 0) + ) + }, 0) + }, [filters]) + + return ( +
+ {presetFilters.length ? ( + + ) : ( + <> + )} +
+
+
+ +
+
+ +
+
+
+ +

+ {t("table-showing")}{" "} + {data.length === allDataLength ? ( + {data.length} + ) : ( + + {data.length}/{allDataLength} + + )} +

+
+ + + + + + ) +} + +export default ProductTable diff --git a/src/components/ui/__stories__/Select.stories.tsx b/src/components/Select/Select.stories.tsx similarity index 94% rename from src/components/ui/__stories__/Select.stories.tsx rename to src/components/Select/Select.stories.tsx index 1a270d5b091..0cef01e51c7 100644 --- a/src/components/ui/__stories__/Select.stories.tsx +++ b/src/components/Select/Select.stories.tsx @@ -1,7 +1,8 @@ import { Meta, StoryObj } from "@storybook/react" -import { HStack } from "../flex" -import Select from "../Select" +import { HStack } from "../ui/flex" + +import Select from "./" const meta = { title: "Atoms / Form / Dropdown", diff --git a/src/components/ui/Select/index.tsx b/src/components/Select/index.tsx similarity index 100% rename from src/components/ui/Select/index.tsx rename to src/components/Select/index.tsx diff --git a/src/components/ui/Select/innerComponents.tsx b/src/components/Select/innerComponents.tsx similarity index 100% rename from src/components/ui/Select/innerComponents.tsx rename to src/components/Select/innerComponents.tsx diff --git a/src/components/Staking/StakingLaunchpadWidget.tsx b/src/components/Staking/StakingLaunchpadWidget.tsx index 13c1991bfb2..d2fe3706863 100644 --- a/src/components/Staking/StakingLaunchpadWidget.tsx +++ b/src/components/Staking/StakingLaunchpadWidget.tsx @@ -10,8 +10,8 @@ import Translation from "@/components/Translation" import { cn } from "@/lib/utils/cn" import { trackCustomEvent } from "@/lib/utils/matomo" +import Select, { type SelectOnChange } from "../Select" import { Flex } from "../ui/flex" -import Select, { type SelectOnChange } from "../ui/Select" type StakingDataOption = { label: string; value: string } diff --git a/src/components/icons/wallets/FilterBurgerIcon.tsx b/src/components/icons/wallets/FilterBurgerIcon.tsx deleted file mode 100644 index 87b355c8aae..00000000000 --- a/src/components/icons/wallets/FilterBurgerIcon.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { createIconBase } from "../icon-base" - -export const FilterBurgerIcon = createIconBase({ - displayName: "FilterBurgerIcon", - viewBox: "0 0 24 24", - className: "w-[24px] h-auto", - stroke: "#FF8D22", - fill: "none", - children: ( - <> - - - - - - - - - ), -}) diff --git a/src/components/icons/wallets/filter-burger-icon.svg b/src/components/icons/wallets/filter-burger-icon.svg new file mode 100644 index 00000000000..9fab5ed9f62 --- /dev/null +++ b/src/components/icons/wallets/filter-burger-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/components/icons/wallets/index.ts b/src/components/icons/wallets/index.ts index b47a53c7a38..324160b5086 100644 --- a/src/components/icons/wallets/index.ts +++ b/src/components/icons/wallets/index.ts @@ -5,7 +5,7 @@ import { DesktopIcon } from "./DesktopIcon" import { DevicesIcon } from "./DevicesIcon" import { ENSSupportIcon } from "./ENSSupportIcon" import { ERC20SupportIcon } from "./ERC20SupportIcon" -import { FilterBurgerIcon } from "./FilterBurgerIcon" +import FilterBurgerIcon from "./filter-burger-icon.svg" import { GasFeeCustomizationIcon } from "./GasFeeCustomizationIcon" import { HardwareIcon } from "./HardwareIcon" import { HardwareSupportIcon } from "./HardwareSupportIcon" diff --git a/src/components/ui/Table.tsx b/src/components/ui/Table.tsx index 8f3ef9448e2..b7255adae9d 100644 --- a/src/components/ui/Table.tsx +++ b/src/components/ui/Table.tsx @@ -10,29 +10,51 @@ import { cn } from "@/lib/utils/cn" * to provide equal cell widths. */ +const baseStyles = { + th: "text-start border-b border-body text-body normal-case align-bottom p-4", + tr: "not-[:last-of-type]:[&_th]:border-e-2 not-[:last-of-type]:[&_th]:border-e-background not-[:last-of-type]:[&_td]:border-e-2 not-[:last-of-type]:[&_td]:border-e-background", + td: "p-4", + tbody: "[&_tr]:align-top hover:[&_tr]:bg-background-highlight", +} + +const stripedTbody = "even:[&_tr]:bg-background-highlight" + const tableVariants = tv({ slots: { table: "w-full", - th: "text-start border-b border-body text-body normal-case align-bottom p-4", - tr: "not-[:last-of-type]:[&_th]:border-e-2 not-[:last-of-type]:[&_th]:border-e-background not-[:last-of-type]:[&_td]:border-e-2 not-[:last-of-type]:[&_td]:border-e-background", - td: "p-4", - tbody: "[&_tr]:align-top hover:[&_tr]:bg-background-highlight", // slot key with empty string to establish the key name for variants (TypeScript) + th: "", + tr: "", + td: "", + tbody: "", thead: "", }, variants: { variant: { simple: { thead: "bg-background-highlight", + ...baseStyles, }, "minimal-striped": { - tbody: "even:[&_tr]:bg-background-highlight", + ...baseStyles, + tbody: `${baseStyles.tbody} ${stripedTbody}`, }, "simple-striped": { + ...baseStyles, thead: "bg-background-highlight", - tbody: "even:[&_tr]:bg-background-highlight", + tbody: `${baseStyles.tbody} ${stripedTbody}`, + }, + minimal: { + ...baseStyles, + }, + product: { + table: "caption-bottom text-sm", + thead: "[&-tr:last-child]:border-0", + tbody: "&_tr:last-child]:border-0", + tr: "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", + th: "text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0", + td: "align-middle p-4 [&:has([role=checkbox])]:pr-0", }, - minimal: {}, }, }, defaultVariants: { @@ -60,24 +82,25 @@ const TableStylesContext = createContext<{ const useTableStyles = () => useContext(TableStylesContext) -const Table = React.forwardRef< - HTMLTableElement, - React.HTMLAttributes & TableVariants ->(({ className, variant, ...props }, ref) => { - const tableVariantStyles = tableVariants({ variant }) - - return ( - -
-
- - - ) -}) +export type TableProps = React.HTMLAttributes & TableVariants + +const Table = React.forwardRef( + ({ className, variant, ...props }, ref) => { + const tableVariantStyles = tableVariants({ variant }) + + return ( + +
+
+ + + ) + } +) Table.displayName = "Table" const TableHeader = React.forwardRef< diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx index 5d453ef21ca..3b14f44a3d7 100644 --- a/src/components/ui/badge.tsx +++ b/src/components/ui/badge.tsx @@ -19,6 +19,8 @@ const badgeVariants = cva( destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", outline: "text-foreground", + // TODO: remove variant once we finish the badge and tag components with DS styles + productTable: "bg-body-light text-body font-medium uppercase", }, }, defaultVariants: { diff --git a/src/components/ui/drawer.tsx b/src/components/ui/drawer.tsx new file mode 100644 index 00000000000..785f496efd3 --- /dev/null +++ b/src/components/ui/drawer.tsx @@ -0,0 +1,115 @@ +import * as React from "react" +import { Drawer as DrawerPrimitive } from "vaul" + +import { cn } from "@/lib/utils/cn" + +const Drawer = ({ + shouldScaleBackground = true, + ...props +}: React.ComponentProps) => ( + +) +Drawer.displayName = "Drawer" + +const DrawerTrigger = DrawerPrimitive.Trigger + +const DrawerPortal = DrawerPrimitive.Portal + +const DrawerClose = DrawerPrimitive.Close + +const DrawerOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName + +const DrawerContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + +)) +DrawerContent.displayName = "DrawerContent" + +const DrawerHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DrawerHeader.displayName = "DrawerHeader" + +const DrawerFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DrawerFooter.displayName = "DrawerFooter" + +const DrawerTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DrawerTitle.displayName = DrawerPrimitive.Title.displayName + +const DrawerDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DrawerDescription.displayName = DrawerPrimitive.Description.displayName + +export { + Drawer, + DrawerClose, + DrawerContent, + DrawerDescription, + DrawerFooter, + DrawerHeader, + DrawerOverlay, + DrawerPortal, + DrawerTitle, + DrawerTrigger, +} diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx new file mode 100644 index 00000000000..6e81adcb078 --- /dev/null +++ b/src/components/ui/select.tsx @@ -0,0 +1,159 @@ +import * as React from "react" +import { IoChevronDown, IoChevronUp } from "react-icons/io5" +import { MdCheck } from "react-icons/md" +import * as SelectPrimitive from "@radix-ui/react-select" + +import { cn } from "@/lib/utils/cn" + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1", + className + )} + {...props} + > + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectScrollDownButton, + SelectScrollUpButton, + SelectSeparator, + SelectTrigger, + SelectValue, +} diff --git a/src/data/wallets/wallet-data.ts b/src/data/wallets/wallet-data.ts index ea870c92917..bb5e18618d3 100644 --- a/src/data/wallets/wallet-data.ts +++ b/src/data/wallets/wallet-data.ts @@ -44,7 +44,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-22", name: "Keystone", image: KeystoneImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#FFFFFF]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://keyst.one/", active_development_team: true, languages_supported: ["en", "zh", "es", "ko"], @@ -89,7 +90,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-22", name: "Loopring wallet", image: LoopringImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#FFFFFF]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://loopring.io/#/wallet", active_development_team: true, languages_supported: ["en", "zh"], @@ -135,7 +137,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-03-07", name: "Argent", image: ArgentImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#FFFFFF]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://www.argent.xyz/", active_development_team: true, languages_supported: ["en"], @@ -180,7 +183,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-11-15", name: "Coinbase Wallet", image: CoinbaseImage, - brand_color: "#0052FF", + twBackgroundColor: "bg-[#0052FF]", + twGradiantBrandColor: "from-[#0052FF]", url: "https://www.coinbase.com/wallet", active_development_team: true, languages_supported: [ @@ -236,7 +240,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-22", name: "Frame", image: FrameImage, - brand_color: "#222021", + twBackgroundColor: "bg-[#222021]", + twGradiantBrandColor: "from-[#222021]", url: "https://frame.sh", active_development_team: true, languages_supported: ["en"], @@ -279,7 +284,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-22", name: "MetaMask", image: MetaMaskImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#FFFFFF]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://metamask.io", active_development_team: true, languages_supported: [ @@ -294,7 +300,6 @@ export const walletsData: WalletData[] = [ "de", "el", "es", - "et", "fa", "fi", "fil", @@ -303,7 +308,6 @@ export const walletsData: WalletData[] = [ "he", "hi", "hr", - "ht", "hu", "id", "it", @@ -311,7 +315,6 @@ export const walletsData: WalletData[] = [ "kn", "ko", "lt", - "lv", "ml", "mr", "pt", @@ -321,12 +324,10 @@ export const walletsData: WalletData[] = [ "sk", "sl", "sr", - "sv", "sw", "ta", "te", "th", - "tl", "tr", "uk", "vi", @@ -371,7 +372,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-01-25", name: "Safe", image: SafeImage, - brand_color: "#12ff80", + twBackgroundColor: "bg-[#12ff80]", + twGradiantBrandColor: "from-[#12ff80]", url: "https://safe.global/", active_development_team: true, languages_supported: ["en"], @@ -413,7 +415,8 @@ export const walletsData: WalletData[] = [ last_updated: "May 10, 2024", name: "Coin Wallet", image: CoinWalletImage, - brand_color: "#68c481", + twBackgroundColor: "bg-[#68c481]", + twGradiantBrandColor: "from-[#68c481]", url: "https://coin.space/", active_development_team: true, languages_supported: [ @@ -434,7 +437,6 @@ export const walletsData: WalletData[] = [ "pt-br", "ro", "sr", - "sv", "vi", "tr", "ru", @@ -443,7 +445,7 @@ export const walletsData: WalletData[] = [ "km", "ko", "ja", - "zh-cn", + "zh", ], twitter: "https://twitter.com/CoinAppWallet", discord: "", @@ -483,7 +485,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-08-23", name: "Ambire", image: AmbireImage, - brand_color: "#aa6aff", + twBackgroundColor: "bg-[#aa6aff]", + twGradiantBrandColor: "from-[#aa6aff]", url: "https://www.ambire.com", active_development_team: true, languages_supported: ["en"], @@ -526,7 +529,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-08-31", name: "imToken", image: imTokenImage, - brand_color: "#007FFF", + twBackgroundColor: "bg-[#007fff]", + twGradiantBrandColor: "from-[#007FFF]", url: "https://token.im/", active_development_team: true, languages_supported: [ @@ -580,8 +584,9 @@ export const walletsData: WalletData[] = [ last_updated: "2024-08-30", name: "1inch Wallet", image: OneInchWalletImage, - brand_color: "#2F8AF5", - url: "https://1inch.io/wallet/", + twBackgroundColor: "bg-[#2F8AF5]", + twGradiantBrandColor: "from-[#2F8AF5]", + url: "https://1inch.io/wallet", active_development_team: true, languages_supported: [ "en", @@ -639,7 +644,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-24", name: "FoxWallet", image: FoxWalletImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://foxwallet.com/en", active_development_team: true, languages_supported: ["en", "zh", "uk", "ru", "es", "id"], @@ -681,10 +687,11 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-24", name: "Pillar", image: PillarImage, - brand_color: "#7501D9", + twBackgroundColor: "bg-[#7501D9]", + twGradiantBrandColor: "from-[#7501D9]", url: "https://www.pillar.fi/", active_development_team: true, - languages_supported: ["en", "et", "bs", "zh"], + languages_supported: ["en", "bs", "zh"], twitter: "https://twitter.com/PillarWallet", discord: "https://chat.pillar.fi/", reddit: "", @@ -726,7 +733,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-24", name: "MEW wallet", image: MewImage, - brand_color: "#05C0A5", + twBackgroundColor: "bg-[#05C0A5]", + twGradiantBrandColor: "from-[#05C0A5]", url: "https://www.mewwallet.com", active_development_team: true, languages_supported: ["en", "ru", "zh"], @@ -770,7 +778,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-24", name: "Unstoppable wallet", image: UnstoppableWalletImage, - brand_color: "#ffbe43", + twBackgroundColor: "bg-[#ffbe43]", + twGradiantBrandColor: "from-[#ffbe43]", url: "https://unstoppable.money/", active_development_team: true, languages_supported: ["en", "fr", "de", "ko", "ru", "zh", "es", "tr"], @@ -814,7 +823,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-24", name: "AlphaWallet", image: AlphaWalletImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://alphawallet.com/", active_development_team: true, languages_supported: ["en", "zh", "es", "fr", "vi"], @@ -857,7 +867,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-07-24", name: "Bridge wallet", image: BridgeWalletImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://www.mtpelerin.com/bridge-wallet", active_development_team: true, languages_supported: ["en", "fr", "de", "it", "es", "pt", "zh", "zh-tw"], @@ -900,7 +911,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-09-14", name: "Torus Wallet", image: TorusImage, - brand_color: "#0364ff", + twBackgroundColor: "bg-[#0364ff]", + twGradiantBrandColor: "from-[#0364ff]", url: "https://app.tor.us", active_development_team: true, languages_supported: ["en", "de", "ja", "ko", "zh", "es"], @@ -944,7 +956,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-07-18", name: "TokenPocket", image: TokenPocketImage, - brand_color: "#2980fe", + twBackgroundColor: "bg-[#2980fe]", + twGradiantBrandColor: "from-[#2980fe]", url: "https://www.tokenpocket.pro/", active_development_team: true, languages_supported: [ @@ -1010,7 +1023,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-06-30", name: "Rainbow", image: RainbowImage, - brand_color: "#001A4D", + twBackgroundColor: "bg-[#001A4D]", + twGradiantBrandColor: "from-[#001A4D]", url: "https://rainbow.me", active_development_team: true, languages_supported: [ @@ -1067,7 +1081,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-09-01", name: "Trezor", image: TrezorImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://trezor.io/", active_development_team: true, languages_supported: ["en", "es", "cs", "de", "fr"], @@ -1110,7 +1125,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-08-21", name: "Ledger", image: LedgerImage, - brand_color: "#fb5e01", + twBackgroundColor: "bg-[#fb5e01]", + twGradiantBrandColor: "from-[#fb5e01]", url: "https://www.ledger.com/", active_development_team: true, languages_supported: [ @@ -1165,7 +1181,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-08-16", name: "Infinity Wallet", image: InfinityWalletImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://infinitywallet.io/", active_development_team: true, languages_supported: ["en", "es"], @@ -1208,7 +1225,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-08-19", name: "Exodus", image: ExodusImage, - brand_color: "#1F2033", + twBackgroundColor: "bg-[#1F2033]", + twGradiantBrandColor: "from-[#1F2033]", url: "https://exodus.com", active_development_team: true, languages_supported: ["en"], @@ -1257,22 +1275,11 @@ export const walletsData: WalletData[] = [ last_updated: "2024-07-24", name: "Rabby Wallet", image: RabbyWalletImage, - brand_color: "#FFFFFF", + twBackgroundColor: "bg-[#FFFFFF]", + twGradiantBrandColor: "from-[#FFFFFF]", url: "https://rabby.io", active_development_team: true, - languages_supported: [ - "en", - "de", - "es", - "fr", - "ja", - "pt", - "ru", - "tr", - "ua", - "zh", - "zh-hk", - ], + languages_supported: ["en", "de", "es", "fr", "ja", "pt", "ru", "tr", "zh"], twitter: "https://twitter.com/Rabby_io", discord: "https://discord.com/invite/seFBCWmUre", reddit: "", @@ -1317,7 +1324,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-09-26", name: "Zerion Wallet", image: ZerionImage, - brand_color: "#3232DC", + twBackgroundColor: "bg-[#3232DC]", + twGradiantBrandColor: "from-[#3232DC]", url: "https://zerion.io/download", active_development_team: true, languages_supported: [ @@ -1377,7 +1385,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-08-31", name: "Enkrypt", image: EnkryptImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://www.enkrypt.com", active_development_team: true, languages_supported: ["en"], @@ -1420,7 +1429,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-10-31", name: "GridPlus Lattice1", image: GridPlusImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://gridplus.io/", active_development_team: true, languages_supported: ["en"], @@ -1463,7 +1473,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-01-24", name: "Bitkeep", image: BitkeepImage, - brand_color: "#ffffff", + twBackgroundColor: "bg-[#ffffff]", + twGradiantBrandColor: "from-[#ffffff]", url: "https://www.bitkeep.com/", active_development_team: true, languages_supported: ["en"], @@ -1506,7 +1517,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-11-21", name: "BlockWallet", image: BlockWalletImage, - brand_color: "#52C200", + twBackgroundColor: "bg-[#52C200]", + twGradiantBrandColor: "from-[#52C200]", url: "https://blockwallet.io", active_development_team: true, languages_supported: ["en"], @@ -1555,7 +1567,8 @@ export const walletsData: WalletData[] = [ last_updated: "2022-01-24", name: "OneKey", image: OneKeyImage, - brand_color: "#00B812", + twBackgroundColor: "bg-[#00B812]", + twGradiantBrandColor: "from-[#00B812]", url: "https://onekey.so/", active_development_team: true, languages_supported: [ @@ -1570,7 +1583,6 @@ export const walletsData: WalletData[] = [ "fil", "hi", "it", - "mn", "pt", "ru", "th", @@ -1619,7 +1631,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-04-21", name: "Taho", image: TahoImage, - brand_color: "#FDAE49", + twBackgroundColor: "bg-[#FDAE49]", + twGradiantBrandColor: "from-[#FDAE49]", url: "https://taho.xyz", active_development_team: true, languages_supported: ["en"], @@ -1667,7 +1680,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-07-19", name: "Phantom", image: PhantomImage, - brand_color: "#AB9FF2", + twBackgroundColor: "bg-[#AB9FF2]", + twGradiantBrandColor: "from-[#AB9FF2]", url: "https://phantom.app/", active_development_team: true, languages_supported: [ @@ -1689,17 +1703,13 @@ export const walletsData: WalletData[] = [ "pt", "tr", "fil", - "my", "am", "ar", "gu", - "ha", "ig", - "pa", "sw", "ta", "te", - "yo", ], twitter: "https://twitter.com/phantom", discord: "", @@ -1742,7 +1752,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-08-29", name: "XDEFI Wallet", image: XDEFIImage, - brand_color: "#2041E0", + twBackgroundColor: "bg-[#2041E0]", + twGradiantBrandColor: "from-[#2041E0]", url: "https://www.xdefi.io", active_development_team: true, languages_supported: ["en", "fr", "de", "ru"], @@ -1788,13 +1799,13 @@ export const walletsData: WalletData[] = [ last_updated: "2023-11-02", name: "Trust Wallet", image: TrustWalletImage, - brand_color: "#0500FF", + twBackgroundColor: "bg-[#0500FF]", + twGradiantBrandColor: "from-[#0500FF]", url: "https://www.trustwallet.com/", active_development_team: true, languages_supported: [ "en", "ar", - "ba", "fr", "de", "hi", @@ -1851,7 +1862,8 @@ export const walletsData: WalletData[] = [ last_updated: "2023-10-30", name: "Aurox Wallet", image: AuroxImage, - brand_color: "#1F47FF", + twBackgroundColor: "bg-[#1F47FF]", + twGradiantBrandColor: "from-[#1F47FF]", url: "https://getaurox.com/wallet", active_development_team: true, languages_supported: ["en"], @@ -1896,7 +1908,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-10-07", name: "ShapeShift Mobile", image: ShapeShiftImage, - brand_color: "#386FF9", + twBackgroundColor: "bg-[#386FF9]", + twGradiantBrandColor: "from-[#386FF9]", url: "https://shapeshift.com/", active_development_team: true, languages_supported: [ @@ -1953,7 +1966,8 @@ export const walletsData: WalletData[] = [ last_updated: "2024-06-20", name: "Gem Wallet", image: GemWalletImage, - brand_color: "#2D5BE6", + twBackgroundColor: "bg-[#2D5BE6]", + twGradiantBrandColor: "from-[#2D5BE6]", url: "https://gemwallet.com/", active_development_team: true, languages_supported: [ @@ -1969,7 +1983,6 @@ export const walletsData: WalletData[] = [ "uk", "ko", "ar", - "ua", "vi", "pl", ], diff --git a/src/hooks/useCentralizedExchanges.ts b/src/hooks/useCentralizedExchanges.ts index e864dc4b907..c4122926eeb 100644 --- a/src/hooks/useCentralizedExchanges.ts +++ b/src/hooks/useCentralizedExchanges.ts @@ -12,7 +12,7 @@ import { useTranslation } from "next-i18next" // import squarelink from "@/public/images/wallets/squarelink.png" // import trust from "@/public/images/wallets/trust.png" import type { ImageProps } from "@/components/Image" -import { SelectOnChange } from "@/components/ui/Select" +import { SelectOnChange } from "@/components/Select" import { trackCustomEvent } from "@/lib/utils/matomo" diff --git a/src/hooks/useWalletFilterFeature.tsx b/src/hooks/useWalletFilterFeature.tsx deleted file mode 100644 index fc6d594b630..00000000000 --- a/src/hooks/useWalletFilterFeature.tsx +++ /dev/null @@ -1,311 +0,0 @@ -// Libraries -import { useEffect, useState } from "react" -import { useTranslation } from "next-i18next" - -import { FilterOption } from "@/lib/types" - -import { WalletFilterFeatureProps } from "@/components/FindWallet/WalletFilterFeature" - -// Data -import walletFilterData from "@/data/wallets/wallet-filters" - -import { - BrowserIcon, - BuyCryptoIcon, - ConnectDappsIcon, - DesktopIcon, - ENSSupportIcon, - ERC20SupportIcon, - GasFeeCustomizationIcon, - HardwareIcon, - HardwareSupportIcon, - Layer2Icon, - MobileIcon, - MultisigIcon, - NFTSupportIcon, - NonCustodialIcon, - OpenSourceWalletIcon, - RPCImportingIcon, - SocialRecoverIcon, - StakingIcon, - SwapIcon, - WithdrawCryptoIcon, -} from "../components/icons/wallets" - -type UseWalletFilterFeatureProps = Omit< - WalletFilterFeatureProps, - "updateFilterOption" -> - -export const useWalletFilterFeature = ({ - resetWalletFilter, - filters, - updateFilterOptions, -}: UseWalletFilterFeatureProps) => { - const { t } = useTranslation("page-wallets-find-wallet") - const [filterOptions, setFilterOptions] = useState([ - { - title: t("page-find-wallet-device"), - items: [ - { - title: t(walletFilterData.mobile.title), - icon: MobileIcon, - description: t(walletFilterData.mobile.description), - filterKey: walletFilterData.mobile.filterKey, - showOptions: filters.android || filters.ios ? true : false, - options: [ - { - name: t(walletFilterData.android.title), - filterKey: walletFilterData.android.filterKey, - inputType: "checkbox", - }, - { - name: t(walletFilterData.ios.title), - filterKey: walletFilterData.ios.filterKey, - inputType: "checkbox", - }, - ], - }, - { - title: t(walletFilterData.desktop.title), - icon: DesktopIcon, - description: t(walletFilterData.desktop.description), - filterKey: walletFilterData.desktop.filterKey, - showOptions: - filters.linux || filters.windows || filters.macOS ? true : false, - options: [ - { - name: t(walletFilterData.linux.title), - filterKey: walletFilterData.linux.filterKey, - inputType: "checkbox", - }, - { - name: t(walletFilterData.windows.title), - filterKey: walletFilterData.windows.filterKey, - inputType: "checkbox", - }, - { - name: t(walletFilterData.macos.title), - filterKey: walletFilterData.macos.filterKey, - inputType: "checkbox", - }, - ], - }, - { - title: t(walletFilterData.browser.title), - icon: BrowserIcon, - description: t(walletFilterData.browser.description), - filterKey: walletFilterData.browser.filterKey, - showOptions: filters.firefox || filters.chromium ? true : false, - options: [ - { - name: t(walletFilterData.firefox.title), - filterKey: walletFilterData.firefox.filterKey, - inputType: "checkbox", - }, - { - name: t(walletFilterData.chromium.title), - filterKey: walletFilterData.chromium.filterKey, - inputType: "checkbox", - }, - ], - }, - { - title: t(walletFilterData.hardware.title), - icon: HardwareIcon, - description: t(walletFilterData.hardware.description), - filterKey: walletFilterData.hardware.filterKey, - showOptions: undefined, - options: [], - }, - ], - }, - { - title: `${t("page-find-wallet-buy-crypto")} / ${t( - "page-find-wallet-sell-for-fiat" - )}`, - items: [ - { - title: t(walletFilterData.buy_crypto.title), - icon: BuyCryptoIcon, - description: t(walletFilterData.buy_crypto.description), - filterKey: walletFilterData.buy_crypto.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.withdraw_crypto.title), - icon: WithdrawCryptoIcon, - description: t(walletFilterData.withdraw_crypto.description), - filterKey: walletFilterData.withdraw_crypto.filterKey, - showOptions: undefined, - options: [], - }, - ], - }, - { - title: t("page-find-wallet-features"), - items: [ - { - title: t(walletFilterData.connect_to_dapps.title), - icon: ConnectDappsIcon, - description: t(walletFilterData.connect_to_dapps.description), - filterKey: walletFilterData.connect_to_dapps.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.nft_support.title), - icon: NFTSupportIcon, - description: t(walletFilterData.nft_support.description), - filterKey: walletFilterData.nft_support.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.staking.title), - icon: StakingIcon, - description: t(walletFilterData.staking.description), - filterKey: walletFilterData.staking.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.layer_2.title), - icon: Layer2Icon, - description: t(walletFilterData.layer_2.description), - filterKey: walletFilterData.layer_2.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.swaps.title), - icon: SwapIcon, - description: t(walletFilterData.swaps.description), - filterKey: walletFilterData.swaps.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.hardware_support.title), - icon: HardwareSupportIcon, - description: t(walletFilterData.hardware_support.description), - filterKey: walletFilterData.hardware_support.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.ens_support.title), - icon: ENSSupportIcon, - description: t(walletFilterData.ens_support.description), - filterKey: walletFilterData.ens_support.filterKey, - showOptions: undefined, - options: [], - }, - ], - }, - { - title: t("page-find-wallet-security"), - items: [ - { - title: t(walletFilterData.open_source.title), - icon: OpenSourceWalletIcon, - description: t(walletFilterData.open_source.description), - filterKey: walletFilterData.open_source.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.non_custodial.title), - icon: NonCustodialIcon, - description: t(walletFilterData.non_custodial.description), - filterKey: walletFilterData.non_custodial.filterKey, - showOptions: undefined, - options: [], - }, - ], - }, - { - title: t("page-find-wallet-smart-contract"), - items: [ - { - title: t(walletFilterData.multisig.title), - icon: MultisigIcon, - description: t(walletFilterData.multisig.description), - filterKey: walletFilterData.multisig.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.social_recovery.title), - icon: SocialRecoverIcon, - description: t(walletFilterData.social_recovery.description), - filterKey: walletFilterData.social_recovery.filterKey, - showOptions: undefined, - options: [], - }, - ], - }, - { - title: t("page-find-wallet-advanced"), - items: [ - { - title: t(walletFilterData.rpc_importing.title), - icon: RPCImportingIcon, - description: t(walletFilterData.rpc_importing.description), - filterKey: walletFilterData.rpc_importing.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.erc_20_support.title), - icon: ERC20SupportIcon, - description: t(walletFilterData.erc_20_support.description), - filterKey: walletFilterData.erc_20_support.filterKey, - showOptions: undefined, - options: [], - }, - { - title: t(walletFilterData.gas_fee_customization.title), - icon: GasFeeCustomizationIcon, - description: t(walletFilterData.gas_fee_customization.description), - filterKey: walletFilterData.gas_fee_customization.filterKey, - showOptions: undefined, - options: [], - }, - ], - }, - ]) - - const setShowOptions = (idx, itemidx, value) => { - const updatedFilterOptions = [...filterOptions] - updatedFilterOptions[idx].items[itemidx].showOptions = - !updatedFilterOptions[idx].items[itemidx].showOptions - setFilterOptions(updatedFilterOptions) - - const keys = updatedFilterOptions[idx].items[itemidx].options.map( - (item) => item.filterKey - ) - updateFilterOptions(keys, value) - } - - useEffect(() => { - const resetFilters = () => { - for (const filterItem of filterOptions) { - for (const item of filterItem.items) { - if (item.options.length > 0) { - item.showOptions = false - } else { - item.showOptions = undefined - } - } - } - } - resetWalletFilter.current = resetFilters - }, [filterOptions, resetWalletFilter]) - - return { - setShowOptions, - filterOptions, - } -} diff --git a/src/hooks/useWalletTable.tsx b/src/hooks/useWalletTable.tsx deleted file mode 100644 index 0987ac46315..00000000000 --- a/src/hooks/useWalletTable.tsx +++ /dev/null @@ -1,237 +0,0 @@ -import { useState } from "react" - -import type { DropdownOption, Wallet, WalletFilter } from "@/lib/types" - -export type WalletMoreInfoData = Wallet & { moreInfo: boolean; key: string } - -type UseWalletTableProps = { - walletData: Wallet[] - filters: WalletFilter - t: (x: string) => string - supportedLanguage: string -} - -export const useWalletTable = ({ - filters, - supportedLanguage, - t, - walletData, -}: UseWalletTableProps) => { - const featureDropdownItems: Array = [ - { - label: t("page-find-wallet-open-source"), - value: t("page-find-wallet-open-source"), - filterKey: "open_source", - category: "security", - }, - { - label: t("page-find-wallet-self-custody"), - value: t("page-find-wallet-self-custody"), - filterKey: "non_custodial", - category: "security", - }, - { - label: t("page-find-wallet-hardware-wallet-support"), - value: t("page-find-wallet-hardware-wallet-support"), - filterKey: "hardware_support", - category: "feature", - }, - { - label: t("page-find-wallet-rpc-importing"), - value: t("page-find-wallet-rpc-importing"), - filterKey: "rpc_importing", - category: "advanced", - }, - { - label: t("page-find-wallet-nft-support"), - value: t("page-find-wallet-nft-support"), - filterKey: "nft_support", - category: "feature", - }, - { - label: t("page-find-wallet-connect-to-dapps"), - value: t("page-find-wallet-connect-to-dapps"), - filterKey: "connect_to_dapps", - category: "feature", - }, - { - label: t("page-find-wallet-staking"), - value: t("page-find-wallet-staking"), - filterKey: "staking", - category: "feature", - }, - { - label: t("page-find-wallet-swaps"), - value: t("page-find-wallet-swaps"), - filterKey: "swaps", - category: "feature", - }, - { - label: t("page-find-wallet-layer-2"), - value: t("page-find-wallet-layer-2"), - filterKey: "layer_2", - category: "feature", - }, - { - label: t("page-find-wallet-gas-fee-customization"), - value: t("page-find-wallet-gas-fee-customization"), - filterKey: "gas_fee_customization", - category: "advanced", - }, - { - label: t("page-find-wallet-ens-support"), - value: t("page-find-wallet-ens-support"), - filterKey: "ens_support", - category: "feature", - }, - { - label: t("page-find-wallet-token-importing"), - value: t("page-find-wallet-token-importing"), - filterKey: "erc_20_support", - category: "advanced", - }, - { - label: t("page-find-wallet-buy-crypto"), - value: t("page-find-wallet-buy-crypto"), - filterKey: "buy_crypto", - category: "trade_and_buy", - }, - { - label: t("page-find-wallet-sell-for-fiat"), - value: t("page-find-wallet-sell-for-fiat"), - filterKey: "withdraw_crypto", - category: "trade_and_buy", - }, - { - label: t("page-find-wallet-multisig"), - value: t("page-find-wallet-multisig"), - filterKey: "multisig", - category: "smart_contract", - }, - { - label: t("page-find-wallet-social-recovery"), - value: t("page-find-wallet-social-recovery"), - filterKey: "social_recovery", - category: "smart_contract", - }, - { - label: t("page-find-wallet-new-to-crypto-title"), - value: t("page-find-wallet-new-to-crypto-title"), - filterKey: "new_to_crypto", - category: "new_to_crypto", - }, - ] - - const [walletCardData, setWalletData] = useState( - walletData.map((wallet) => { - return { ...wallet, moreInfo: false, key: wallet.name } - }) - ) - - const updateMoreInfo = (key) => { - const temp = [...walletCardData] - - temp.forEach((wallet, idx) => { - if (wallet.key === key) { - temp[idx].moreInfo = !temp[idx].moreInfo - } - }) - - setWalletData(temp) - } - - const filteredWallets = walletCardData.filter((wallet) => { - let showWallet = true - let mobileCheck = true - let desktopCheck = true - let browserCheck = true - let hardwareCheck = true - - const featureFilterKeys = featureDropdownItems.map((item) => item.filterKey) - - const deviceFilters = Object.entries(filters).filter( - (item) => !featureFilterKeys.includes(item[0]) - ) - - const languageSupportFilter = - wallet.languages_supported.includes(supportedLanguage) - - const mobileFiltersTrue = deviceFilters - .filter((item) => item[0] === "ios" || item[0] === "android") - .filter((item) => item[1]) - .map((item) => item[0]) - const desktopFiltersTrue = deviceFilters - .filter( - (item) => - item[0] === "linux" || item[0] === "windows" || item[0] === "macOS" - ) - .filter((item) => item[1]) - .map((item) => item[0]) - const browserFiltersTrue = deviceFilters - .filter((item) => item[0] === "firefox" || item[0] === "chromium") - .filter((item) => item[1]) - .map((item) => item[0]) - const hardwareFiltersTrue = deviceFilters - .filter((item) => item[0] === "hardware") - .filter((item) => item[1]) - .map((item) => item[0]) - - for (const item of mobileFiltersTrue) { - if (wallet[item]) { - mobileCheck = true - break - } else { - mobileCheck = false - } - } - - for (const item of desktopFiltersTrue) { - if (wallet[item]) { - desktopCheck = true - break - } else { - desktopCheck = false - } - } - - for (const item of browserFiltersTrue) { - if (wallet[item]) { - browserCheck = true - break - } else { - browserCheck = false - } - } - - for (const item of hardwareFiltersTrue) { - if (wallet[item]) { - hardwareCheck = true - break - } else { - hardwareCheck = false - } - } - - featureFilterKeys.forEach((filter) => { - if (filters[filter] && showWallet === true) { - showWallet = filters[filter] === wallet[filter] - } - }) - - return ( - mobileCheck && - desktopCheck && - browserCheck && - hardwareCheck && - showWallet && - languageSupportFilter - ) - }) - - return { - featureDropdownItems, - updateMoreInfo, - filteredWallets, - walletCardData, - } -} diff --git a/src/intl/am/page-wallets-find-wallet.json b/src/intl/am/page-wallets-find-wallet.json index a6c69459276..22450908d1c 100644 --- a/src/intl/am/page-wallets-find-wallet.json +++ b/src/intl/am/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "መረጃው የዘመነው", "page-find-wallet-showing-all-wallets": "ሁሉንም ቦርሳዎች ያሳያል", - "page-find-wallet-showing": "ማሳየት", "page-find-wallet-wallets": "ቦርሳዎች", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -68,7 +67,6 @@ "page-find-wallet-developer-title": "የሶፍትዌር ገንቢ", "page-find-wallet-developer-desc": "የሶፍትዌር ገንቢ ነዎት እና dappsን ለመገንባት እና ለመሞከር ቦርሳ ያስፈልግዎታል", "page-find-wallet-filters": "ማጣሪያዎች", - "page-find-wallet-active": "ንቁ", "page-find-wallet-footnote-1": "በዚህ ገጽ ላይ የተዘረዘሩ ቦርሳዎች ይፋዊ ማረጋገጫዎች አይደሉም፣ እና እዚህ የቀረቡት ለመረጃ አገልግሎት ብቻ ነው።", "page-find-wallet-footnote-2": "የእነሱ መግለጫዎች በራሳቸው የቦርሳ ፕሮጀክቶች ቀርበዋል፡፡", "page-find-wallet-footnote-3": "በእኛ ዝርዝር ፖሊሲ ውስጥ ባሉ መስፈርቶች መሰረት ምርቶችን ወደዚህ ገጽ እንጨምራለን። ቦርሳ እንድንጨምር ከፈለጉ በGitHub ላይ ችግሮን ያንሱ።", diff --git a/src/intl/am/table.json b/src/intl/am/table.json new file mode 100644 index 00000000000..cbee65a0700 --- /dev/null +++ b/src/intl/am/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "ንቁ", + "table-filters": "ማጣሪያዎች", + "table-showing": "ማሳየት" +} \ No newline at end of file diff --git a/src/intl/ar/page-wallets-find-wallet.json b/src/intl/ar/page-wallets-find-wallet.json index 10e4383ee07..8246253e55b 100644 --- a/src/intl/ar/page-wallets-find-wallet.json +++ b/src/intl/ar/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "التحقُّق", "page-find-wallet-info-updated-on": "تم تحديث المعلومات في", "page-find-wallet-showing-all-wallets": "عرض جميع المحافظ", - "page-find-wallet-showing": "عرض ", "page-find-wallet-wallets": "المحافظ", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "أندرويد", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "التمويل", "page-find-wallet-finance-desc": "المحافظ التي تركز على الاستخدام المتكرر لتطبيقات التمويل اللامركزي دي فاي (DeFi).", "page-find-wallet-developer-title": "مبرمج", - "page-find-wallet-developer-desc": "المحافظ التي تساعد على تطوير واختبار التطبيقات اللامركزية.", - "page-find-wallet-filters": "عوامل التصفية", - "page-find-wallet-active": "نشط", + "page-find-wallet-developer-desc": "أنت مبرمج وتحتاج إلى محفظة للمساعدة في تطوير واختبار التطبيقات اللامركزية", "page-find-wallet-footnote-1": "المحافظ المدرجة في هذه الصفحة ليست مصادقات رسمية، ويتم توفيرها للأغراض الإعلامية فقط.", "page-find-wallet-footnote-2": "تم توفير أوصافها من خلال مشاريع المحافظ نفسها.", "page-find-wallet-footnote-3": "نضيف منتجات إلى هذه الصفحة بناءً على المعايير الواردة في سياسة العرض. إذا كنت تريد منا إضافة محفظة، فقدِّم تذكرة مشكلة في GitHub.", diff --git a/src/intl/ar/table.json b/src/intl/ar/table.json new file mode 100644 index 00000000000..78e410c7533 --- /dev/null +++ b/src/intl/ar/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "نشط", + "table-filters": "عوامل التصفية", + "table-showing": "عرض ", + "table-reset-filters": "إعادة تعيين عناصر التصفية", + "table-what-are-you-looking-for": "What are you looking for?" +} \ No newline at end of file diff --git a/src/intl/az/page-wallets-find-wallet.json b/src/intl/az/page-wallets-find-wallet.json index d18497e620e..e8bf2b82eee 100644 --- a/src/intl/az/page-wallets-find-wallet.json +++ b/src/intl/az/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Yoxlayın", "page-find-wallet-info-updated-on": "məlumat yeniləndi", "page-find-wallet-showing-all-wallets": "Bütün pulqabılar göstərilir", - "page-find-wallet-showing": "Göstərilir", "page-find-wallet-wallets": "pulqabıları", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,14 +66,11 @@ "page-find-wallet-finance-desc": "Siz DeFi istifadə edən və DeFi tətbiqlərinə qoşulmağa imkan verən pulqabı istəyən birisiniz", "page-find-wallet-developer-title": "Tərtibatçı", "page-find-wallet-developer-desc": "Siz tərtibatçısınız və tətbiqləri inkişaf etdirmək və sınaqdan keçirmək üçün pulqabına ehtiyacınız var", - "page-find-wallet-filters": "Filtrlər", - "page-find-wallet-active": "aktiv", "page-find-wallet-footnote-1": "Bu səhifədə qeyd olunan pulqabıları rəsmi olaraq təsdiqlənməyib və yalnız məlumat məqsədləri üçün verilir.", "page-find-wallet-footnote-2": "Onların təsvirləri pulqabı layihələrinin özləri tərəfindən verilmişdir.", "page-find-wallet-footnote-3": "Məhsullarımızı siyahı siyasəti səhifəmizdəki kriteriyalara əsasən əlavə edirik. Pulqabı əlavə etməyimizi istəyirsinizsə,GitHub-da problemdən şikayət edin.", "page-find-wallet-mobile": "Mobil", "page-find-wallet-desktop": "Masaüstü kompüter", "page-find-wallet-browser": "Brauzer", - "page-find-wallet-device": "Cihazlar", - "page-find-wallet-reset-filters": "Filtrləri sıfırlayın" + "page-find-wallet-device": "Cihazlar" } diff --git a/src/intl/az/table.json b/src/intl/az/table.json new file mode 100644 index 00000000000..c7e709b9398 --- /dev/null +++ b/src/intl/az/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "aktiv", + "table-filters": "Filtrlər", + "table-showing": "Göstərilir", + "table-reset-filters": "Filtrləri sıfırlayın" +} \ No newline at end of file diff --git a/src/intl/be/page-wallets-find-wallet.json b/src/intl/be/page-wallets-find-wallet.json index cf8f1686fcf..e5babb21144 100644 --- a/src/intl/be/page-wallets-find-wallet.json +++ b/src/intl/be/page-wallets-find-wallet.json @@ -51,9 +51,8 @@ "page-find-wallet-advanced": "Дадаткова", "page-find-wallet-check-out": "Азнаёмцеся", "page-find-wallet-info-updated-on": "інфармацыя абноўлена", - "page-find-wallet-showing-all-wallets": "Паказваюцца ўсе гаманцы", - "page-find-wallet-showing": "Паказваецца", - "page-find-wallet-wallets": "гаманцы", + "page-find-wallet-showing-all-wallets": "Паказваюцца ўсе Гаманцы", + "page-find-wallet-wallets": "гаманцах", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", "page-find-wallet-linux": "Linux", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "Фінансы", "page-find-wallet-finance-desc": "Гаманцы, арыентаваныя на частае выкарыстанне дадаткаў DeFi.", "page-find-wallet-developer-title": "Распрацоўшчык", - "page-find-wallet-developer-desc": "Гаманцы, якія дапамагаюць распрацоўваць і тэсціраваць дадаткі.", - "page-find-wallet-filters": "Фільтры", - "page-find-wallet-active": "актыўныя", + "page-find-wallet-developer-desc": "Вы распрацоўшчык і вам патрабуецца гаманец для дапамогі ў распрацоўцы і тэсціраванні дэцэнтралізаваных дадаткаў", "page-find-wallet-footnote-1": "Гаманцы, пералічаныя на гэтай старонцы, не з'яўляюцца афіцыйнымі рэкамендацыямі і прадстаўляюцца толькі ў інфармацыйных мэтах.", "page-find-wallet-footnote-2": "Іх апісанне было прадстаўлена самімі праектамі гаманцаў.", "page-find-wallet-footnote-3": "Мы дадаём прадукты на гэтую старонку на аснове крытэрыяў нашай палітыкі лістынгу. Калі вы жадаеце, каб мы дадалі гаманец, паведаміце аб праблеме на GitHub.", diff --git a/src/intl/be/table.json b/src/intl/be/table.json new file mode 100644 index 00000000000..eaeb9e8cc36 --- /dev/null +++ b/src/intl/be/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "актыўныя", + "table-filters": "Фільтры", + "table-showing": "Паказваецца", + "table-what-are-you-looking-for": "What are you looking for?" +} \ No newline at end of file diff --git a/src/intl/bg/page-wallets-find-wallet.json b/src/intl/bg/page-wallets-find-wallet.json index 5710f5bd4d7..880b992563f 100644 --- a/src/intl/bg/page-wallets-find-wallet.json +++ b/src/intl/bg/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Разгледайте", "page-find-wallet-info-updated-on": "информацията е обновена на", "page-find-wallet-showing-all-wallets": "Показване на всички портфейли", - "page-find-wallet-showing": "Показване", "page-find-wallet-wallets": "портфейли", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "Финанси", "page-find-wallet-finance-desc": "Портфейли, фокусирани върху честото използване на приложения за децентрализирани финанси.", "page-find-wallet-developer-title": "Разработчик", - "page-find-wallet-developer-desc": "Портфейли, помагащи за разработването и тестването на децентрализирани приложения.", - "page-find-wallet-filters": "Филтри", - "page-find-wallet-active": "активно", + "page-find-wallet-developer-desc": "Вие сте разработчик и се нуждаете от портфейл, с помощта на който да разработвате и тествате децентрализирани приложения", "page-find-wallet-footnote-1": "Портфейлите, изброени на тази страница, не са официално одобрение и са предоставени само с информационни цели.", "page-find-wallet-footnote-2": "Техните описания са предоставени от самите проекти на портфейлът.", "page-find-wallet-footnote-3": "Добавяме продукти на тази страница въз основа на критериите в нашата политика за списъци. Ако искате да добавим портфейл направете запитване в GitHub.", diff --git a/src/intl/bg/table.json b/src/intl/bg/table.json new file mode 100644 index 00000000000..62aa952654c --- /dev/null +++ b/src/intl/bg/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "активно", + "table-filters": "Филтри", + "table-showing": "Показване" +} \ No newline at end of file diff --git a/src/intl/bn/page-wallets-find-wallet.json b/src/intl/bn/page-wallets-find-wallet.json index 2752557a39d..0a3571bc300 100644 --- a/src/intl/bn/page-wallets-find-wallet.json +++ b/src/intl/bn/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "তথ্য আপডেট করা হয়েছে", "page-find-wallet-showing-all-wallets": "সব ওয়ালেট দেখাচ্ছে", - "page-find-wallet-showing": "দেখাচ্ছে", "page-find-wallet-wallets": "ওয়ালেটসমূহ", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "আপনি এমন একজন যিনি DeFi ব্যবহার করেন এবং একটি ওয়ালেট চান যা আপনাকে DeFi অ্যাপ্লিকেশনগুলোর সাথে সংযোগ করতে দেয়", "page-find-wallet-developer-title": "ডেভেলপার", "page-find-wallet-developer-desc": "আপনি একজন ডেভেলপার এবং dapps ডেভেলপ ও পরীক্ষায় সাহায্যের জন্য একটি ওয়ালেট প্রয়োজন", - "page-find-wallet-filters": "ফিল্টার", - "page-find-wallet-active": "সক্রিয়", "page-find-wallet-footnote-1": "এই পৃষ্ঠায় তালিকাভুক্ত ওয়ালেটগুলো অফিসিয়াল অনুমোদিত নয় এবং শুধুমাত্র তথ্যের উদ্দেশ্যে প্রদান হয়েছে।", "page-find-wallet-footnote-2": "তাদের বর্ণনা ওয়ালেট প্রকল্পগুলোর নিজেদের দ্বারা প্রদান করা হয়েছে।", "page-find-wallet-footnote-3": "আমরা আমাদের তালিকা নীতি এর মানদন্ডের উপর ভিত্তি করে এই পৃষ্ঠায় পণ্য যোগ করি। আপনি যদি আমাদেরকে একটি ওয়ালেট যোগ করতে অনুরোধ করতে চান, তাহলে GitHub এ একটি ইস্যু উত্থাপন করুন।", diff --git a/src/intl/bn/table.json b/src/intl/bn/table.json new file mode 100644 index 00000000000..d72444f0853 --- /dev/null +++ b/src/intl/bn/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "সক্রিয়", + "table-filters": "ফিল্টার", + "table-showing": "দেখাচ্ছে" +} \ No newline at end of file diff --git a/src/intl/bs/page-wallets-find-wallet.json b/src/intl/bs/page-wallets-find-wallet.json index f347b575831..d490449aca9 100644 --- a/src/intl/bs/page-wallets-find-wallet.json +++ b/src/intl/bs/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "informacije ažurirane", "page-find-wallet-showing-all-wallets": "Prikaz svih novčanika", - "page-find-wallet-showing": "Prikazivanje", "page-find-wallet-wallets": "novčanici", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "Vi ste osoba koja koristi DeFi i želite novčanik koji vam omogućava povezivanje s DeFi aplikacijama", "page-find-wallet-developer-title": "Programer", "page-find-wallet-developer-desc": "Vi ste programer i treba vam novčanik za pomoć pri razvijanju i testiranju dapp-a", - "page-find-wallet-filters": "Filteri", - "page-find-wallet-active": "aktivni", "page-find-wallet-footnote-1": "Novčanici navedeni na ovoj stranici nisu zvanične preporuke i služe samo u informativne svrhe.", "page-find-wallet-footnote-2": "Sami projekti novčanika navode opise.", "page-find-wallet-footnote-3": "Dodajemo proizvode na ovu stranicu na osnovu kriterija naših pravila za navođenje. Ako želite da dodamo novčanik, obratite se GitHubu.", diff --git a/src/intl/bs/table.json b/src/intl/bs/table.json new file mode 100644 index 00000000000..e5e0b4b17c3 --- /dev/null +++ b/src/intl/bs/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktivni", + "table-filters": "Filteri", + "table-showing": "Prikazivanje" + } \ No newline at end of file diff --git a/src/intl/ca/page-wallets-find-wallet.json b/src/intl/ca/page-wallets-find-wallet.json index 8695fa5b3fb..d6bae1625e3 100644 --- a/src/intl/ca/page-wallets-find-wallet.json +++ b/src/intl/ca/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Comproveu", "page-find-wallet-info-updated-on": "la informació actualitzada de", "page-find-wallet-showing-all-wallets": "Mostrant totes les carteres", - "page-find-wallet-showing": "S'està mostrant ", "page-find-wallet-wallets": "carteres", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "Què busqueu?", "page-find-wallet-new-to-crypto-title": "Nou al món de les criptomonedes?", "page-find-wallet-new-to-crypto-desc": "Primera vegada que l'usuari busca una cartera per a principiants.", "page-find-wallet-nfts-title": "Els NFT", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Carteres focalitzades en l'ús freqüent d'aplicacions DeFi.", "page-find-wallet-developer-title": "Desenvolupador", "page-find-wallet-developer-desc": "Carteres que ajuden a desenvolupar i provar dapps.", - "page-find-wallet-filters": "Filtres", - "page-find-wallet-active": "actiu", "page-find-wallet-footnote-1": "Les carteres llistades en aquesta pàgina no estan aprovades oficialment només son proporcionades amb finalitats informatives.", "page-find-wallet-footnote-2": "Les seves descripcions han estat proporcionades pels mateixos creadors de les carteres.", "page-find-wallet-footnote-3": "Afegim productes a aquesta pàgina segons els criteris de la nostra política de llistats . Si voleu que afegim una cartera, plantegeu un problema a GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Escriptori", "page-find-wallet-browser": "Navegador", "page-find-wallet-device": "Dispositiu", - "page-find-wallet-reset-filters": "Restabliu", "page-find-wallet-visit-website": "Visiteu el lloc web", "page-find-wallet-social-links": "Enllaços", "page-find-wallet-empty-results-title": "Sense resultats", diff --git a/src/intl/ca/table.json b/src/intl/ca/table.json new file mode 100644 index 00000000000..f7d1110a710 --- /dev/null +++ b/src/intl/ca/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "actiu", + "table-filters": "Filtres", + "table-showing": "S'està mostrant ", + "table-reset-filters": "Restabliu", + "table-what-are-you-looking-for": "Què busqueu?" +} \ No newline at end of file diff --git a/src/intl/cs/page-wallets-find-wallet.json b/src/intl/cs/page-wallets-find-wallet.json index 28a02a6c943..648b9937b6a 100644 --- a/src/intl/cs/page-wallets-find-wallet.json +++ b/src/intl/cs/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Zobrazit", "page-find-wallet-info-updated-on": "informace aktualizovány", "page-find-wallet-showing-all-wallets": "Zobrazení všech peněženek", - "page-find-wallet-showing": "Zobrazeno ", "page-find-wallet-wallets": "peněženky", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "Co hledáte?", "page-find-wallet-new-to-crypto-title": "Jste v kryptoměnách nový?", "page-find-wallet-new-to-crypto-desc": "Nováček hledající peněženku pro začátečníky.", "page-find-wallet-nfts-title": "NFTéčka", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Peněženky zaměřené na časté používání aplikací DeFi.", "page-find-wallet-developer-title": "Vývojář", "page-find-wallet-developer-desc": "Peněženky, které pomáhají vyvíjet a testovat dappky.", - "page-find-wallet-filters": "Filtry", - "page-find-wallet-active": "aktivní", "page-find-wallet-footnote-1": "Peněženky uvedené na této stránce nejsou oficiálním doporučením a jsou poskytovány pouze pro informační účely.", "page-find-wallet-footnote-2": "Jejich popisy byly poskytnuty samotnými tvůrci peněženek.", "page-find-wallet-footnote-3": "Na tuto stránku přidáváme produkty na základě kritérií v našich zásadách pro přidávání. Pokud byste chtěli přidat peněženku, navrhněte podnět na GitHubu.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Desktopová", "page-find-wallet-browser": "Prohlížeč", "page-find-wallet-device": "Zařízení", - "page-find-wallet-reset-filters": "Resetovat", "page-find-wallet-visit-website": "Navštívit webovou stránku", "page-find-wallet-social-links": "Odkazy", "page-find-wallet-empty-results-title": "Žádné výsledky", diff --git a/src/intl/cs/table.json b/src/intl/cs/table.json new file mode 100644 index 00000000000..0e49e5c2dcc --- /dev/null +++ b/src/intl/cs/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "aktivní", + "table-filters": "Filtry", + "table-showing": "Zobrazeno ", + "table-reset-filters": "Resetovat", + "table-what-are-you-looking-for": "Co hledáte?" +} \ No newline at end of file diff --git a/src/intl/de/page-wallets-find-wallet.json b/src/intl/de/page-wallets-find-wallet.json index fb2dd1604c4..98625a7d57d 100644 --- a/src/intl/de/page-wallets-find-wallet.json +++ b/src/intl/de/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Wissenswertes", "page-find-wallet-info-updated-on": "Informationen aktualisiert am", "page-find-wallet-showing-all-wallets": "Zeigt alle Wallets", - "page-find-wallet-showing": "Zeigen", "page-find-wallet-wallets": "Zeigt alle Wallets", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "Was suchen Sie?", "page-find-wallet-new-to-crypto-title": "Neu bei Krypto", "page-find-wallet-new-to-crypto-desc": "Erstbenutzer auf der Suche nach einer Einsteiger-Wallet.", "page-find-wallet-nfts-title": "NFTs", @@ -72,9 +70,7 @@ "page-find-wallet-finance-title": "Finanzen", "page-find-wallet-finance-desc": "Wallets, die sich auf die häufige Nutzung von DeFi-Anwendungen konzentrieren.", "page-find-wallet-developer-title": "Entwickler", - "page-find-wallet-developer-desc": "Wallets, die beim Entwickeln und Testen von DApps helfen.", - "page-find-wallet-filters": "Filter", - "page-find-wallet-active": "aktiv", + "page-find-wallet-developer-desc": "Wallets, die beim Entwickeln und Testen von Dapps helfen.", "page-find-wallet-footnote-1": "Die auf dieser Seite aufgeführten Wallets sind keine offiziellen Empfehlungen und dienen ausschließlich zu Informationszwecken.", "page-find-wallet-footnote-2": "Die Beschreibungen wurden von den Wallet-Projekten selbst bereitgestellt.", "page-find-wallet-footnote-3": "Wir fügen dieser Seite Produkte basierend auf den Kriterien unserer Auflistungsrichtlinie hinzu. Wenn Sie möchten, dass wir eine Wallet hinzufügen, erstellen Sie ein Ticket auf GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Desktop", "page-find-wallet-browser": "Browser", "page-find-wallet-device": "Gerät", - "page-find-wallet-reset-filters": "Zurücksetzen", "page-find-wallet-visit-website": "Besuche die Website", "page-find-wallet-social-links": "Links", "page-find-wallet-empty-results-title": "Keine Ergebnisse", diff --git a/src/intl/de/table.json b/src/intl/de/table.json new file mode 100644 index 00000000000..e7ac99e4b59 --- /dev/null +++ b/src/intl/de/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "aktiv", + "table-filters": "Filter", + "table-showing": "Zeigen", + "table-reset-filters": "Zurücksetzen", + "table-what-are-you-looking-for": "Was suchen Sie?" +} \ No newline at end of file diff --git a/src/intl/el/page-wallets-find-wallet.json b/src/intl/el/page-wallets-find-wallet.json index 4b6a774ae9f..cf2afcdf505 100644 --- a/src/intl/el/page-wallets-find-wallet.json +++ b/src/intl/el/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Ολοκλήρωση αγορών", "page-find-wallet-info-updated-on": "οι πληροφορίες ενημερώθηκαν στις", "page-find-wallet-showing-all-wallets": "Εμφάνιση όλων των πορτοφολιών", - "page-find-wallet-showing": "Εμφανίζονται ", "page-find-wallet-wallets": "πορτοφόλια", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Εξοπλισμός", - "page-find-wallet-personas-title": "Τι αναζητάτε;", "page-find-wallet-new-to-crypto-title": "Καινούργιος στα κρύπτο", "page-find-wallet-new-to-crypto-desc": "Νέος χρήστης σε αναζήτηση πορτοφολιού για αρχάριους.", "page-find-wallet-nfts-title": "NFTs", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Πορτοφόλια που εστιάζουν στη συχνή χρήση εφαρμογών DeFi.", "page-find-wallet-developer-title": "Προγραμματιστής", "page-find-wallet-developer-desc": "Πορτοφόλια που βοηθούν στην ανάπτυξη και τη δοκιμή dapp.", - "page-find-wallet-filters": "Φίλτρα", - "page-find-wallet-active": "ενεργά", "page-find-wallet-footnote-1": "Τα πορτοφόλια που παρατίθενται σε αυτή τη σελίδα δεν έχουν επίσημη έγκριση και παρέχονται μόνο για ενημερωτικούς σκοπούς.", "page-find-wallet-footnote-2": "Οι περιγραφές τους έχουν παρασχεθεί από τις πληροφορίες πορτοφολιού.", "page-find-wallet-footnote-3": "Προσθέτουμε προϊόντα σε αυτή τη σελίδα με βάση κριτήρια στην πολιτική καταχώρησης. Αν θέλετε να προσθέσουμε ένα πορτοφόλι, δημιουργήστε ένα ζήτημα στο GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Σταθερού υπολογιστή", "page-find-wallet-browser": "Φυλλομετρητής", "page-find-wallet-device": "Συσκευή", - "page-find-wallet-reset-filters": "Επαναφορά", "page-find-wallet-visit-website": "Επισκεφθείτε τον ιστότοπο", "page-find-wallet-social-links": "Σύνδεσμοι", "page-find-wallet-empty-results-title": "Κανένα αποτέλεσμα", diff --git a/src/intl/el/table.json b/src/intl/el/table.json new file mode 100644 index 00000000000..01b83c6be13 --- /dev/null +++ b/src/intl/el/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "ενεργά", + "table-filters": "Φίλτρα", + "table-showing": "Εμφανίζονται ", + "table-reset-filters": "Επαναφορά", + "table-what-are-you-looking-for": "Τι αναζητάτε;" +} \ No newline at end of file diff --git a/src/intl/en/page-wallets-find-wallet.json b/src/intl/en/page-wallets-find-wallet.json index 8acbc755074..2cb66f50574 100644 --- a/src/intl/en/page-wallets-find-wallet.json +++ b/src/intl/en/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "info updated on", "page-find-wallet-showing-all-wallets": "Showing all wallets", - "page-find-wallet-showing": "Showing", "page-find-wallet-wallets": "wallets", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "What are you looking for?", "page-find-wallet-new-to-crypto-title": "New to crypto", "page-find-wallet-new-to-crypto-desc": "First time user looking for beginner wallet.", "page-find-wallet-nfts-title": "NFTs", @@ -73,7 +71,6 @@ "page-find-wallet-finance-desc": "Wallets focusing on frequent usage of DeFi apps.", "page-find-wallet-developer-title": "Developer", "page-find-wallet-developer-desc": "Wallets that help develop and test dapps.", - "page-find-wallet-filters": "Filters", "page-find-wallet-active": "active", "page-find-wallet-footnote-1": "Wallets listed on this page are not official endorsements, and are provided for informational purposes only.", "page-find-wallet-footnote-2": "Their descriptions have been provided by the wallet projects themselves.", diff --git a/src/intl/en/table.json b/src/intl/en/table.json new file mode 100644 index 00000000000..ebc1294aec7 --- /dev/null +++ b/src/intl/en/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "active", + "table-filters": "Filters", + "table-showing": "Showing", + "table-reset-filters": "Reset", + "table-what-are-you-looking-for": "What are you looking for?" +} \ No newline at end of file diff --git a/src/intl/es/page-wallets-find-wallet.json b/src/intl/es/page-wallets-find-wallet.json index 92e0b3a7449..e8026563875 100644 --- a/src/intl/es/page-wallets-find-wallet.json +++ b/src/intl/es/page-wallets-find-wallet.json @@ -62,7 +62,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "¿Qué está buscando?", "page-find-wallet-new-to-crypto-title": "Nuevo en cripto", "page-find-wallet-new-to-crypto-desc": "Usuario principiante buscando una cartera para principiantes.", "page-find-wallet-nfts-title": "NTF", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Carteras centradas en el uso frecuente de aplicaciones DeFi.", "page-find-wallet-developer-title": "Desarrollador", "page-find-wallet-developer-desc": "Carteras que ayudan a desarrollar y probar DApps.", - "page-find-wallet-filters": "Filtros", - "page-find-wallet-active": "activos", "page-find-wallet-footnote-1": "Las carteras enumeradas en esta página no constituyen una recomendación oficial y solo se facilitan con fines informativos.", "page-find-wallet-footnote-2": "Los propios proyectos de carteras han facilitado su descripción.", "page-find-wallet-footnote-3": "Añadimos productos a esta página en función de los criterios de nuestra política de listado. Si quiere que añadamos una cartera, cree una incidencia en GitHub.", @@ -82,7 +79,6 @@ "page-find-wallet-desktop": "Versión para escritorio", "page-find-wallet-browser": "Navegador", "page-find-wallet-device": "Dispositivo", - "page-find-wallet-reset-filters": "Restaurar", "page-find-wallet-visit-website": "Visita la página web", "page-find-wallet-social-links": "Enlaces", "page-find-wallet-empty-results-title": "Sin resultados", diff --git a/src/intl/es/table.json b/src/intl/es/table.json new file mode 100644 index 00000000000..bb17d7d98ee --- /dev/null +++ b/src/intl/es/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "activos", + "table-filters": "Filtros", + "table-showing": "Exhibición ", + "table-reset-filters": "Restaurar", + "table-what-are-you-looking-for": "¿Qué está buscando?" +} \ No newline at end of file diff --git a/src/intl/fa/page-wallets-find-wallet.json b/src/intl/fa/page-wallets-find-wallet.json index 65f46880fd3..d27046f5561 100644 --- a/src/intl/fa/page-wallets-find-wallet.json +++ b/src/intl/fa/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "بررسی", "page-find-wallet-info-updated-on": "تاریخ به‌روز شدن اطلاعات", "page-find-wallet-showing-all-wallets": "نمایش همه‌ کیف پول‌ها", - "page-find-wallet-showing": "نمایش", "page-find-wallet-wallets": "کیف پول‌ها", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "اندروید", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "کرومیوم", "page-find-wallet-firefox": "فایرفاکس", "page-find-wallet-hardware": "سخت‌افزار", - "page-find-wallet-personas-title": "به دنبال چه هستید؟", "page-find-wallet-new-to-crypto-title": "جدید در رمز ارزها", "page-find-wallet-new-to-crypto-desc": "کاربر تازه‌کار به دنبال یک کیف‌پول مبتدی است.", "page-find-wallet-nfts-title": "توکن‌های غیرقابل تعویض", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "کیف‌پول‌هایی با تمرکز بر استفاده مکرر از اپلیکیشن هایی دیفای(DeFi).", "page-find-wallet-developer-title": "توسعه‌دهنده", "page-find-wallet-developer-desc": "کیف‌پول‌هایی که به توسعه و تست دپ ها کمک می‌کنند.", - "page-find-wallet-filters": "فیلترها", - "page-find-wallet-active": "فعال", "page-find-wallet-footnote-1": "کیف پول‌هایی که در این صفحه لیست شده‌اند مورد تایید رسمی نیستند و صرفا به منظور اطلاعات‌دهی هستند.", "page-find-wallet-footnote-2": "توضیحات آنها توسط خود پروژه‌های این کیف پول‌ها ارائه شده‌اند.", "page-find-wallet-footnote-3": "ما بر اساس معیارهای سیاست‌گذاری لیستینگ خودمان، محصولات را در این صفحه اضافه می‌کنیم. اگر مایل هستید کیف پولی را اضافه کنیم، یک موضوع در GitHub ایجاد کنید.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "کامپیوتر", "page-find-wallet-browser": "مرورگر", "page-find-wallet-device": "دستگاه", - "page-find-wallet-reset-filters": "تنظیم مجدد", "page-find-wallet-visit-website": "مراجعه به وبسایت", "page-find-wallet-social-links": "پیوند‌ها", "page-find-wallet-empty-results-title": "نتیجه ای یافت نشد", diff --git a/src/intl/fa/table.json b/src/intl/fa/table.json new file mode 100644 index 00000000000..9d1bfa81f7b --- /dev/null +++ b/src/intl/fa/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "فعال", + "table-filters": "فیلترها", + "table-showing": "نمایش", + "table-reset-filters": "تنظیم مجدد", + "table-what-are-you-looking-for": "به دنبال چه هستید؟" +} \ No newline at end of file diff --git a/src/intl/fi/page-wallets-find-wallet.json b/src/intl/fi/page-wallets-find-wallet.json index 199db5d5592..ce2c9e3bd84 100644 --- a/src/intl/fi/page-wallets-find-wallet.json +++ b/src/intl/fi/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Tarkastele", "page-find-wallet-info-updated-on": "sisältö päivitetty", "page-find-wallet-showing-all-wallets": "Esitellään kaikki lompakot", - "page-find-wallet-showing": "Esitetään", "page-find-wallet-wallets": "lompakot", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "Olet DeFi-sovellusten käyttäjä ja haluat lompakon, joka on yhteensopiva niiden kanssa. ", "page-find-wallet-developer-title": "Kehittäjä", "page-find-wallet-developer-desc": "Olet kehittäjä ja tarvitset lompakon kehitystyöhön ja dAppien testaamiseen", - "page-find-wallet-filters": "Suodattimet", - "page-find-wallet-active": "aktiivinen", "page-find-wallet-footnote-1": "Tällä sivulla listatut lompakot eivät ole virallisia suosituksia vaan niistä jaetaan tietoa.", "page-find-wallet-footnote-2": " Lompakko-projektien oma hallinto on tuottanut kuvaukset itsenäisesti.", "page-find-wallet-footnote-3": "Lisäämme tuotteita tälle sivulle oman listaus politiikkamme perusteella. Jos haluat meidän lisäävän lompakon, kirjaa pyyntö GitHubiin.", diff --git a/src/intl/fi/table.json b/src/intl/fi/table.json new file mode 100644 index 00000000000..8e68b4d3c4c --- /dev/null +++ b/src/intl/fi/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktiivinen", + "table-filters": "Suodattimet", + "table-showing": "Esitetään" +} \ No newline at end of file diff --git a/src/intl/fil/page-wallets-find-wallet.json b/src/intl/fil/page-wallets-find-wallet.json index 1cf9c404dcb..7e0a4a652eb 100644 --- a/src/intl/fil/page-wallets-find-wallet.json +++ b/src/intl/fil/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Suriin", "page-find-wallet-info-updated-on": "na-update ang impormasyon noong", "page-find-wallet-showing-all-wallets": "Ipinapakita ang lahat ng wallet", - "page-find-wallet-showing": "Ipinapakita", "page-find-wallet-wallets": "wallets", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "Pananalapi", "page-find-wallet-finance-desc": "Mga wallet na nakatuon sa madalas na paggamit ng mga app ng DeFi.", "page-find-wallet-developer-title": "Developer", - "page-find-wallet-developer-desc": "Mga wallet na tumutulong sa pagbuo at pagsubok ng mga dapps.", - "page-find-wallet-filters": "Mga Filter", - "page-find-wallet-active": "aktibo", + "page-find-wallet-developer-desc": "Isa kang developer at kailangan mo ng wallet para tumulong na mag-develop at sumubok ng mga dapp", "page-find-wallet-footnote-1": "Hindi mga opisyal na endorsement ang mga wallet na nakalista sa page na ito, at ibinibigay ang mga ito para sa pagbibigay lang ng kaalaman.", "page-find-wallet-footnote-2": "Ibinigay ang mga paglalarawan ng mga ito ng mga proyekto ng wallet mismo.", "page-find-wallet-footnote-3": "Nagdaragdag kami ng mga produkto sa page na ito base sa pamantayan sa aming patakaran sa paglilista. Kung gusto mong dagdagan namin ang wallet, maghain ng isyu sa GitHub.", diff --git a/src/intl/fil/table.json b/src/intl/fil/table.json new file mode 100644 index 00000000000..5ea849bdc20 --- /dev/null +++ b/src/intl/fil/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktibo", + "table-filters": "Mga Filter", + "table-showing": "Ipinapakita" +} \ No newline at end of file diff --git a/src/intl/fr/page-wallets-find-wallet.json b/src/intl/fr/page-wallets-find-wallet.json index 50f79856391..ad4ea420afc 100644 --- a/src/intl/fr/page-wallets-find-wallet.json +++ b/src/intl/fr/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Vérification", "page-find-wallet-info-updated-on": "infos mises à jour le", "page-find-wallet-showing-all-wallets": "Afficher tous les portefeuilles", - "page-find-wallet-showing": "Affiché ", "page-find-wallet-wallets": "portefeuilles", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Matériel", - "page-find-wallet-personas-title": "Que cherchez-vous ?", "page-find-wallet-new-to-crypto-title": "Débutant dans les cryptos", "page-find-wallet-new-to-crypto-desc": "Débutant recherchant un portefeuille pour démarrer.", "page-find-wallet-nfts-title": "NFTs", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Portefeuilles qui se concentrent sur une utilisation fréquente des apps DeFi.", "page-find-wallet-developer-title": "Développeur", "page-find-wallet-developer-desc": "Portefeuilles qui aident à développer et tester des DApps.", - "page-find-wallet-filters": "Filtres", - "page-find-wallet-active": "actif", "page-find-wallet-footnote-1": "Les portefeuilles répertoriés sur cette page ne sont pas officiellement approuvés et sont fournis à titre d'information uniquement.", "page-find-wallet-footnote-2": "Leurs descriptions ont été fournies par les projets de portefeuilles eux-mêmes.", "page-find-wallet-footnote-3": "Nous ajoutons des produits à cette page sur la base des critères de notre politique en matière de liste. Si vous souhaitez nous voir ajouter un portefeuille, soumettez une demande sur GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Ordinateur", "page-find-wallet-browser": "Navigateur", "page-find-wallet-device": "Appareil", - "page-find-wallet-reset-filters": "Réinitialiser", "page-find-wallet-visit-website": "Visiter le site web", "page-find-wallet-social-links": "Liens", "page-find-wallet-empty-results-title": "Aucun résultat", diff --git a/src/intl/fr/table.json b/src/intl/fr/table.json new file mode 100644 index 00000000000..8229ae4ad4e --- /dev/null +++ b/src/intl/fr/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "actif", + "table-filters": "Filtres", + "table-showing": "Affiché ", + "table-reset-filters": "Réinitialiser", + "table-what-are-you-looking-for": "Que cherchez-vous ?" +} \ No newline at end of file diff --git a/src/intl/hi/page-wallets-find-wallet.json b/src/intl/hi/page-wallets-find-wallet.json index 4e6ee015004..9399d44ee4c 100644 --- a/src/intl/hi/page-wallets-find-wallet.json +++ b/src/intl/hi/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "चेक आउट", "page-find-wallet-info-updated-on": "जानकारी मे अपडेट", "page-find-wallet-showing-all-wallets": "सभी वॉलेट दिखा रहा है", - "page-find-wallet-showing": "दिखाया जा रहा है ", "page-find-wallet-wallets": "वॉलेट", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "वित्त", "page-find-wallet-finance-desc": "DeFi ऐप्स के लगातार उपयोग पर ध्यान केंद्रित करने वाले वॉलेट।", "page-find-wallet-developer-title": "डेवलपर", - "page-find-wallet-developer-desc": "वॉलेट जो dapps को विकसित करने और परीक्षण करने में मदद करते हैं।", - "page-find-wallet-filters": "फिल्टर्स", - "page-find-wallet-active": "सक्रिय", + "page-find-wallet-developer-desc": "आप डेवलपर हैं और dapps विकसित और परीक्षण करने में मदद करने के लिए एक वॉलेट की आवश्यकता है", "page-find-wallet-footnote-1": "इस पेज पर सूचीबद्ध वॉलेट्स आधिकारिक समर्थन नहीं हैं और केवल सूचनात्मक उद्देश्यों के लिए प्रदान किए जाते हैं।", "page-find-wallet-footnote-2": "उनके विवरण वॉलेट प्रोजेक्ट द्वारा स्वयं प्रदान किए गए हैं।", "page-find-wallet-footnote-3": "हम इस पेज पर उत्पादों को हमारे लिस्टिंग नीति के मानदंडों के आधार पर जोड़ते हैं। अगर आप हमसे कोई वॉलेट जोड़ना चाहते हैं, तो GitHub में एक मुद्दा उठाएं।", diff --git a/src/intl/hi/table.json b/src/intl/hi/table.json new file mode 100644 index 00000000000..a0c7bfacbf7 --- /dev/null +++ b/src/intl/hi/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "सक्रिय", + "table-filters": "फिल्टर्स", + "table-showing": "दिखाया जा रहा है " +} \ No newline at end of file diff --git a/src/intl/hr/page-wallets-find-wallet.json b/src/intl/hr/page-wallets-find-wallet.json index 575dcd800fd..9a343eca77d 100644 --- a/src/intl/hr/page-wallets-find-wallet.json +++ b/src/intl/hr/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Odjava", "page-find-wallet-info-updated-on": "informacije ažurirane", "page-find-wallet-showing-all-wallets": "Prikaz svih novčanika", - "page-find-wallet-showing": "Prikazivanje ", "page-find-wallet-wallets": "novčanika", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Novčanici namijenjeni učestaloj uporabi DeFi aplikacija.", "page-find-wallet-developer-title": "Programer", "page-find-wallet-developer-desc": "Novčanici namijenjeni razvoju i testiranju dappova.", - "page-find-wallet-filters": "Filtri", - "page-find-wallet-active": "aktivni", "page-find-wallet-footnote-1": "Prikaz novčanika na ovoj stranici ne predstavlja službeno odobrenje i služi samo za informaciju.", "page-find-wallet-footnote-2": "Njihovi opisi primljeni su izravno od projekata novčanika.", "page-find-wallet-footnote-3": "Na ovu stranicu dodajemo proizvode temeljem kriterija iz naše politike uvrštenja. Ako želite da dodamo novčanik, rehistrirajte problem na GitHub-u.", diff --git a/src/intl/hr/table.json b/src/intl/hr/table.json new file mode 100644 index 00000000000..98c28cce8f4 --- /dev/null +++ b/src/intl/hr/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "aktivni", + "table-filters": "Filtri", + "table-showing": "Prikazivanje ", + "table-reset-filters": "Resetirajte filtre" +} \ No newline at end of file diff --git a/src/intl/hu/page-wallets-find-wallet.json b/src/intl/hu/page-wallets-find-wallet.json index 22e543384ea..ee5552344b8 100644 --- a/src/intl/hu/page-wallets-find-wallet.json +++ b/src/intl/hu/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Nézze meg", "page-find-wallet-info-updated-on": "információ utolsó frissítésének dátuma", "page-find-wallet-showing-all-wallets": "Az összes tárca megjelenítése", - "page-find-wallet-showing": "Megjelenítve", "page-find-wallet-wallets": "tárca", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardver", - "page-find-wallet-personas-title": "Mit keres?", "page-find-wallet-new-to-crypto-title": "Kezdő a kripto világában", "page-find-wallet-new-to-crypto-desc": "Új felhasználó keres kezdő tárcát.", "page-find-wallet-nfts-title": "NFT-k", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Tárcák DeFi alkalmazások gyakori használatára.", "page-find-wallet-developer-title": "Fejlesztő", "page-find-wallet-developer-desc": "Tárcák dappok fejlesztésére és tesztelésére.", - "page-find-wallet-filters": "Szűrők", - "page-find-wallet-active": "aktív", "page-find-wallet-footnote-1": "Az oldalon szereplő tárcák nem minősülnek az Ethereum által minősített termékeknek, az itt megjelenő adataik tájékoztatási célt szolgálnak.", "page-find-wallet-footnote-2": "A leírásokat a tárcákat biztosító projekt adta.", "page-find-wallet-footnote-3": "Erre az oldalra a listázási szabályzatban meghatározott kritériumok alapján veszünk fel új termékeket. Ha új termék megjelenítését szeretné, akkor kérje a GitHubon.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Asztali számítógép", "page-find-wallet-browser": "Böngésző", "page-find-wallet-device": "Eszköz", - "page-find-wallet-reset-filters": "Visszaállítás", "page-find-wallet-visit-website": "Látogasson el a webhelyre", "page-find-wallet-social-links": "Linkek", "page-find-wallet-empty-results-title": "Nincs találat", diff --git a/src/intl/hu/table.json b/src/intl/hu/table.json new file mode 100644 index 00000000000..47566e4fd54 --- /dev/null +++ b/src/intl/hu/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "aktív", + "table-filters": "Szűrők", + "table-showing": "Megjelenítve", + "table-reset-filters": "Visszaállítás", + "table-what-are-you-looking-for": "Mit keres?" +} \ No newline at end of file diff --git a/src/intl/hy-am/page-wallets-find-wallet.json b/src/intl/hy-am/page-wallets-find-wallet.json index f3796c8725d..992bf654211 100644 --- a/src/intl/hy-am/page-wallets-find-wallet.json +++ b/src/intl/hy-am/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "տեղեկատվությունը թարմացվել է`", "page-find-wallet-showing-all-wallets": "Ցուցադրել բոլոր դրամապանակները", - "page-find-wallet-showing": "Ցուցադրել", "page-find-wallet-wallets": "դրամապանակներ", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "Դուք DeFi (ապակենտրոնացված ֆինանսներ) օգտատեր եք և ուզում եք դրամապանակ, որը կկարողան միանալ ապ-ֆինանսական հավելվածներին", "page-find-wallet-developer-title": "Ծրագրավորող", "page-find-wallet-developer-desc": "Դուք ծրագրավորող եք և հավելվածները ստեղծելու ու թեստավորելու նպատակով դրամապանակի կարիք ունեք", - "page-find-wallet-filters": "Ֆիլտրներ", - "page-find-wallet-active": "ակտիվ", "page-find-wallet-footnote-1": "Այս էջում նշված դրամապանակների անունները տրվել են միմիայն տեղեկատվական նպատակներով:", "page-find-wallet-footnote-2": "Դրանց նկարագրությունը տրվել է դրանց հիմքում ընկած նախագծերի կողմից", "page-find-wallet-footnote-3": "Մենք արտադրանքի անուն ավելացնում ենք հիմնվելով ցուցակագրման քաղաքականության չափանիշների վրա: Եթե ցանկանում եք, որ մենք այդ ցուցակում որևէ դրամապանակ ավելացնենք Գիթհաբում բարձրացրեք այդ հարցը:", diff --git a/src/intl/hy-am/table.json b/src/intl/hy-am/table.json new file mode 100644 index 00000000000..17b26434373 --- /dev/null +++ b/src/intl/hy-am/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "ակտիվ", + "table-filters": "Ֆիլտրներ", + "table-showing": "Ցուցադրել" +} \ No newline at end of file diff --git a/src/intl/id/page-wallets-find-wallet.json b/src/intl/id/page-wallets-find-wallet.json index c19be803972..c8644cdf4b7 100644 --- a/src/intl/id/page-wallets-find-wallet.json +++ b/src/intl/id/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Lihat", "page-find-wallet-info-updated-on": "info diperbarui pada", "page-find-wallet-showing-all-wallets": "Tampilkan semua dompet", - "page-find-wallet-showing": "Menampilkan", "page-find-wallet-wallets": "dompet", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "Keuangan", "page-find-wallet-finance-desc": "Dompet yang berfokus pada penggunaan aplikasi DeFi yang sering.", "page-find-wallet-developer-title": "Pengembang", - "page-find-wallet-developer-desc": "Dompet yang membantu mengembangkan dan menguji dapps.", - "page-find-wallet-filters": "Filter", - "page-find-wallet-active": "aktif", + "page-find-wallet-developer-desc": "Anda adalah pengembang dan membutuhkan dompet untuk membantu mengembangkan dan menguji dapps", "page-find-wallet-footnote-1": "Dompet yang tercantum di halaman ini bukan dukungan resmi, dan disediakan hanya untuk tujuan informasi.", "page-find-wallet-footnote-2": "Deskripsi mereka telah disediakan oleh proyek dompet itu sendiri.", "page-find-wallet-footnote-3": "Kami menambahkan produk ke halaman ini berdasarkan kriteria dalam kebijakan pendaftaran kami. Jika Anda menginginkan penambahan dompet dari kami, ajukan persoalan ini di GitHub.", diff --git a/src/intl/id/table.json b/src/intl/id/table.json new file mode 100644 index 00000000000..63e48c0d4c3 --- /dev/null +++ b/src/intl/id/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "aktif", + "table-filters": "Filter", + "table-showing": "Menampilkan", + "table-reset-filters": "Atur ulang filter" +} \ No newline at end of file diff --git a/src/intl/ig/page-wallets-find-wallet.json b/src/intl/ig/page-wallets-find-wallet.json index 491653fc742..592342d74af 100644 --- a/src/intl/ig/page-wallets-find-wallet.json +++ b/src/intl/ig/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "ozi nke akwalitere na", "page-find-wallet-showing-all-wallets": "Na egosi obere akpa niile", - "page-find-wallet-showing": "Na egosi", "page-find-wallet-wallets": "akpa ego", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "Ị bụ onye na-eji DeFi ma na-achọkwa obere akpa nke ga na enye gị ohere ijikọ na ngwa DeFi", "page-find-wallet-developer-title": "Onye nrụpụta", "page-find-wallet-developer-desc": "Ị bụ onye nke nrụpụta ma chọkwaa obere akpa iji kwado nwulite na nwalee dapps", - "page-find-wallet-filters": "Ihe nhọcha", - "page-find-wallet-active": "nọ n'ọrụ", "page-find-wallet-footnote-1": "Akpa ego ndi edepụtara na ibe akwụkwọ a abụghị nke gọọmentị kwadoro, ma enyere ya naanị maka ebumnuche ozi.", "page-find-wallet-footnote-2": "Akọwara ha site na ọrụ obere akpa nke onwe ha.", "page-find-wallet-footnote-3": "Anyị na-etinye ngwaahịa na ibe akwụkwọ a site na usoro anyi dị na ndepụta amụma. Ọ bụrụ na ị ga-achọ ka anyị tinye kwa obere akpa, welite okwu Ń GitHub.", diff --git a/src/intl/ig/table.json b/src/intl/ig/table.json new file mode 100644 index 00000000000..40cd842a1b9 --- /dev/null +++ b/src/intl/ig/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "nọ n'ọrụ", + "table-filters": "Ihe nhọcha", + "table-showing": "Na egosi" + } \ No newline at end of file diff --git a/src/intl/it/page-wallets-find-wallet.json b/src/intl/it/page-wallets-find-wallet.json index af8d99b9400..bf8ce680780 100644 --- a/src/intl/it/page-wallets-find-wallet.json +++ b/src/intl/it/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Dai un'occhiata a:", "page-find-wallet-info-updated-on": "info aggiornate il", "page-find-wallet-showing-all-wallets": "Mostra tutti i portafogli", - "page-find-wallet-showing": "Vengono mostrati ", "page-find-wallet-wallets": "portafogli", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "Cosa stai cercando?", "page-find-wallet-new-to-crypto-title": "Senza conoscenza di criptovalute", "page-find-wallet-new-to-crypto-desc": "Nuovo utente alla ricerca di un portafoglio per principianti.", "page-find-wallet-nfts-title": "NFT", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Portafogli incentrati sull'utilizzo frequente di app di DeFi.", "page-find-wallet-developer-title": "Sviluppatore", "page-find-wallet-developer-desc": "Portafogli che aiutano a sviluppare e testare dapp.", - "page-find-wallet-filters": "Filtri", - "page-find-wallet-active": "attivi", "page-find-wallet-footnote-1": "I portafogli elencati su questa pagina non sono sponsorizzazioni ufficiali e sono messi a disposizione per soli scopi informativi.", "page-find-wallet-footnote-2": "Le loro descrizioni sono state fornite dagli stessi progetti dei portafogli.", "page-find-wallet-footnote-3": "Aggiungiamo prodotti a questa pagina secondo i criteri nella nostra politica di elencazione. Se vorresti che aggiungessimo un portafoglio, apri un ticket su GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Desktop", "page-find-wallet-browser": "Browser", "page-find-wallet-device": "Dispositivo", - "page-find-wallet-reset-filters": "Resetta", "page-find-wallet-visit-website": "Visita il sito web", "page-find-wallet-social-links": "Link", "page-find-wallet-empty-results-title": "Nessun risultato", diff --git a/src/intl/it/table.json b/src/intl/it/table.json new file mode 100644 index 00000000000..e99708b11f3 --- /dev/null +++ b/src/intl/it/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "attivi", + "table-filters": "Filtri", + "table-showing": "Vengono mostrati ", + "table-reset-filters": "Resetta", + "table-what-are-you-looking-for": "Cosa stai cercando?" +} \ No newline at end of file diff --git a/src/intl/ja/page-wallets-find-wallet.json b/src/intl/ja/page-wallets-find-wallet.json index 8503dcab825..c4c4ddf40a3 100644 --- a/src/intl/ja/page-wallets-find-wallet.json +++ b/src/intl/ja/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "チェックアウト", "page-find-wallet-info-updated-on": "更新日時", "page-find-wallet-showing-all-wallets": "すべてのウォレットを表示", - "page-find-wallet-showing": "表示 ", "page-find-wallet-wallets": "ウォレット", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "ハードウェア", - "page-find-wallet-personas-title": "何をお探しですか?", "page-find-wallet-new-to-crypto-title": "暗号資産が始めたの方", "page-find-wallet-new-to-crypto-desc": "初心者用のウォレットを探している初めてのユーザー。", "page-find-wallet-nfts-title": "NFT", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "DeFiアプリの頻繁な使用に重点を置いたウォレット。", "page-find-wallet-developer-title": "デベロッパー", "page-find-wallet-developer-desc": "Dappの開発およびテストに役立つウォレット。", - "page-find-wallet-filters": "フィルター", - "page-find-wallet-active": "アクティブ", "page-find-wallet-footnote-1": "このページに記載されているウォレットは公式に推奨するものではなく、情報提供のみを目的として提供されています。", "page-find-wallet-footnote-2": "ウォレットの説明文は、それぞれのウォレットプロジェクト側より提供されたものです。", "page-find-wallet-footnote-3": "イーサリアムの掲載ポリシーに基づいて、ウォレットを本ページに追加しています。新たなウォレットの追加をご希望の場合は、GitHubで問題を提起してください。", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "デスクトップ", "page-find-wallet-browser": "ブラウザ", "page-find-wallet-device": "デバイス", - "page-find-wallet-reset-filters": "リセット", "page-find-wallet-visit-website": "ウェブサイトを訪問", "page-find-wallet-social-links": "リンク", "page-find-wallet-empty-results-title": "検索結果はありません", diff --git a/src/intl/ja/table.json b/src/intl/ja/table.json new file mode 100644 index 00000000000..eeaf78f41e0 --- /dev/null +++ b/src/intl/ja/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "アクティブ", + "table-filters": "フィルター", + "table-showing": "表示 ", + "table-reset-filters": "リセット", + "table-what-are-you-looking-for": "何をお探しですか?" +} \ No newline at end of file diff --git a/src/intl/km/page-wallets-find-wallet.json b/src/intl/km/page-wallets-find-wallet.json index a7b1c2e1501..2d2b24783ec 100644 --- a/src/intl/km/page-wallets-find-wallet.json +++ b/src/intl/km/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "ព័ត៌មាន​ត្រូវ​បាន​ធ្វើ​​បច្ចុប្បន្នភាព​​នៅ", "page-find-wallet-showing-all-wallets": "បង្ហាញកាបូបទាំង​អស់", - "page-find-wallet-showing": "បង្ហាញ", "page-find-wallet-wallets": "កាបូប", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "អ្ន​ក​ដែលប្រើ DeFi ហើយ​ចង់បានកាបូប​ដែល​អ​នុញ្ញាត​ឲ្យ​អ្នក​ភ្ជាប់ទៅកម្ម​វិ​​ធី DeFi", "page-find-wallet-developer-title": "អ្នក​អភិ​​វឌ្ឍ​ន៍", "page-find-wallet-developer-desc": "អ្នក​អភិវឌ្ឍន៍ ហើយ​ត្រូវការកាបូប​ដើម្បីជួយ​អភិវឌ្ឍ និងសាកល្បងកម្មវិធីវិមជ្ឈការ dapps", - "page-find-wallet-filters": "តម្រង", - "page-find-wallet-active": "ដំណើរការ", "page-find-wallet-footnote-1": "កាបូប​ដែលបានរាយក្នុង​ទំព័រនេះមិន​មែន​ជាការ​​យល់​​ព្រម​ជា​ផ្លូវ​ការ​ទេ ហើយ​គ្រាន់តែ​ផ្ត​ល់ជូន​ជាព័ត៌​មាន​តែប៉ុណ្ណោះ។", "page-find-wallet-footnote-2": "ការ​ពិ​ព​ណ៌​នា​ទាំងនេះត្រូវ​បាន​ផ្ត​ល់​​ជូន​ដោយ​គម្រោង​កាបូប​ខ្លួន​ឯង។", "page-find-wallet-footnote-3": "យើងបន្ថែមផលិតផលទៅទំព័រនេះដោយផ្អែកលើលក្ខណៈវិនិច្ឆ័យនៅក្នុង គោលការណ៍ចុះបញ្ជីរបស់យើង។ ប្រសិនបើអ្នកចង់ឱ្យយើងបន្ថែមកាបូបមួយ សូមលើកបញ្ហាមួយនៅក្នុង GitHub.", diff --git a/src/intl/km/table.json b/src/intl/km/table.json new file mode 100644 index 00000000000..4e8671b74c7 --- /dev/null +++ b/src/intl/km/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "ដំណើរការ", + "table-filters": "តម្រង", + "table-showing": "បង្ហាញ", + "table-reset-filters": "Reset", + "table-what-are-you-looking-for": "What are you looking for?" +} \ No newline at end of file diff --git a/src/intl/kn/page-wallets-find-wallet.json b/src/intl/kn/page-wallets-find-wallet.json index 68b85921bce..15939077095 100644 --- a/src/intl/kn/page-wallets-find-wallet.json +++ b/src/intl/kn/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "ಮಾಹಿತಿ ನವೀಕರಿಸಲಾಗಿದೆ", "page-find-wallet-showing-all-wallets": "ಎಲ್ಲಾ ವಾಲೆಟ್‌ಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆ", - "page-find-wallet-showing": "ತೋರಿಸುತ್ತಿದೆ", "page-find-wallet-wallets": "ವ್ಯಾಲೆಟ್ ಗಳು", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "ಆಂಡ್ರಾಯ್ಡ್", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "ನೀವು DeFi ಬಳಸುವವರು ಮತ್ತು DeFi ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಅನುಮತಿಸುವ ವಾಲೆಟ್ ಬಯಸುವವರು", "page-find-wallet-developer-title": "ಡೆವಲಪರ್", "page-find-wallet-developer-desc": "ನೀವು ಡೆವೆಲಪರ್ ಮತ್ತು ಡ್ಯಾಪ್ಸ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮತ್ತು ಪರೀಕ್ಷಿಸಲು ವಾಲೆಟ್ ಅಗತ್ಯವಾಗಿದೆ", - "page-find-wallet-filters": "ಫಿಲ್ಟರ್‌ಗಳು", - "page-find-wallet-active": "ಸಕ್ರಿಯ", "page-find-wallet-footnote-1": "ಈ ಪುಟದಲ್ಲಿ ಪಟ್ಟಿಯಾದ ವಾಲೆಟ್‌ಗಳು ಅಧಿಕೃತ ಅಭಿಪ್ರಾಯಗಳಲ್ಲ ಮತ್ತು ಮಾಹಿತಿಯ ಉದ್ದೇಶಕ್ಕೆ ಮಾತ್ರ ಒದಗಿಸಲಾಗಿದೆ.", "page-find-wallet-footnote-2": "ಅವರ ವಿವರಣೆಗಳು ವಾಲೆಟ್ ಯೋಜನೆಗಳೇ ಒದಗಿಸಿದವುಗಳಾಗಿವೆ.", "page-find-wallet-footnote-3": "ನಾವು ಈ ಪುಟಕ್ಕೆ ಉತ್ತಮಗಳನ್ನು ನಮ್ಮ ಪಟ್ಟಿ ನೀತಿಯಲ್ಲಿನ ಮಾನದಂಡಗಳ ಆಧಾರದ ಮೇಲೆ ಸೇರಿಸುತ್ತೇವೆ. ನೀವು ನಮಗೆ ಒಂದು ವಾಲೆಟ್ ಸೇರಿಸಬೇಕೆಂದಿದ್ದರೆ, ಗಿಟ್‌ಹಬ್‌ನಲ್ಲಿ ಸಮಸ್ಯೆಯನ್ನು ಉತ್ತೇರಿಸಿ.", diff --git a/src/intl/kn/table.json b/src/intl/kn/table.json new file mode 100644 index 00000000000..f7e784ef961 --- /dev/null +++ b/src/intl/kn/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "ಸಕ್ರಿಯ", + "table-filters": "ಫಿಲ್ಟರ್‌ಗಳು", + "table-showing": "ತೋರಿಸುತ್ತಿದೆ" +} \ No newline at end of file diff --git a/src/intl/ko/page-wallets-find-wallet.json b/src/intl/ko/page-wallets-find-wallet.json index 0aa85113b52..f65e4a3ec8d 100644 --- a/src/intl/ko/page-wallets-find-wallet.json +++ b/src/intl/ko/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "확인", "page-find-wallet-info-updated-on": "업데이트된 정보", "page-find-wallet-showing-all-wallets": "모든 지갑 표시", - "page-find-wallet-showing": "표시 ", "page-find-wallet-wallets": "지갑", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "금융", "page-find-wallet-finance-desc": "디파이 앱의 빈번한 사용에 중점을 둔 지갑.", "page-find-wallet-developer-title": "개발자", - "page-find-wallet-developer-desc": "디앱을 개발하고 테스트하는 데 도움이 되는 지갑.", - "page-find-wallet-filters": "필터", - "page-find-wallet-active": "활성", + "page-find-wallet-developer-desc": "귀하는 개발자이며 디앱을 개발하고 테스트하는 데 도움이 되는 지갑이 필요합니다.", "page-find-wallet-footnote-1": "이 페이지에 나열된 지갑은 공식적으로 보증된 것이 아니며 정보 제공 목적으로만 제공됩니다.", "page-find-wallet-footnote-2": "해당 설명은 지갑 프로젝트에서 직접 제공했습니다.", "page-find-wallet-footnote-3": "리스팅 정책의 기준에 따라 이 페이지에 제품을 추가합니다. 지갑을 추가하려면 GitHub에 문제를 제출하세요.", diff --git a/src/intl/ko/table.json b/src/intl/ko/table.json new file mode 100644 index 00000000000..6910cd66208 --- /dev/null +++ b/src/intl/ko/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "활성", + "table-filters": "필터", + "table-showing": "표시 ", + "table-reset-filters": "필터 초기화" +} \ No newline at end of file diff --git a/src/intl/ml/page-wallets-find-wallet.json b/src/intl/ml/page-wallets-find-wallet.json index db978e08c3e..0335e7c32dd 100644 --- a/src/intl/ml/page-wallets-find-wallet.json +++ b/src/intl/ml/page-wallets-find-wallet.json @@ -11,6 +11,5 @@ "page-find-wallet-swaps": "വികേന്ദ്രീകൃത ടോക്കൺ സ്വാപ്പുകൾ", "page-find-wallet-swaps-desc": "നിങ്ങളുടെ വാലറ്റിൽ നിന്ന് നേരിട്ട് ETH നും മറ്റ് ടോക്കണുകൾക്കുമിടയിൽ വ്യാപാരം നടത്തുക.", "page-find-wallet-multisig": "മൾട്ടി സിഗ്നേച്ചർ അക്കൗണ്ടുകൾ", - "page-find-wallet-multisig-desc": "അധിക സുരക്ഷയ്ക്കായി, ചില ഇടപാടുകൾക്ക് അംഗീകാരം നൽകാൻ മൾട്ടി-സിഗ്നേച്ചർ വാലറ്റുകൾക്ക് ഒന്നിലധികം അക്കൗണ്ടുകൾ ആവശ്യമാണ്.", - "page-find-wallet-showing": "കാണിക്കുന്നു " + "page-find-wallet-multisig-desc": "അധിക സുരക്ഷയ്ക്കായി, ചില ഇടപാടുകൾക്ക് അംഗീകാരം നൽകാൻ മൾട്ടി-സിഗ്നേച്ചർ വാലറ്റുകൾക്ക് ഒന്നിലധികം അക്കൗണ്ടുകൾ ആവശ്യമാണ്." } diff --git a/src/intl/ml/table.json b/src/intl/ml/table.json new file mode 100644 index 00000000000..7d9bf51445c --- /dev/null +++ b/src/intl/ml/table.json @@ -0,0 +1,3 @@ +{ + "table-showing": "കാണിക്കുന്നു " +} \ No newline at end of file diff --git a/src/intl/mr/page-wallets-find-wallet.json b/src/intl/mr/page-wallets-find-wallet.json index 25ac0066af1..7e8b7ce09b8 100644 --- a/src/intl/mr/page-wallets-find-wallet.json +++ b/src/intl/mr/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "माहिती अपडेट केली आहे", "page-find-wallet-showing-all-wallets": "सर्व वॅलेटे दाखवत आहे", - "page-find-wallet-showing": "दाखवत आहे", "page-find-wallet-wallets": "वॉलेट", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "तुम्ही DeFi वापरणारे आहात आणि तुम्हाला DeFi अनुप्रयोगशी कनेक्ट करू देणारे वॉलेट हवे आहे", "page-find-wallet-developer-title": "विकसक", "page-find-wallet-developer-desc": "तुम्ही विकसक आहात आणि dapps विकसित करण्यासाठी आणि चाचणी करण्यात मदत करण्यासाठी वॉलेटची आवश्यकता आहे", - "page-find-wallet-filters": "फिल्टर", - "page-find-wallet-active": "सक्रिय", "page-find-wallet-footnote-1": "या पृष्ठावर सूचीबद्ध केलेले वॉलेट्स अधिकृत समर्थन नाहीत आणि केवळ माहितीच्या उद्देशाने प्रदान केले आहेत.", "page-find-wallet-footnote-2": "त्यांची वर्णने वॉलेट प्रकल्पांनीच दिली आहेत.", "page-find-wallet-footnote-3": "आम्ही आमच्या सूची धोरण मधील निकषांवर आधारित या पृष्ठावर उत्पादने जोडतो. तुम्हाला आम्ही वॉलेट जोडायचे असल्यास, GitHub मध्ये समस्या मांडा सुचवा.", diff --git a/src/intl/mr/table.json b/src/intl/mr/table.json new file mode 100644 index 00000000000..d288afd79ed --- /dev/null +++ b/src/intl/mr/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "सक्रिय", + "table-filters": "फिल्टर", + "table-showing": "दाखवत आहे" +} \ No newline at end of file diff --git a/src/intl/ms/page-wallets-find-wallet.json b/src/intl/ms/page-wallets-find-wallet.json index fd8700b3bbb..033699de65b 100644 --- a/src/intl/ms/page-wallets-find-wallet.json +++ b/src/intl/ms/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Semak keluar", "page-find-wallet-info-updated-on": "maklumat dikemas kini pada", "page-find-wallet-showing-all-wallets": "Menunjukkan semua dompet", - "page-find-wallet-showing": "Menunjukkan", "page-find-wallet-wallets": "dompet", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Dompet memfokuskan pada penggunaan apl DeFi yang kerap.", "page-find-wallet-developer-title": "Pembangun", "page-find-wallet-developer-desc": "Dompet yang membantu membangunkan dan menguji dapp.", - "page-find-wallet-filters": "Penapis", - "page-find-wallet-active": "aktif", "page-find-wallet-footnote-1": "Dompet yang disenaraikan di halaman ini bukan sokongan rasmi, dan disediakan untuk tujuan maklumat sahaja.", "page-find-wallet-footnote-2": "Penerangan telah disediakan oleh projek dompet itu sendiri.", "page-find-wallet-footnote-3": "Kami menambah produk kepada halaman ini berdasarkan kriteria dalam dasar penyenaraian. Jika anda ingin kami menambah suatu dompet, bangkitkan isu di GitHub.", diff --git a/src/intl/ms/table.json b/src/intl/ms/table.json new file mode 100644 index 00000000000..e7b5de24bab --- /dev/null +++ b/src/intl/ms/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktif", + "table-filters": "Penapis", + "table-showing": "Menunjukkan" +} \ No newline at end of file diff --git a/src/intl/nl/page-wallets-find-wallet.json b/src/intl/nl/page-wallets-find-wallet.json index 7aae84409e3..568d1907e8e 100644 --- a/src/intl/nl/page-wallets-find-wallet.json +++ b/src/intl/nl/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Bekijken", "page-find-wallet-info-updated-on": "informatie bijgewerkt op", "page-find-wallet-showing-all-wallets": "Alle portemonnees weergeven", - "page-find-wallet-showing": "Weergeven", "page-find-wallet-wallets": "portemonnees", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,9 +71,10 @@ "page-find-wallet-finance-title": "Financiën", "page-find-wallet-finance-desc": "Portemonnees met focus op frequent gebruik van DeFi-apps.", "page-find-wallet-developer-title": "Ontwikkelaar", + "page-find-wallet-persona-desc": "Kies het profiel dat overeenkomt met jouw type gebruiker en filter de portemonneelijst", + "page-find-wallet-profile-filters": "Profiel filters", + "page-find-wallet-feature-filters": "Functiefilters", "page-find-wallet-developer-desc": "Portemonnees die helpen bij het ontwikkelen en testen van dapps.", - "page-find-wallet-filters": "Filters", - "page-find-wallet-active": "actief", "page-find-wallet-footnote-1": "Portemonnees op deze pagina zijn niet officiëel goedgekeurd en worden alleen ter informatie aangeboden.", "page-find-wallet-footnote-2": "De beschrijvingen zijn afkomstig van de portemonneeprojecten zelf.", "page-find-wallet-footnote-3": "We voegen producten toe aan deze pagina op basis van criteria in ons lijstbeleid. Als u wilt dat we een portemonnee toevoegen, meld dit dan via GitHub.", @@ -82,6 +82,8 @@ "page-find-wallet-desktop": "Desktop", "page-find-wallet-browser": "Browser", "page-find-wallet-device": "Apparaat", + "page-find-choose-to-compare": "Kies om te vergelijken", + "page-find-wallet-choose-features": "Functies kiezen", "page-find-wallet-reset-filters": "Reset", "page-find-wallet-visit-website": "Bezoek website", "page-find-wallet-social-links": "Links", diff --git a/src/intl/nl/table.json b/src/intl/nl/table.json new file mode 100644 index 00000000000..cb01bdcdffc --- /dev/null +++ b/src/intl/nl/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "actief", + "table-filters": "Filters", + "table-showing": "Weergeven", + "table-reset-filters": "Filters resetten" +} \ No newline at end of file diff --git a/src/intl/pcm/page-wallets-find-wallet.json b/src/intl/pcm/page-wallets-find-wallet.json index 51a4af43aba..d3535ed67a4 100644 --- a/src/intl/pcm/page-wallets-find-wallet.json +++ b/src/intl/pcm/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Shek out", "page-find-wallet-info-updated-on": "info wey dey updated on", "page-find-wallet-showing-all-wallets": "To dey show all di wallets", - "page-find-wallet-showing": "As e dey show", "page-find-wallet-wallets": "wallets", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Wallets wey dey fokus on frequent usage of DeFi apps.", "page-find-wallet-developer-title": "Developa", "page-find-wallet-developer-desc": "Wallets wey dey helep divelop and test dapps.", - "page-find-wallet-filters": "Filtas", - "page-find-wallet-active": "acktiv", "page-find-wallet-footnote-1": "Wallets wey dem list for dis page nor get official endorsements, and dem dey provided only for informashional purposes.", "page-find-wallet-footnote-2": "Di wallet projects don already provide dia diskripshon demsefs.", "page-find-wallet-footnote-3": "Wi add products to dis page based on di kriteria wey dey inside awa listin policy. If yu go like add new wallet, yu fit raise issue for di GitHub.", diff --git a/src/intl/pcm/table.json b/src/intl/pcm/table.json new file mode 100644 index 00000000000..a1d4cdb7770 --- /dev/null +++ b/src/intl/pcm/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "acktiv", + "table-filters": "Filtas", + "table-showing": "As e dey show", + "table-reset-filters": "Make yu reset filters" +} \ No newline at end of file diff --git a/src/intl/pl/page-wallets-find-wallet.json b/src/intl/pl/page-wallets-find-wallet.json index 24cec2e82fb..81068c50d9f 100644 --- a/src/intl/pl/page-wallets-find-wallet.json +++ b/src/intl/pl/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Sprawdź", "page-find-wallet-info-updated-on": "data aktualizacji informacji", "page-find-wallet-showing-all-wallets": "Wyświetlanie wszystkich portfeli", - "page-find-wallet-showing": "Pokazuje ", "page-find-wallet-wallets": "portfele", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Sprzęt", - "page-find-wallet-personas-title": "Czego poszukujesz?", "page-find-wallet-new-to-crypto-title": "Początkujący w kryptowalutach", "page-find-wallet-new-to-crypto-desc": "Nowy użytkownik szukający portfela dla początkujących.", "page-find-wallet-nfts-title": "Tokeny NFT", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Portfele skupiające się na częstym korzystaniu z aplikacji DeFi.", "page-find-wallet-developer-title": "Deweloper", "page-find-wallet-developer-desc": "Portfele, które pomagają rozwijać i testować zdecentralizowane aplikacje.", - "page-find-wallet-filters": "Filtry", - "page-find-wallet-active": "aktywny", "page-find-wallet-footnote-1": "Wyszczególnienie portfeli na tej stronie nie stanowi ich oficjalnej aprobaty i portfele te podano wyłącznie do celów informacyjnych.", "page-find-wallet-footnote-2": "Ich opisy zostały dostarczone przez same projekty portfela.", "page-find-wallet-footnote-3": "Produkty dodajemy do tej strony na podstawie kryteriów określonych w naszych zasadach . Jeśli chcesz, abyśmy dodali jakiś portfel, prześlij zgłoszenie w GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Desktopowe", "page-find-wallet-browser": "Przeglądarkowe", "page-find-wallet-device": "Urządzenie", - "page-find-wallet-reset-filters": "Resetuj", "page-find-wallet-visit-website": "Odwiedź stronę", "page-find-wallet-social-links": "Linki", "page-find-wallet-empty-results-title": "Brak wyników", diff --git a/src/intl/pl/table.json b/src/intl/pl/table.json new file mode 100644 index 00000000000..5be0aecbde7 --- /dev/null +++ b/src/intl/pl/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "aktywny", + "table-filters": "Filtry", + "table-showing": "Pokazuje ", + "table-reset-filters": "Resetuj", + "table-what-are-you-looking-for": "Czego poszukujesz?" +} \ No newline at end of file diff --git a/src/intl/pt-br/page-wallets-find-wallet.json b/src/intl/pt-br/page-wallets-find-wallet.json index a6ce8ff503f..361bbdae053 100644 --- a/src/intl/pt-br/page-wallets-find-wallet.json +++ b/src/intl/pt-br/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Verificação", "page-find-wallet-info-updated-on": "informações atualizadas em", "page-find-wallet-showing-all-wallets": "Mostrando todas as carteiras", - "page-find-wallet-showing": "Exibindo ", "page-find-wallet-wallets": "carteiras", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,9 +71,10 @@ "page-find-wallet-finance-title": "Finanças", "page-find-wallet-finance-desc": "Carteiras com foco na usabilidade frequente de aplicativos DeFi.", "page-find-wallet-developer-title": "Desenvolvedor", + "page-find-wallet-persona-desc": "Escolha o perfil que corresponde ao seu tipo de usuário e filtre a lista de carteiras", + "page-find-wallet-profile-filters": "Filtros de perfil", + "page-find-wallet-feature-filters": "Filtros de recursos", "page-find-wallet-developer-desc": "Carteiras que ajudam a desenvolver e testar dapps.", - "page-find-wallet-filters": "Filtros", - "page-find-wallet-active": "ativo", "page-find-wallet-footnote-1": "As carteiras listadas nesta página não são endossos oficiais e são fornecidas apenas a título informativo.", "page-find-wallet-footnote-2": "As descrições delas foram fornecidas pelos próprios projetos da carteira.", "page-find-wallet-footnote-3": "Adicionamos produtos a esta página com base nos critérios em nossa política de listagem. Se você quiser que adicionemos uma carteira, abra um tíquete no GitHub.", @@ -82,6 +82,8 @@ "page-find-wallet-desktop": "Área de trabalho", "page-find-wallet-browser": "Navegador", "page-find-wallet-device": "Dispositivo", + "page-find-choose-to-compare": "Selecione para comparar", + "page-find-wallet-choose-features": "Escolher recursos", "page-find-wallet-reset-filters": "Redefinir", "page-find-wallet-visit-website": "Acessar site", "page-find-wallet-social-links": "Links", diff --git a/src/intl/pt-br/table.json b/src/intl/pt-br/table.json new file mode 100644 index 00000000000..1db041cfc72 --- /dev/null +++ b/src/intl/pt-br/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "ativo", + "table-filters": "Filtros", + "table-showing": "Exibindo ", + "table-reset-filters": "Redefinir filtros" +} \ No newline at end of file diff --git a/src/intl/pt/page-wallets-find-wallet.json b/src/intl/pt/page-wallets-find-wallet.json index f324d0ec24c..11abeac5ac2 100644 --- a/src/intl/pt/page-wallets-find-wallet.json +++ b/src/intl/pt/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Fazer Check-out", "page-find-wallet-info-updated-on": "informação atualizada em", "page-find-wallet-showing-all-wallets": "Mostrar todas as carteiras", - "page-find-wallet-showing": "A mostrar", "page-find-wallet-wallets": "carteiras", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Carteiras com foco no uso frequente de aplicações DeFi.", "page-find-wallet-developer-title": "Programador", "page-find-wallet-developer-desc": "Carteiras que ajudam a desenvolver e testar dapps.", - "page-find-wallet-filters": "Filtros", - "page-find-wallet-active": "ativo", "page-find-wallet-footnote-1": "As carteiras listadas nesta página não são recomendações oficiais e são fornecidas apenas para fins informativos.", "page-find-wallet-footnote-2": "As suas descrições foram fornecidas pelos próprios projetos de carteiras.", "page-find-wallet-footnote-3": "Adicionamos produtos a esta página com base nos critérios da nossa política de admissão. Se pretender que adicionemos uma carteira, levante uma questão no GitHub.", diff --git a/src/intl/pt/table.json b/src/intl/pt/table.json new file mode 100644 index 00000000000..670bb424a5a --- /dev/null +++ b/src/intl/pt/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "ativo", + "table-filters": "Filtros", + "table-showing": "A mostrar" +} \ No newline at end of file diff --git a/src/intl/ro/page-wallets-find-wallet.json b/src/intl/ro/page-wallets-find-wallet.json index 0506fb127e8..ff56926d4ae 100644 --- a/src/intl/ro/page-wallets-find-wallet.json +++ b/src/intl/ro/page-wallets-find-wallet.json @@ -11,6 +11,5 @@ "page-find-wallet-swaps": "Schimburi de tokenuri descentralizate", "page-find-wallet-swaps-desc": "Tranzacționează între ETH și alte token-uri direct din portofel.", "page-find-wallet-multisig": "Conturi cu multi-semnătură", - "page-find-wallet-multisig-desc": "Pentru o securitate suplimentară, portofelele cu multi-semnătură necesită mai multe conturi pentru a autoriza anumite tranzacții.", - "page-find-wallet-showing": "Se afișează " + "page-find-wallet-multisig-desc": "Pentru o securitate suplimentară, portofelele cu multi-semnătură necesită mai multe conturi pentru a autoriza anumite tranzacții." } diff --git a/src/intl/ro/table.json b/src/intl/ro/table.json new file mode 100644 index 00000000000..7df617c2b20 --- /dev/null +++ b/src/intl/ro/table.json @@ -0,0 +1,3 @@ +{ + "table-showing": "Se afișează " +} \ No newline at end of file diff --git a/src/intl/ru/page-wallets-find-wallet.json b/src/intl/ru/page-wallets-find-wallet.json index 953ff8164e0..18b0ec3cf9b 100644 --- a/src/intl/ru/page-wallets-find-wallet.json +++ b/src/intl/ru/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Ознакомьтесь", "page-find-wallet-info-updated-on": "информация обновлена", "page-find-wallet-showing-all-wallets": "Показаны все кошельки", - "page-find-wallet-showing": "Показаны ", "page-find-wallet-wallets": "кошельки", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Аппаратное обеспечение", - "page-find-wallet-personas-title": "Что вы ищете?", "page-find-wallet-new-to-crypto-title": "Новичок в криптовалютах", "page-find-wallet-new-to-crypto-desc": "Вы — начинающий пользователь, ищущий свой первый кошелек.", "page-find-wallet-nfts-title": "NFT", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Кошельки с акцентом на частом использовании приложений децентрализованных финансов (DeFi).", "page-find-wallet-developer-title": "Разработчик", "page-find-wallet-developer-desc": "Кошельки, которые помогают разрабатывать и тестировать децентрализованные приложения (dapps).", - "page-find-wallet-filters": "Фильтры", - "page-find-wallet-active": "активные", "page-find-wallet-footnote-1": "Кошельки, перечисленные на этой странице, не являются официально подтвержденными и представлены исключительно в информационных целях.", "page-find-wallet-footnote-2": "Их описания были предоставлены самими проектами кошельков.", "page-find-wallet-footnote-3": "Мы добавляем продукты на эту страницу на основе критериев политики листинга. Если вы хотите, чтобы мы добавили кошелек, сообщите о проблеме в GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "На настольном ПК", "page-find-wallet-browser": "Браузер", "page-find-wallet-device": "Устройство", - "page-find-wallet-reset-filters": "Сбросить", "page-find-wallet-visit-website": "Посетить сайт", "page-find-wallet-social-links": "Ссылки", "page-find-wallet-empty-results-title": "Нет результатов", diff --git a/src/intl/ru/table.json b/src/intl/ru/table.json new file mode 100644 index 00000000000..c6537fc8d64 --- /dev/null +++ b/src/intl/ru/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "активные`", + "table-filters": "Фильтры", + "table-showing": "Показаны ", + "table-reset-filters": "Сбросить", + "table-what-are-you-looking-for": "Что вы ищете?" +} \ No newline at end of file diff --git a/src/intl/se/page-wallets-find-wallet.json b/src/intl/se/page-wallets-find-wallet.json index 9a1f0a3bae9..c73c8efd3d2 100644 --- a/src/intl/se/page-wallets-find-wallet.json +++ b/src/intl/se/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "information uppdaterad den", "page-find-wallet-showing-all-wallets": "Visar alla plånböcker", - "page-find-wallet-showing": "Visning", "page-find-wallet-wallets": "plånböcker", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "Du är någon som använder DeFi och vill ha en plånbok som gör att du kan ansluta till DeFi-applikationer", "page-find-wallet-developer-title": "Utvecklare", "page-find-wallet-developer-desc": "Du är utvecklare och behöver en plånbok för att hjälpa till att utveckla och testa dappar", - "page-find-wallet-filters": "Filter", - "page-find-wallet-active": "aktiv", "page-find-wallet-footnote-1": "Plånböckerna på den här sidan är inte officiella rekommendationer utan tillhandahålls endast i informationssyfte.", "page-find-wallet-footnote-2": "Beskrivningarna har tillhandahållits av plånboksprojekten själva.", "page-find-wallet-footnote-3": "Vi lägger till produkter på denna sida baserat på kriterier i vår listningspolicy. Om du vill att vi ska lägga till en plånbok kan du skapa ett problem i GitHub.", diff --git a/src/intl/se/table.json b/src/intl/se/table.json new file mode 100644 index 00000000000..d23a0e69784 --- /dev/null +++ b/src/intl/se/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktiv", + "table-filters": "Filter", + "table-showing": "Visning" +} \ No newline at end of file diff --git a/src/intl/sk/page-wallets-find-wallet.json b/src/intl/sk/page-wallets-find-wallet.json index 0ee138b8ceb..2710f759caa 100644 --- a/src/intl/sk/page-wallets-find-wallet.json +++ b/src/intl/sk/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Skontrolovať", "page-find-wallet-info-updated-on": "informácie aktualizované na", "page-find-wallet-showing-all-wallets": "Zobrazenie všetkých peňaženiek", - "page-find-wallet-showing": "Zobrazenie", "page-find-wallet-wallets": "peňaženky", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Peňaženky zamererané na časté používanie aplikácií DeFi.", "page-find-wallet-developer-title": "Vývojár", "page-find-wallet-developer-desc": "Peňaženky, ktoré pomáhajú vyvíjať a testovať dapps.", - "page-find-wallet-filters": "Filtre", - "page-find-wallet-active": "spustiť", "page-find-wallet-footnote-1": "Peňaženky uvedené na tejto stránke niesu oficiálne schválené a sú zobrazené len na informatívne účely.", "page-find-wallet-footnote-2": "Ich popisy boli poskytnuté priamo ich prevádzkovateľmi.", "page-find-wallet-footnote-3": "Produkty na tejto stránke pridávame na základe ktitérií našej politiky. Pokiaľ si želáte pridať peňaženku, dajte nám vedieť v GitHube.", diff --git a/src/intl/sk/table.json b/src/intl/sk/table.json new file mode 100644 index 00000000000..d3eec89a0fd --- /dev/null +++ b/src/intl/sk/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "spustiť", + "table-filters": "Filtre", + "table-showing": "Zobrazenie" +} \ No newline at end of file diff --git a/src/intl/sl/table.json b/src/intl/sl/table.json new file mode 100644 index 00000000000..84b191eb117 --- /dev/null +++ b/src/intl/sl/table.json @@ -0,0 +1,3 @@ +{ + "table-showing": "Prikazano " +} \ No newline at end of file diff --git a/src/intl/sr/page-wallets-find-wallet.json b/src/intl/sr/page-wallets-find-wallet.json index dffc93a875b..17be5a69ada 100644 --- a/src/intl/sr/page-wallets-find-wallet.json +++ b/src/intl/sr/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Plaćanje", "page-find-wallet-info-updated-on": "informacije ažurirane", "page-find-wallet-showing-all-wallets": "Prikazivanje svih novčanika", - "page-find-wallet-showing": "Prikazivanje", "page-find-wallet-wallets": "novčanici", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Novčanici čija je primena uglavnom vezana za često korišćenje u DeFi aplikacijama.", "page-find-wallet-developer-title": "Programer", "page-find-wallet-developer-desc": "Novčanici koji pomažu razvoj i testiranje decentralizovanih aplikacija.", - "page-find-wallet-filters": "Filteri", - "page-find-wallet-active": "aktivno", "page-find-wallet-footnote-1": "Novčanici navedeni na ovoj stranici nisu zvanične preporuke i služe samo u informativne svrhe.", "page-find-wallet-footnote-2": "Opise novčanika pružaju sami projekti novčanika.", "page-find-wallet-footnote-3": "Dodajemo proizvode na ovu stranicu prema kriterijumima naše politike navođenja. Ako želite da dodamo novčanik, prijavite se za to na platformi GitHub.", diff --git a/src/intl/sr/table.json b/src/intl/sr/table.json new file mode 100644 index 00000000000..1e8e1435576 --- /dev/null +++ b/src/intl/sr/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktivno", + "table-filters": "Filteri", + "table-showing": "Prikazivanje" +} \ No newline at end of file diff --git a/src/intl/sw/page-wallets-find-wallet.json b/src/intl/sw/page-wallets-find-wallet.json index 645336e9b79..aacd4846658 100644 --- a/src/intl/sw/page-wallets-find-wallet.json +++ b/src/intl/sw/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Angalia", "page-find-wallet-info-updated-on": "taarifa za hivi punde juu ya", "page-find-wallet-showing-all-wallets": "Inaonyesha pochi zote", - "page-find-wallet-showing": "Kuonesha ", "page-find-wallet-wallets": "pochi", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -73,8 +72,6 @@ "page-find-wallet-finance-desc": "Pochi inayozingatia zaidi matumizi ya programu gatuzi.", "page-find-wallet-developer-title": "Msanidi programu", "page-find-wallet-developer-desc": "Pochi zinazosaidia kuunda na kujaribu D'apps.", - "page-find-wallet-filters": "Chujio", - "page-find-wallet-active": "hai", "page-find-wallet-footnote-1": "Pochi zilizoorodheshwa hapa sio ridhaa rasmi, bali kwa kutoa taarifa peke yake.", "page-find-wallet-footnote-2": "Maelezo yametolewa na kazi za pochi zenyewe.", "page-find-wallet-footnote-3": "Tunaongeza bidhaa kwenye ukurasa huu kwa msingi wa sera za orodha. Kama ungependa tuongeze pochi, andika suala kwenye GitHub.", diff --git a/src/intl/sw/table.json b/src/intl/sw/table.json new file mode 100644 index 00000000000..0f050880515 --- /dev/null +++ b/src/intl/sw/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "hai", + "table-filters": "Chujio", + "table-showing": "Kuonesha " +} \ No newline at end of file diff --git a/src/intl/te/page-wallets-find-wallet.json b/src/intl/te/page-wallets-find-wallet.json index d45b8998099..291a05e0ea5 100644 --- a/src/intl/te/page-wallets-find-wallet.json +++ b/src/intl/te/page-wallets-find-wallet.json @@ -49,7 +49,6 @@ "page-find-wallet-check-out": "తనిఖీ చేయండి", "page-find-wallet-info-updated-on": "సమాచారం అప్‌డేట్ చేయబడింది", "page-find-wallet-showing-all-wallets": "అన్ని వాలెట్లను చూపిస్తోంది", - "page-find-wallet-showing": "చూపుతోంది", "page-find-wallet-wallets": "వాలెట్‌లు", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -69,8 +68,6 @@ "page-find-wallet-developer-title": "డెవలపర్", "page-find-wallet-developer-desc": "మీరు డెవలపర్ మరియు dappsను డెవలప్ చేయడం మరియు పరీక్షించడంలో సహాయపడటానికి వాలెట్ అవసరం", "page-find-wallet-persona-desc": "మీ యూజర్ రకానికి సరిపోయే ప్రొఫైల్‌ను ఎంచుకోండి మరియు వాలెట్ జాబితాను ఫిల్టర్ చేయండి", - "page-find-wallet-filters": "ఫిల్టర్లు", - "page-find-wallet-active": "యాక్టివ్", "page-find-wallet-profile-filters": "ప్రొఫైల్ ఫిల్టర్లు", "page-find-wallet-feature-filters": "ఫీచర్ ఫిల్టర్లు", "page-find-wallet-footnote-1": "ఈ పేజీలో జాబితా చేయబడిన వాలెట్లు అధికారిక ఆమోదాలు కావు మరియు సమాచార ప్రయోజనాల కోసం మాత్రమే అందించబడ్డాయి.", @@ -84,6 +81,5 @@ "page-find-wallet-browser-desc": "బ్రౌజర్ ఎక్స్ టెన్షన్ లతో వాలెట్ లు", "page-find-wallet-device": "పరికరం", "page-find-choose-to-compare": "పోల్చడానికి ఎంచుకోండి", - "page-find-wallet-choose-features": "ఫీచర్లు ఎంచుకోండి", - "page-find-wallet-reset-filters": "ఫిల్టర్‌లను రీసెట్ చేయండి" + "page-find-wallet-choose-features": "ఫీచర్లు ఎంచుకోండి" } diff --git a/src/intl/te/table.json b/src/intl/te/table.json new file mode 100644 index 00000000000..9ab85bfcd76 --- /dev/null +++ b/src/intl/te/table.json @@ -0,0 +1,6 @@ +{ + "table-active": "యాక్టివ్", + "table-filters": "ఫిల్టర్లు", + "table-showing": "చూపుతోంది", + "table-reset-filters": "ఫిల్టర్‌లను రీసెట్ చేయండి" +} \ No newline at end of file diff --git a/src/intl/th/page-wallets-find-wallet.json b/src/intl/th/page-wallets-find-wallet.json index 4ade33a1cad..b49a15d287a 100644 --- a/src/intl/th/page-wallets-find-wallet.json +++ b/src/intl/th/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "ข้อมูลอัปเดตเมื่อ", "page-find-wallet-showing-all-wallets": "แสดงวอลเล็ททั้งหมด", - "page-find-wallet-showing": "กำลังแสดง", "page-find-wallet-wallets": "วอลเล็ท", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "คุณเป็นคนที่ใช้ระบบการเงินแบบไม่รวมศูนย์ (DeFi) และต้องการวอลเล็ทที่ใช้กับแอปพลิเคชัน DeFi ได้", "page-find-wallet-developer-title": "ผู้พัฒนา", "page-find-wallet-developer-desc": "คุณเป็นผู้พัฒนาและต้องการวอลเล็ทที่ช่วยพัฒนาและทดสอบแอปพลิเคชันไร้ศูนย์กลาง (dapps)", - "page-find-wallet-filters": "กรอง", - "page-find-wallet-active": "ใช้งานอยู่", "page-find-wallet-footnote-1": "การรวมของวอลเล็ทในหน้านี้มิได้แสดงถึงการรับรองสนับสนุนอย่างเป็นทางการ และเป็นเพียงวัตถุประสงค์ในการให้ข้อมูลเท่านั้น", "page-find-wallet-footnote-2": "คุณสมบัติของพวกวอลเล็ทจัดเตรียมให้โดยโครงการของวอลเล็ทนั้นเอง", "page-find-wallet-footnote-3": "เราเพิ่มเติมผลิตภัณฑ์ในหน้านี้ตามเกณฑ์ในนโยบายการลงรายการของเรา หากคุณต้องการให้เราเติมวอลเล็ท กรุณาแจ้งปัญหาใน GitHub", diff --git a/src/intl/th/table.json b/src/intl/th/table.json new file mode 100644 index 00000000000..0e3138dcc81 --- /dev/null +++ b/src/intl/th/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "ใช้งานอยู่", + "table-filters": "กรอง", + "table-showing": "กำลังแสดง" +} \ No newline at end of file diff --git a/src/intl/tk/page-wallets-find-wallet.json b/src/intl/tk/page-wallets-find-wallet.json index e544faba0e6..240f0807d1a 100644 --- a/src/intl/tk/page-wallets-find-wallet.json +++ b/src/intl/tk/page-wallets-find-wallet.json @@ -47,7 +47,6 @@ "page-find-wallet-check-out": "Check out", "page-find-wallet-info-updated-on": "maglumatyň täzelenen senesi", "page-find-wallet-showing-all-wallets": "Hemme gapjyklary görkezmek", - "page-find-wallet-showing": "Görkezmek", "page-find-wallet-wallets": "gapjyklar", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -67,8 +66,6 @@ "page-find-wallet-finance-desc": "Siz DeFi ulanýan we DeFi programmalaryna birikmäge mümkinçilik berýän gapjyk edinmek isleýän biri", "page-find-wallet-developer-title": "Işläp düzüji", "page-find-wallet-developer-desc": "Siz işläp düzüji we size merkezleşdirilmedik programmalary işläp düzmekde we synagdan geçirmekde kömegi degjek gapjyk gerek", - "page-find-wallet-filters": "Süzgüçler", - "page-find-wallet-active": "aktiw", "page-find-wallet-footnote-1": "Bu sahypada görkezilen gapjyklar resmi tassyklama däl we diňe maglumat maksatly görkezilýär.", "page-find-wallet-footnote-2": "Olaryň beýany gapjyk taslamalarynyň özleri tarapyndan üpjün edildi.", "page-find-wallet-footnote-3": "Sanaw goşmak boýunça syýasatymyzdaky talaplara laýyklykda bu sahypa önümleri goşýarys. Gapjyk goşmagymyzy isleseňiz, GitHub-da bir mesele gozgaň.", diff --git a/src/intl/tk/table.json b/src/intl/tk/table.json new file mode 100644 index 00000000000..a70fe6b9f14 --- /dev/null +++ b/src/intl/tk/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktiw", + "table-filters": "Süzgüçler", + "table-showing": "Görkezmek" +} \ No newline at end of file diff --git a/src/intl/tr/page-wallets-find-wallet.json b/src/intl/tr/page-wallets-find-wallet.json index 2c91eba3b31..34764f320a1 100644 --- a/src/intl/tr/page-wallets-find-wallet.json +++ b/src/intl/tr/page-wallets-find-wallet.json @@ -52,8 +52,7 @@ "page-find-wallet-check-out": "Göz atın", "page-find-wallet-info-updated-on": "bilgi güncellendi", "page-find-wallet-showing-all-wallets": "Tüm cüzdanlar gösteriliyor", - "page-find-wallet-showing": "Gösteriliyor ", - "page-find-wallet-wallets": " cüzdanlar", + "page-find-wallet-wallets": "cüzdanlar", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", "page-find-wallet-linux": "Linux", @@ -72,9 +71,7 @@ "page-find-wallet-finance-title": "Finans", "page-find-wallet-finance-desc": "DeFi uygulamalarının sık kullanımına odaklanan cüzdanlar.", "page-find-wallet-developer-title": "Geliştirici", - "page-find-wallet-developer-desc": "Merkeziyetsiz uygulamaları geliştirmeye ve test etmeye yardımcı olan cüzdanlar.", - "page-find-wallet-filters": "Filtreler", - "page-find-wallet-active": "aktif", + "page-find-wallet-developer-desc": "Geliştiricisiniz ve DApp'leri geliştirmeye ve test etmeye yardımcı olacak bir cüzdana ihtiyacınız var", "page-find-wallet-footnote-1": "Bu sayfada listelenen cüzdanlar resmi onaylı değildir ve yalnızca bilgilendirme amaçlıdır.", "page-find-wallet-footnote-2": "Açıklamaları, cüzdan projelerinin kendileri tarafından sağlanmıştır.", "page-find-wallet-footnote-3": "Bu sayfaya listeleme politikamıza göre ürün ekliyoruz. Cüzdan eklememizi istiyorsanız, GitHub'da bir destek talebi oluşturun.", diff --git a/src/intl/tr/table.json b/src/intl/tr/table.json new file mode 100644 index 00000000000..8bd77f821a1 --- /dev/null +++ b/src/intl/tr/table.json @@ -0,0 +1,5 @@ +{ + "table-active": "aktif", + "table-filters": "Filtreler", + "table-showing": "Gösteriliyor " +} \ No newline at end of file diff --git a/src/intl/uk/page-wallets-find-wallet.json b/src/intl/uk/page-wallets-find-wallet.json index b7821885122..9cdaf4feb68 100644 --- a/src/intl/uk/page-wallets-find-wallet.json +++ b/src/intl/uk/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Перегляньте", "page-find-wallet-info-updated-on": "Інформацію оновлено", "page-find-wallet-showing-all-wallets": "Показ усіх гаманців", - "page-find-wallet-showing": "Показано ", "page-find-wallet-wallets": "гаманці", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Апаратне забезпечення", - "page-find-wallet-personas-title": "Що ви шукаєте?", "page-find-wallet-new-to-crypto-title": "Новачок у криптовалюті", "page-find-wallet-new-to-crypto-desc": "Перший користувач шукає гаманець для початківців.", "page-find-wallet-nfts-title": "NFT", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Гаманці, орієнтовані на часте використання DeFi-додатків.", "page-find-wallet-developer-title": "Розробник", "page-find-wallet-developer-desc": "Гаманці, які допомагають розробляти та тестувати децентралізовані додатки.", - "page-find-wallet-filters": "Фільтри", - "page-find-wallet-active": "активний", "page-find-wallet-footnote-1": "Гаманці, перераховані на цій сторінці, не є офіційно схваленими, і надаються тільки в інформаційних цілях.", "page-find-wallet-footnote-2": "Їхні описи були надані самими проєктами гаманців.", "page-find-wallet-footnote-3": "Ми додаємо товари на цю сторінку згідно з правилами розміщення. Якщо ви хочете, щоб ми додали гаманець, створіть запит на GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Настільний комп’ютер", "page-find-wallet-browser": "Браузер", "page-find-wallet-device": "Пристрій", - "page-find-wallet-reset-filters": "Скинути", "page-find-wallet-visit-website": "Відвідати вебсайт", "page-find-wallet-social-links": "Посилання", "page-find-wallet-empty-results-title": "Немає результатів", diff --git a/src/intl/uk/table.json b/src/intl/uk/table.json new file mode 100644 index 00000000000..f7b521953fb --- /dev/null +++ b/src/intl/uk/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "активний", + "table-filters": "Фільтри", + "table-showing": "Показано ", + "table-reset-filters": "Скинути", + "table-what-are-you-looking-for": "Що ви шукаєте?" +} \ No newline at end of file diff --git a/src/intl/vi/page-wallets-find-wallet.json b/src/intl/vi/page-wallets-find-wallet.json index 9e8328280b3..841712ef225 100644 --- a/src/intl/vi/page-wallets-find-wallet.json +++ b/src/intl/vi/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Khám phá", "page-find-wallet-info-updated-on": "thông tin được cập nhật trên", "page-find-wallet-showing-all-wallets": "Hiển thị tất cả các ví", - "page-find-wallet-showing": "Đang hiển thị ", "page-find-wallet-wallets": "Ví", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Phần cứng", - "page-find-wallet-personas-title": "Bạn đang tìm kiếm gì?", "page-find-wallet-new-to-crypto-title": "Mới làm quen với tiền điện tử", "page-find-wallet-new-to-crypto-desc": "Người dùng lần đầu tìm kiếm ví dành cho người mới bắt đầu.", "page-find-wallet-nfts-title": "Các NFT", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "Ví tập trung vào việc sử dụng thường xuyên các ứng dụng DeFi.", "page-find-wallet-developer-title": "Nhà phát triển", "page-find-wallet-developer-desc": "Ví giúp phát triển và thử nghiệm dapps.", - "page-find-wallet-filters": "Bộ lọc", - "page-find-wallet-active": "hoạt động", "page-find-wallet-footnote-1": "Ví được liệt kê trên trang này chỉ là giả dụ và chỉ được cung cấp cho mục đích thông tin.", "page-find-wallet-footnote-2": "Những tiêu chí trên đã được cung cấp bởi chính các chủ của dự án ví.", "page-find-wallet-footnote-3": "Chúng tôi thêm sản phẩm vào trang này dựa trên các tiêu chí trong chính sách niêm yết của chúng tôi. Nếu bạn muốn chúng tôi thêm ví, hãy báo cáo vấn đề trong GitHub.", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "Máy tính để bàn", "page-find-wallet-browser": "Trình duyệt", "page-find-wallet-device": "Thiết bị", - "page-find-wallet-reset-filters": "Cài lại", "page-find-wallet-visit-website": "Truy cập trang web", "page-find-wallet-social-links": "Đường dẫn", "page-find-wallet-empty-results-title": "Không kết quả", diff --git a/src/intl/vi/table.json b/src/intl/vi/table.json new file mode 100644 index 00000000000..12100e3d265 --- /dev/null +++ b/src/intl/vi/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "hoạt động", + "table-filters": "Bộ lọc", + "table-showing": "Đang hiển thị ", + "table-reset-filters": "Cài lại", + "table-what-are-you-looking-for": "Bạn đang tìm kiếm gì?" +} \ No newline at end of file diff --git a/src/intl/zh-tw/page-wallets-find-wallet.json b/src/intl/zh-tw/page-wallets-find-wallet.json index 8ccfe073c98..1e10f9e229d 100644 --- a/src/intl/zh-tw/page-wallets-find-wallet.json +++ b/src/intl/zh-tw/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "查看更多", "page-find-wallet-info-updated-on": "資訊更新時間", "page-find-wallet-showing-all-wallets": "顯示全部錢包", - "page-find-wallet-showing": "顯示 ", "page-find-wallet-wallets": "錢包", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "硬體", - "page-find-wallet-personas-title": "你要尋找什麼?", "page-find-wallet-new-to-crypto-title": "加密貨幣新手", "page-find-wallet-new-to-crypto-desc": "初次使用者尋找適合新手的錢包。", "page-find-wallet-nfts-title": "非同質化代幣", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "專為頻繁使用去中心化金融應用程式的使用者打造的錢包。", "page-find-wallet-developer-title": "開發者", "page-find-wallet-developer-desc": "幫助開發並測試去中心化應用程式的錢包。", - "page-find-wallet-filters": "篩選條件", - "page-find-wallet-active": "使用中", "page-find-wallet-footnote-1": "本頁面所列錢包並非官方認可,僅供用於參考用途。", "page-find-wallet-footnote-2": "錢包說明由錢包專案本身提供。", "page-find-wallet-footnote-3": "我們根據上市政策中的標準將產品新增到本頁面。如果你希望我們新增錢包,請在 GitHub 中提出問題。", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "桌上型電腦", "page-find-wallet-browser": "瀏覽器", "page-find-wallet-device": "裝置", - "page-find-wallet-reset-filters": "重置", "page-find-wallet-visit-website": "造訪網頁", "page-find-wallet-social-links": "連結", "page-find-wallet-empty-results-title": "找不到任何結果", diff --git a/src/intl/zh-tw/table.json b/src/intl/zh-tw/table.json new file mode 100644 index 00000000000..e959e4ff0fa --- /dev/null +++ b/src/intl/zh-tw/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "使用中", + "table-filters": "篩選條件", + "table-showing": "顯示 ", + "table-reset-filters": "重置", + "table-what-are-you-looking-for": "你要尋找什麼?" +} \ No newline at end of file diff --git a/src/intl/zh/page-wallets-find-wallet.json b/src/intl/zh/page-wallets-find-wallet.json index 9e39046058e..c8247ac7af4 100644 --- a/src/intl/zh/page-wallets-find-wallet.json +++ b/src/intl/zh/page-wallets-find-wallet.json @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "参阅", "page-find-wallet-info-updated-on": "信息更新于", "page-find-wallet-showing-all-wallets": "显示所有钱包", - "page-find-wallet-showing": "显示中", "page-find-wallet-wallets": "钱包", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -62,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "硬件", - "page-find-wallet-personas-title": "你要找什么?", "page-find-wallet-new-to-crypto-title": "加密货币新手?", "page-find-wallet-new-to-crypto-desc": "寻找入门级钱包的初次用户。", "page-find-wallet-nfts-title": "非同质化代币", @@ -73,8 +71,6 @@ "page-find-wallet-finance-desc": "注重频繁使用去中心化金融应用程序的钱包。", "page-find-wallet-developer-title": "开发者", "page-find-wallet-developer-desc": "帮助开发和测试去中心化应用程序的钱包。", - "page-find-wallet-filters": "筛选", - "page-find-wallet-active": "活跃", "page-find-wallet-footnote-1": "本页所列钱包并非官方认可,仅供参考。", "page-find-wallet-footnote-2": "钱包描述由钱包项目自行提供。", "page-find-wallet-footnote-3": "我们根据我们上架政策中的标准将产品添加到本页面。如果你希望我们添加钱包,请在 GitHub 中提出问题。", @@ -82,7 +78,6 @@ "page-find-wallet-desktop": "桌面", "page-find-wallet-browser": "浏览器版", "page-find-wallet-device": "设备", - "page-find-wallet-reset-filters": "重置", "page-find-wallet-visit-website": "访问网站", "page-find-wallet-social-links": "链接", "page-find-wallet-empty-results-title": "没有结果", diff --git a/src/intl/zh/table.json b/src/intl/zh/table.json new file mode 100644 index 00000000000..437e1afc731 --- /dev/null +++ b/src/intl/zh/table.json @@ -0,0 +1,7 @@ +{ + "table-active": "活跃", + "table-filters": "筛选", + "table-showing": "显示中", + "table-reset-filters": "重置", + "table-what-are-you-looking-for": "你要找什么?" +} \ No newline at end of file diff --git a/src/lib/types.ts b/src/lib/types.ts index 071713688bc..42bd79ed390 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -4,6 +4,7 @@ import type { AppProps } from "next/app" import type { StaticImageData } from "next/image" import type { SSRConfig } from "next-i18next" import type { ReactElement, ReactNode } from "react" +import type { ColumnDef } from "@tanstack/react-table" import type { DocsFrontmatter, @@ -17,7 +18,6 @@ import type { import type { BreadcrumbsProps } from "@/components/Breadcrumbs" import type { CallToActionProps } from "@/components/Hero/CallToAction" -import type { IconBaseType } from "@/components/icons/icon-base" import type { SimulatorNav } from "@/components/Simulator/interfaces" import allQuizData from "@/data/quizzes" @@ -580,10 +580,11 @@ export interface WalletData { last_updated: string name: string image: StaticImageData - brand_color: string + twBackgroundColor: string + twGradiantBrandColor: string url: string active_development_team: boolean - languages_supported: string[] + languages_supported: Lang[] twitter: string discord: string reddit: string @@ -634,24 +635,55 @@ export interface WalletFilterData { description: TranslationKey | "" } +export type FilterInputState = boolean | Lang | string | null + export type FilterOption = { title: string - items: Array<{ - title: string - icon: IconBaseType - description: string - filterKey: string | undefined - showOptions: boolean | undefined - options: - | Array<{ - name: string - filterKey?: string - inputType: "checkbox" - }> - | [] - }> + showFilterOption: boolean + items: Array } +type FilterItem = { + filterKey: string + filterLabel: string + description: string + inputState: FilterInputState + ignoreFilterReset?: boolean + input: FilterInput + options: Array +} + +type FilterInput = ( + filterIndex: number, + itemIndex: number, + state: FilterInputState, + updateFilterState: UpdateFilterState +) => ReactElement + +type FilterOptionItem = { + filterKey: string + filterLabel: string + description: string + ignoreFilterReset?: boolean + inputState: FilterInputState + input: FilterOptionInput +} + +type FilterOptionInput = ( + filterIndex: number, + itemIndex: number, + optionIndex: number, + state: FilterInputState, + updateFilterState: UpdateFilterState +) => ReactElement + +type UpdateFilterState = ( + filterIndex: number, + itemIndex: number, + inputState: FilterInputState, + optionIndex?: number +) => void + export interface WalletPersonas { title: string description: string @@ -684,6 +716,14 @@ export interface WalletPersonas { } } +export type TPresetFilters = WalletPersonas[] + +export type ProductTablePresetFilters = WalletPersonas[] + +export type ProductTableColumnDefs = ColumnDef + +export type ProductTableRow = Wallet + export interface DropdownOption { label: string value: string diff --git a/src/lib/utils/translations.ts b/src/lib/utils/translations.ts index bdaa1b04fe5..36787a77ea1 100644 --- a/src/lib/utils/translations.ts +++ b/src/lib/utils/translations.ts @@ -165,7 +165,7 @@ const getRequiredNamespacesForPath = (relativePath: string) => { if (path.endsWith("/wallets/find-wallet/")) { primaryNamespace = "page-wallets-find-wallet" - requiredNamespaces = [...requiredNamespaces, "page-wallets"] + requiredNamespaces = [...requiredNamespaces, "page-wallets", "table"] } if (path.startsWith("/layer-2/")) { diff --git a/src/lib/utils/wallets.ts b/src/lib/utils/wallets.ts index a7439afb4bc..0d63f5b6b43 100644 --- a/src/lib/utils/wallets.ts +++ b/src/lib/utils/wallets.ts @@ -12,16 +12,20 @@ import { NEW_TO_CRYPTO_FEATURES, NFTS_FEATURES, } from "../constants" -import type { WalletData, WalletFilter } from "../types" +import type { Lang, WalletData, WalletFilter } from "../types" export const getSupportedLocaleWallets = (locale: string) => shuffle( - walletsData.filter((wallet) => wallet.languages_supported.includes(locale)) + walletsData.filter((wallet) => + wallet.languages_supported.includes(locale as Lang) + ) ) export const getNonSupportedLocaleWallets = (locale: string) => shuffle( - walletsData.filter((wallet) => !wallet.languages_supported.includes(locale)) + walletsData.filter( + (wallet) => !wallet.languages_supported.includes(locale as Lang) + ) ) // Get a list of a wallet supported Personas (new to crypto, nfts, long term, finance, developer) @@ -94,19 +98,11 @@ export const formatStringList = (strings: string[], sliceSize?: number) => { return sliceSize ? strings.slice(0, sliceSize).join(", ") : strings.join(", ") } -// Get border custom color for Persona filter -export const getPersonaBorderColor = ( - selectedPersona: number[], - idx: number -) => { - return selectedPersona.includes(idx) ? "primary.base" : "transparent" -} - // Get total count of wallets that support a language const getLanguageTotalCount = (languageCode: string) => { return walletsData.reduce( (total, currentWallet) => - currentWallet.languages_supported.includes(languageCode) + currentWallet.languages_supported.includes(languageCode as Lang) ? (total = total + 1) : total, 0 @@ -187,3 +183,15 @@ export const walletsListingCount = (filters: WalletFilter) => { 0 ) } + +export const getLanguageCountWalletsData = (locale: string) => { + const languageCountWalletsData = getAllWalletsLanguages(locale).map( + (language) => ({ + langCode: language.langCode, + count: getLanguageTotalCount(language.langCode), + name: getLanguageCodeName(language.langCode, locale), + }) + ) + languageCountWalletsData.sort((a, b) => a.name.localeCompare(b.name)) + return languageCountWalletsData +} diff --git a/src/pages/wallets/find-wallet.tsx b/src/pages/wallets/find-wallet.tsx index 34eb5c8491f..b455826923c 100644 --- a/src/pages/wallets/find-wallet.tsx +++ b/src/pages/wallets/find-wallet.tsx @@ -1,18 +1,14 @@ -import { useRef, useState } from "react" import { GetStaticProps, InferGetStaticPropsType } from "next" import { useRouter } from "next/router" import { useTranslation } from "next-i18next" import { serverSideTranslations } from "next-i18next/serverSideTranslations" -import { Box, calc, Center, Show, Text, useDisclosure } from "@chakra-ui/react" +import { Box, Center, Text } from "@chakra-ui/react" import type { BasePageProps, ChildOnlyProp, Lang, Wallet } from "@/lib/types" import BannerNotification from "@/components/Banners/BannerNotification" import Breadcrumbs from "@/components/Breadcrumbs" -import { MobileFiltersMenu } from "@/components/FindWallet/MobileFiltersMenu" -import WalletFilterPersona from "@/components/FindWallet/WalletFilterPersona" -import WalletFilterSidebar from "@/components/FindWallet/WalletFilterSidebar" -import WalletTable from "@/components/FindWallet/WalletTable" +import FindWalletProductTable from "@/components/FindWalletProductTable" import { Image } from "@/components/Image" import InlineLink from "@/components/Link" import MainArticle from "@/components/MainArticle" @@ -31,17 +27,8 @@ import { getSupportedLocaleWallets, } from "@/lib/utils/wallets" -import { - BASE_TIME_UNIT, - DEFAULT_LOCALE, - NAV_BAR_PX_HEIGHT, - WALLETS_FILTERS_DEFAULT, -} from "@/lib/constants" - -import { useWalletPersonas } from "../../hooks/useWalletPersonas" +import { BASE_TIME_UNIT } from "@/lib/constants" -import { WalletSupportedLanguageContext } from "@/contexts/WalletSupportedLanguageContext" -import { useWalletTable } from "@/hooks/useWalletTable" import HeroImage from "@/public/images/wallets/wallet-hero.png" const Subtitle = ({ children }: ChildOnlyProp) => ( @@ -102,68 +89,6 @@ const FindWalletPage = ({ }: InferGetStaticPropsType) => { const { pathname } = useRouter() const { t } = useTranslation("page-wallets-find-wallet") - const personas = useWalletPersonas() - const resetWalletFilter = useRef(() => {}) - - const [filters, setFilters] = useState(WALLETS_FILTERS_DEFAULT) - const [selectedPersona, setSelectedPersona] = useState([]) - const [supportedLanguage, setSupportedLanguage] = useState(DEFAULT_LOCALE) - - const { isOpen: showMobileSidebar, onOpen, onClose } = useDisclosure() - - const { - featureDropdownItems, - filteredWallets, - updateMoreInfo, - walletCardData, - } = useWalletTable({ filters, supportedLanguage, t, walletData: wallets }) - - const updatePersonaUponFilterChange = (filters) => { - const newSelectedPersona: number[] = [] - const trueFilters = Object.fromEntries( - Object.entries(filters).filter(([_, value]) => value) - ) - if (Object.keys(trueFilters).length === 0) { - setSelectedPersona([]) - return - } - - for (let i = 0; i < personas.length; i++) { - const truePresetFilters = Object.fromEntries( - Object.entries(personas[i].presetFilters).filter(([_, value]) => value) - ) - const isPersonaSelected = Object.entries(truePresetFilters).every( - ([key, value]) => trueFilters[key] === value - ) - if (isPersonaSelected) { - newSelectedPersona.push(i) - } - } - - setSelectedPersona(newSelectedPersona) - } - - const updateFilterOption = (key) => { - const updatedFilters = { ...filters } - updatedFilters[key] = !updatedFilters[key] - setFilters(updatedFilters) - updatePersonaUponFilterChange(updatedFilters) - } - - const updateFilterOptions = (keys, value) => { - const updatedFilters = { ...filters } - for (const key of keys) { - updatedFilters[key] = value - } - setFilters(updatedFilters) - updatePersonaUponFilterChange(updatedFilters) - } - - const resetFilters = () => { - setSelectedPersona([]) - setFilters(WALLETS_FILTERS_DEFAULT) - setSupportedLanguage(DEFAULT_LOCALE) - } return ( @@ -213,88 +138,7 @@ const FindWalletPage = ({ /> - - {/* Wallet Personas */} - - - {t("page-find-wallet-personas-title")} - - - - - - {/* Context value is updated when using the language filter */} - - {/* Mobile filters menu */} - - - - - - - {/* Filters sidebar */} - {/* Use `Show` instead of `hideBelow` prop to avoid rendering the sidebar on mobile */} - - - - - {/* Wallets table */} - - - - - - + ) } diff --git a/yarn.lock b/yarn.lock index fbc8866d9f7..6d974bcc8e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3767,6 +3767,11 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== +"@radix-ui/number@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.1.0.tgz#1e95610461a09cdf8bb05c152e76ca1278d5da46" + integrity sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ== + "@radix-ui/primitive@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.1.tgz#e46f9958b35d10e9f6dc71c497305c22e3e55dbd" @@ -4159,6 +4164,33 @@ "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-controllable-state" "1.1.0" +"@radix-ui/react-select@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-2.1.1.tgz#df05cb0b29d3deaef83b505917c4042e0e418a9f" + integrity sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ== + dependencies: + "@radix-ui/number" "1.1.0" + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-collection" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-focus-scope" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-visually-hidden" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.7" + "@radix-ui/react-slot@1.0.2", "@radix-ui/react-slot@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz#a9ff4423eade67f501ffb32ec22064bc9d3099ab" @@ -5186,6 +5218,18 @@ "@swc/counter" "^0.1.3" tslib "^2.4.0" +"@tanstack/react-table@^8.19.3": + version "8.19.3" + resolved "https://registry.yarnpkg.com/@tanstack/react-table/-/react-table-8.19.3.tgz#be1d9ee991ac06b7d4d17cc5c66469ac157bfd8a" + integrity sha512-MtgPZc4y+cCRtU16y1vh1myuyZ2OdkWgMEBzyjYsoMWMicKZGZvcDnub3Zwb6XF2pj9iRMvm1SO1n57lS0vXLw== + dependencies: + "@tanstack/table-core" "8.19.3" + +"@tanstack/table-core@8.19.3": + version "8.19.3" + resolved "https://registry.yarnpkg.com/@tanstack/table-core/-/table-core-8.19.3.tgz#669e3eca2179ee3456fc068fed8683df01607c43" + integrity sha512-IqREj9ADoml9zCAouIG/5kCGoyIxPFdqdyoxis9FisXFi5vT+iYfEfLosq4xkU/iDbMcEuAj+X8dWRLvKYDNoQ== + "@testing-library/dom@^9.3.4": version "9.3.4" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce" @@ -14703,6 +14747,13 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== +vaul@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vaul/-/vaul-1.0.0.tgz#b2c84e626ffa417ee9352cdfc435b26e8f60f547" + integrity sha512-TegfMkwy86RSvSiIVREG6OqgRL7agqRsKYyWYacyVUAdpcIi34QoCOED476Mbf8J5d06e1hygSdvJhehlxEBhQ== + dependencies: + "@radix-ui/react-dialog" "^1.1.1" + vfile-location@^3.0.0, vfile-location@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c"