Files
feishin/src/renderer/features/shared/components/order-toggle-button.tsx
T
2025-12-06 17:41:13 -08:00

40 lines
1.1 KiB
TypeScript

import { useTranslation } from 'react-i18next';
import { ActionIcon, ActionIconProps } from '/@/shared/components/action-icon/action-icon';
import { SortOrder } from '/@/shared/types/domain-types';
interface OrderToggleButtonProps {
buttonProps?: Partial<ActionIconProps>;
disabled?: boolean;
onToggle: () => void;
sortOrder: SortOrder;
}
export const OrderToggleButton = ({
buttonProps,
disabled,
onToggle,
sortOrder,
}: OrderToggleButtonProps) => {
const { t } = useTranslation();
return (
<ActionIcon
disabled={disabled}
icon={sortOrder === SortOrder.ASC ? 'sortAsc' : 'sortDesc'}
iconProps={{
size: 'lg',
}}
onClick={onToggle}
tooltip={{
label:
sortOrder === SortOrder.ASC
? t('common.ascending', { postProcess: 'sentenceCase' })
: t('common.descending', { postProcess: 'sentenceCase' }),
}}
variant="subtle"
{...buttonProps}
/>
);
};