feat(ui): initial mini controlnet UI, dnd improvements

This commit is contained in:
psychedelicious
2023-06-03 11:13:33 +10:00
parent 72b4371804
commit 6b824eb112
18 changed files with 377 additions and 223 deletions

View File

@ -6,6 +6,7 @@ import {
KeyboardSensor,
MouseSensor,
TouchSensor,
pointerWithin,
useSensor,
useSensors,
} from '@dnd-kit/core';
@ -13,6 +14,7 @@ import { PropsWithChildren, memo, useCallback, useState } from 'react';
import OverlayDragImage from './OverlayDragImage';
import { ImageDTO } from 'services/api';
import { isImageDTO } from 'services/types/guards';
import { snapCenterToCursor } from '@dnd-kit/modifiers';
type ImageDndContextProps = PropsWithChildren;
@ -53,9 +55,10 @@ const ImageDndContext = (props: ImageDndContextProps) => {
onDragStart={handleDragStart}
onDragEnd={handleDragEnd}
sensors={sensors}
collisionDetection={pointerWithin}
>
{props.children}
<DragOverlay dropAnimation={null}>
<DragOverlay dropAnimation={null} modifiers={[snapCenterToCursor]}>
{draggedImage && <OverlayDragImage image={draggedImage} />}
</DragOverlay>
</DndContext>

View File

@ -1,4 +1,4 @@
import { Image } from '@chakra-ui/react';
import { Box, Image } from '@chakra-ui/react';
import { memo } from 'react';
import { ImageDTO } from 'services/api';
@ -8,15 +8,27 @@ type OverlayDragImageProps = {
const OverlayDragImage = (props: OverlayDragImageProps) => {
return (
<Image
sx={{
maxW: 36,
maxH: 36,
borderRadius: 'base',
shadow: 'dark-lg',
<Box
style={{
width: '100%',
height: '100%',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
userSelect: 'none',
cursor: 'grabbing',
}}
src={props.image.thumbnail_url}
/>
>
<Image
sx={{
maxW: 36,
maxH: 36,
borderRadius: 'base',
shadow: 'dark-lg',
}}
src={props.image.thumbnail_url}
/>
</Box>
);
};

View File

@ -95,6 +95,7 @@ export type AppFeature =
* A disable-able Stable Diffusion feature
*/
export type SDFeature =
| 'controlNet'
| 'noise'
| 'variation'
| 'symmetry'