diff --git a/invokeai/frontend/web/src/features/queue/components/QueueList/QueueListHeaderColumn.tsx b/invokeai/frontend/web/src/features/queue/components/QueueList/QueueListHeaderColumn.tsx
index c7ac55445c..a4eca8da31 100644
--- a/invokeai/frontend/web/src/features/queue/components/QueueList/QueueListHeaderColumn.tsx
+++ b/invokeai/frontend/web/src/features/queue/components/QueueList/QueueListHeaderColumn.tsx
@@ -41,7 +41,7 @@ const QueueListHeaderColumn = ({ field, displayName, alignItems, ps, w }: QueueL
>
{displayName}
{!!field && (
-
+
)}
);
@@ -49,13 +49,13 @@ const QueueListHeaderColumn = ({ field, displayName, alignItems, ps, w }: QueueL
export default memo(QueueListHeaderColumn);
-type SortColumnIconProps = {
+type ColumnSortIconProps = {
field: SortBy;
displayName: string;
isMouseHoveringColumn: boolean;
};
-const SortColumnIcon = memo(({ field, displayName, isMouseHoveringColumn }: SortColumnIconProps) => {
+const ColumnSortIcon = memo(({ field, displayName, isMouseHoveringColumn }: ColumnSortIconProps) => {
const { t } = useTranslation();
const dispatch = useAppDispatch();
@@ -63,44 +63,38 @@ const SortColumnIcon = memo(({ field, displayName, isMouseHoveringColumn }: Sort
const sortOrder = useSelector(selectQueueSortOrder);
const isSortByColumn = useMemo(() => sortBy === field, [sortBy, field]);
const isShown = useMemo(() => isSortByColumn || isMouseHoveringColumn, [isSortByColumn, isMouseHoveringColumn]);
+ const tooltip = useMemo(() => {
+ if (isSortByColumn) {
+ return sortOrder === 'asc' ? t('queue.sortOrderDescending') : t('queue.sortOrderAscending');
+ }
+ return t('queue.sortBy', { column: displayName });
+ }, [isSortByColumn, sortOrder, t, displayName]);
+ const icon = useMemo(() => (sortOrder === 'asc' ? : ), [sortOrder]);
- const handleClickSortByColumn = useCallback(() => {
- dispatch(sortByChanged(field));
- }, [dispatch, field]);
- const handleClickSortOrderAscending = useCallback(() => {
- dispatch(sortOrderChanged('asc'));
- }, [dispatch]);
- const handleClickSortOrderDescending = useCallback(() => {
- dispatch(sortOrderChanged('desc'));
- }, [dispatch]);
+ const handleClickSortColumn = useCallback(() => {
+ if(isSortByColumn) {
+ if(sortOrder === 'asc') {
+ dispatch(sortOrderChanged('desc'));
+ } else {
+ dispatch(sortOrderChanged('asc'));
+ }
+ } else {
+ dispatch(sortByChanged(field));
+ }
+ }, [isSortByColumn, sortOrder, dispatch, field]);
return (
isShown && (
- <>
- {sortOrder === 'asc' && (
- }
- />
- )}
- {sortOrder === 'desc' && (
- }
- />
- )}
- >
+
)
);
});
-SortColumnIcon.displayName = 'SortColumnIcon';
+ColumnSortIcon.displayName = 'ColumnSortIcon';