diff options
author | bobzel <zzzman@gmail.com> | 2025-01-21 10:16:51 -0500 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2025-01-21 10:16:51 -0500 |
commit | caf384bb374c47118296aa397446e85d3121116b (patch) | |
tree | da270043f88d6cfa0d6b8f1838a55f6faba35bfa /src/client/views/nodes/imageEditor/GenerativeFillButtons.tsx | |
parent | 22daafa9c505eb9bffb8604be0924a7450d20113 (diff) | |
parent | a6a6929501b7ce9b3ceed73c7e8141a8d8f0c7dc (diff) |
Merge branch 'master' into alyssa-agent
Diffstat (limited to 'src/client/views/nodes/imageEditor/GenerativeFillButtons.tsx')
-rw-r--r-- | src/client/views/nodes/imageEditor/GenerativeFillButtons.tsx | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/client/views/nodes/imageEditor/GenerativeFillButtons.tsx b/src/client/views/nodes/imageEditor/GenerativeFillButtons.tsx new file mode 100644 index 000000000..fe9c39aad --- /dev/null +++ b/src/client/views/nodes/imageEditor/GenerativeFillButtons.tsx @@ -0,0 +1,72 @@ +import './GenerativeFillButtons.scss'; +import * as React from 'react'; +import ReactLoading from 'react-loading'; +import { Button, IconButton, Type } from '@dash/components'; +import { AiOutlineInfo } from 'react-icons/ai'; +import { activeColor } from './imageEditorUtils/imageEditorConstants'; + +interface ButtonContainerProps { + onClick: () => Promise<void>; + loading: boolean; + onReset: () => void; +} + +export function EditButtons({ loading, onClick: getEdit, onReset }: ButtonContainerProps) { + return ( + <div className="generativeFillBtnContainer"> + <Button text="RESET" type={Type.PRIM} color={activeColor} onClick={onReset} /> + {loading ? ( + <Button + text="GET EDITS" + type={Type.TERT} + color={activeColor} + icon={<ReactLoading type="spin" color="#ffffff" width={20} height={20} />} + iconPlacement="right" + onClick={() => { + if (!loading) getEdit(); + }} + /> + ) : ( + <Button + text="GET EDITS" + type={Type.TERT} + color={activeColor} + onClick={() => { + if (!loading) getEdit(); + }} + /> + )} + <IconButton type={Type.SEC} color={activeColor} tooltip="Open Documentation" icon={<AiOutlineInfo size="16px" />} onClick={() => window.open('https://brown-dash.github.io/Dash-Documentation/features/generativeai/#editing', '_blank')} /> + </div> + ); +} + +export function CutButtons({ loading, onClick: cutImage, onReset }: ButtonContainerProps) { + return ( + <div className="generativeFillBtnContainer"> + <Button text="RESET" type={Type.PRIM} color={activeColor} onClick={onReset} /> + {loading ? ( + <Button + text="CUT IMAGE" + type={Type.TERT} + color={activeColor} + icon={<ReactLoading type="spin" color="#ffffff" width={20} height={20} />} + iconPlacement="right" + onClick={() => { + if (!loading) cutImage(); + }} + /> + ) : ( + <Button + text="CUT IMAGE" + type={Type.TERT} + color={activeColor} + onClick={() => { + if (!loading) cutImage(); + }} + /> + )} + <IconButton type={Type.SEC} color={activeColor} tooltip="Open Documentation" icon={<AiOutlineInfo size="16px" />} onClick={() => window.open('https://brown-dash.github.io/Dash-Documentation/features/generativeai/#editing', '_blank')} /> + </div> + ); +} |