diff --git a/apps/common/components/SearchBar.tsx b/apps/common/components/SearchBar.tsx
index 845d0d293..16f923692 100644
--- a/apps/common/components/SearchBar.tsx
+++ b/apps/common/components/SearchBar.tsx
@@ -1,20 +1,29 @@
+import {cl} from '@yearn-finance/web-lib/utils/cl';
+
import type {ChangeEvent, ReactElement} from 'react';
export type TSearchBar = {
searchPlaceholder: string;
searchValue: string;
set_searchValue: (searchValue: string) => void;
-}
+ className?: string;
+};
-export function SearchBar({searchPlaceholder, searchValue, set_searchValue}: TSearchBar): ReactElement {
+export function SearchBar({searchPlaceholder, searchValue, set_searchValue, className}: TSearchBar): ReactElement {
return (
<>
-
+
+ }}
+ />
-
>
diff --git a/apps/common/components/Table.tsx b/apps/common/components/Table.tsx
index 656779321..f99767056 100644
--- a/apps/common/components/Table.tsx
+++ b/apps/common/components/Table.tsx
@@ -2,13 +2,11 @@
import {useCallback, useMemo, useState} from 'react';
import {sort} from '@veYFI/utils';
import {cl} from '@yearn-finance/web-lib/utils/cl';
-import {isZero} from '@yearn-finance/web-lib/utils/isZero';
import {Pagination} from '@common/components/Pagination';
import {usePagination} from '@common/hooks/usePagination';
import {IconChevronPlain} from '@common/icons/IconChevronPlain';
import type {ReactElement} from 'react';
-import type {TNormalizedBN} from '@common/types/types';
type TSortOrder = 'asc' | 'desc';
@@ -26,6 +24,7 @@ type TMetadata
= {
sortable?: boolean;
fullWidth?: boolean;
columnSpan?: number;
+ isDisabled?: (item: T) => boolean;
format?: (item: T) => string | number;
transform?: (item: T) => ReactElement;
}
@@ -67,10 +66,11 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it
9: 'md:grid-cols-9',
10: 'md:grid-cols-10',
11: 'md:grid-cols-11',
- 12: 'md:grid-cols-12'
+ 12: 'md:grid-cols-12',
+ 13: 'md:grid-cols-13'
};
- const numberOfColumns = Math.min(columns ?? (metadata.length), 12) as keyof typeof gridColsVariants;
+ const numberOfColumns = Math.min(columns ?? (metadata.length), 13) as keyof typeof gridColsVariants;
const colSpanVariants = {
1: 'md:col-span-1',
@@ -84,7 +84,8 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it
9: 'md:col-span-9',
10: 'md:col-span-10',
11: 'md:col-span-11',
- 12: 'md:col-span-12'
+ 12: 'md:col-span-12',
+ 13: 'md:col-span-13'
};
return (
@@ -105,7 +106,7 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it
className || ''
)}
>
-
+
{label}
{sortable && sortedBy === key && }
@@ -143,7 +144,7 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it
)}
onClick={(): void => onRowClick?.(item)}
>
- {metadata.map(({key, label, className, fullWidth, columnSpan, format, transform}): ReactElement => {
+ {metadata.map(({key, label, className, fullWidth, columnSpan, format, transform, isDisabled}): ReactElement => {
let isNumberLike = false;
if (typeof item[key] === 'bigint') {
isNumberLike = true;
@@ -165,11 +166,7 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it
{
+ const router = useRouter();
+ const pathname = usePathname();
+ const searchParams = useSearchParams();
+
+ const adapter = useMemo((): any => {
+ return {
+ replace(location: PartialLocation): void {
+ router.replace(pathname + location.search);
+ },
+ push(location: PartialLocation): void {
+ router.push(pathname + location.search);
+ },
+ get location(): {search: string} {
+ return {
+ search: searchParams.toString()
+ };
+ }
+ };
+ }, [router, pathname, searchParams]);
+
+ return children(adapter);
+};
diff --git a/apps/veyfi/Wrapper.tsx b/apps/veyfi/Wrapper.tsx
index 86ae1fa96..818dbd2b0 100644
--- a/apps/veyfi/Wrapper.tsx
+++ b/apps/veyfi/Wrapper.tsx
@@ -21,7 +21,7 @@ export function Wrapper({children, router}: {children: ReactElement, router: Nex
{!isApproved && (