implement double click handler on default controls

This commit is contained in:
jeffvli
2025-11-13 20:54:18 -08:00
parent c5e11cca58
commit a75f64d204
6 changed files with 291 additions and 61 deletions
@@ -2,11 +2,30 @@ import {
ItemTableListInnerColumn,
TableColumnContainer,
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
import { ItemListItem } from '/@/renderer/components/item-list/types';
import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
export const ActionsColumn = (props: ItemTableListInnerColumn) => {
const row: any = (props.data as (any | undefined)[])[props.rowIndex];
const handleActionClick = (event: React.MouseEvent<HTMLButtonElement>) => {
event.stopPropagation();
event.preventDefault();
if (row !== undefined) {
props.controls.onMore?.({
event,
internalState: props.internalState,
item: row as ItemListItem,
itemType: props.itemType,
});
}
};
const handleActionDoubleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
event.stopPropagation();
event.preventDefault();
};
if (row !== undefined) {
return (
<TableColumnContainer {...props}>
@@ -17,6 +36,8 @@ export const ActionsColumn = (props: ItemTableListInnerColumn) => {
color: 'muted',
size: 'md',
}}
onDoubleClick={handleActionDoubleClick}
onClick={handleActionClick}
size="xs"
variant="subtle"
/>
@@ -22,6 +22,8 @@ export const FavoriteColumn = (props: ItemTableListInnerColumn) => {
size: 'md',
}}
onClick={(event) => {
event.stopPropagation();
event.preventDefault();
props.controls.onFavorite?.({
event,
favorite: !row,
@@ -30,6 +32,10 @@ export const FavoriteColumn = (props: ItemTableListInnerColumn) => {
itemType: props.itemType,
});
}}
onDoubleClick={(event) => {
event.stopPropagation();
event.preventDefault();
}}
size="xs"
variant="subtle"
/>