mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
This introduces the core functionality for batch operations on images and multiple selection in the gallery/batch manager. A number of other substantial changes are included: - `imagesSlice` is consolidated into `gallerySlice`, allowing for simpler selection of filtered images - `batchSlice` is added to manage the batch - The wonky context pattern for image deletion has been changed, much simpler now using a `imageDeletionSlice` and redux listeners; this needs to be implemented still for the other image modals - Minimum gallery size in px implemented as a hook - Many style fixes & several bug fixes TODO: - The UI and UX need to be figured out, especially for controlnet - Batch processing is not hooked up; generation does not do anything with batch - Routes to support batch image operations, specifically delete and add/remove to/from boards
41 lines
919 B
TypeScript
41 lines
919 B
TypeScript
import {
|
|
forwardRef,
|
|
IconButton,
|
|
IconButtonProps,
|
|
Tooltip,
|
|
TooltipProps,
|
|
} from '@chakra-ui/react';
|
|
import { memo } from 'react';
|
|
|
|
export type IAIIconButtonProps = IconButtonProps & {
|
|
role?: string;
|
|
tooltip?: string;
|
|
tooltipProps?: Omit<TooltipProps, 'children'>;
|
|
isChecked?: boolean;
|
|
};
|
|
|
|
const IAIIconButton = forwardRef((props: IAIIconButtonProps, forwardedRef) => {
|
|
const { role, tooltip = '', tooltipProps, isChecked, ...rest } = props;
|
|
|
|
return (
|
|
<Tooltip
|
|
label={tooltip}
|
|
hasArrow
|
|
{...tooltipProps}
|
|
{...(tooltipProps?.placement
|
|
? { placement: tooltipProps.placement }
|
|
: { placement: 'top' })}
|
|
>
|
|
<IconButton
|
|
ref={forwardedRef}
|
|
role={role}
|
|
colorScheme={isChecked ? 'accent' : 'base'}
|
|
{...rest}
|
|
/>
|
|
</Tooltip>
|
|
);
|
|
});
|
|
|
|
IAIIconButton.displayName = 'IAIIconButton';
|
|
export default memo(IAIIconButton);
|