fix: address feedback
This commit is contained in:
@@ -1,13 +1,5 @@
|
||||
import { t } from '@vegaprotocol/i18n';
|
||||
import { Icon } from '@vegaprotocol/ui-toolkit';
|
||||
|
||||
// These are cribbed from dropdown-menu.tsx, so that the classes match
|
||||
// the filter button this sits next to on the TXs list page
|
||||
const defaultClasses = [
|
||||
'text-sm py-1 px-2 rounded bg-transparent border whitespace-nowrap',
|
||||
'border-vega-light-200 dark:border-vega-dark-200',
|
||||
'hover:border-vega-light-300 dark:hover:border-vega-dark-300',
|
||||
].join(' ');
|
||||
import { Button, Icon } from '@vegaprotocol/ui-toolkit';
|
||||
|
||||
interface BlocksRefetchProps {
|
||||
refetch: () => void;
|
||||
@@ -19,15 +11,9 @@ export const BlocksRefetch = ({ refetch }: BlocksRefetchProps) => {
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="inline mr-2">
|
||||
<button
|
||||
onClick={refresh}
|
||||
data-testid="refresh"
|
||||
className={defaultClasses}
|
||||
>
|
||||
<Icon name="refresh" className="mr-2" />
|
||||
{t('Load new')}
|
||||
</button>
|
||||
</div>
|
||||
<Button onClick={refresh} data-testid="refresh" size="xs">
|
||||
<Icon name="refresh" className="!align-baseline mr-2" size={3} />
|
||||
{t('Load new')}
|
||||
</Button>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import { t } from '@vegaprotocol/i18n';
|
||||
|
||||
export interface FilterLabelProps {
|
||||
filters: Set<string>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the list (currently limited to 1) of filters set by the
|
||||
* Transaction Filter
|
||||
*/
|
||||
export function FilterLabel({ filters }: FilterLabelProps) {
|
||||
if (!filters || filters.size !== 1) {
|
||||
return <span className="uppercase">{t('Filter')}</span>;
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<span className="uppercase">{t('Filters')}:</span>
|
||||
<code className="bg-vega-light-150 px-2 rounded-md capitalize">
|
||||
{Array.from(filters)[0]}
|
||||
</code>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -8,11 +8,12 @@ import {
|
||||
DropdownMenuSub,
|
||||
DropdownMenuSubTrigger,
|
||||
DropdownMenuTrigger,
|
||||
Icon,
|
||||
DropdownMenuSubContent,
|
||||
Icon,
|
||||
Button,
|
||||
} from '@vegaprotocol/ui-toolkit';
|
||||
import classNames from 'classnames';
|
||||
import type { Dispatch, SetStateAction } from 'react';
|
||||
import { FilterLabel } from './tx-filter-label';
|
||||
|
||||
// All possible transaction types. Should be generated.
|
||||
export type FilterOption =
|
||||
@@ -80,28 +81,6 @@ export const AllFilterOptions: FilterOption[] = [
|
||||
...SecondaryFilterOptions,
|
||||
];
|
||||
|
||||
export function getFilterLabel(filters: Set<string>) {
|
||||
if (!filters || filters.size !== 1) {
|
||||
return <span>{t('Filter')}</span>;
|
||||
}
|
||||
|
||||
return (
|
||||
<span>
|
||||
{t('Filters')}: <code>{Array.from(filters)[0]}</code>
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
// Effectively a copy & paste of the Vega DropdownMenuItem styles
|
||||
const itemClass = classNames(
|
||||
'relative flex gap-2 items-center rounded-sm p-2 text-sm',
|
||||
'cursor-default',
|
||||
'hover:bg-white dark:hover:bg-vega-dark-200',
|
||||
'focus:bg-white dark:focus:bg-vega-dark-200',
|
||||
'select-none',
|
||||
'whitespace-nowrap'
|
||||
);
|
||||
|
||||
export interface TxFilterProps {
|
||||
filters: Set<FilterOption>;
|
||||
setFilters: Dispatch<SetStateAction<Set<FilterOption>>>;
|
||||
@@ -121,7 +100,11 @@ export const TxsFilter = ({ filters, setFilters }: TxFilterProps) => {
|
||||
<DropdownMenu
|
||||
modal={false}
|
||||
trigger={
|
||||
<DropdownMenuTrigger>{getFilterLabel(filters)}</DropdownMenuTrigger>
|
||||
<DropdownMenuTrigger className="ml-2">
|
||||
<Button size="xs">
|
||||
<FilterLabel filters={filters} />
|
||||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
}
|
||||
>
|
||||
<DropdownMenuContent>
|
||||
@@ -152,7 +135,7 @@ export const TxsFilter = ({ filters, setFilters }: TxFilterProps) => {
|
||||
</DropdownMenuCheckboxItem>
|
||||
))}
|
||||
<DropdownMenuSub>
|
||||
<DropdownMenuSubTrigger className={itemClass}>
|
||||
<DropdownMenuSubTrigger>
|
||||
{t('More Types')}
|
||||
<Icon name="chevron-right" />
|
||||
</DropdownMenuSubTrigger>
|
||||
|
||||
@@ -189,8 +189,12 @@ export const DropdownMenuSubContent = forwardRef<
|
||||
export const DropdownMenuSubTrigger = forwardRef<
|
||||
React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
|
||||
React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger>
|
||||
>(({ ...subTriggerProps }, forwardedRef) => (
|
||||
<DropdownMenuPrimitive.SubTrigger ref={forwardedRef} {...subTriggerProps} />
|
||||
>(({ className, ...subTriggerProps }, forwardedRef) => (
|
||||
<DropdownMenuPrimitive.SubTrigger
|
||||
className={classNames(className, itemClass)}
|
||||
ref={forwardedRef}
|
||||
{...subTriggerProps}
|
||||
/>
|
||||
));
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user