Add New WebUI and Desktop Mode

Co-Authored-By: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
This commit is contained in:
blessedcoolant
2022-10-04 05:15:26 +13:00
committed by Lincoln Stein
parent 40828df663
commit b8e4c13746
157 changed files with 4775 additions and 2622 deletions

View File

@@ -0,0 +1,23 @@
import React from 'react';
import { MdCancel } from 'react-icons/md';
import { cancelProcessing } from '../../../app/socketio/actions';
import { useAppDispatch, useAppSelector } from '../../../app/store';
import IAIIconButton from '../../../common/components/IAIIconButton';
import { systemSelector } from '../../../common/hooks/useCheckParameters';
export default function CancelButton() {
const dispatch = useAppDispatch();
const { isProcessing, isConnected } = useAppSelector(systemSelector);
const handleClickCancel = () => dispatch(cancelProcessing());
return (
<IAIIconButton
icon={<MdCancel />}
tooltip="Cancel"
aria-label="Cancel"
isDisabled={!isConnected || !isProcessing}
onClick={handleClickCancel}
className="cancel-btn"
/>
);
}

View File

@@ -0,0 +1,27 @@
import React from 'react';
import { MdAddAPhoto } from 'react-icons/md';
import { generateImage } from '../../../app/socketio/actions';
import { useAppDispatch } from '../../../app/store';
import IAIIconButton from '../../../common/components/IAIIconButton';
import useCheckParameters from '../../../common/hooks/useCheckParameters';
export default function InvokeButton() {
const dispatch = useAppDispatch();
const isReady = useCheckParameters();
const handleClickGenerate = () => {
dispatch(generateImage());
};
return (
<IAIIconButton
icon={<MdAddAPhoto />}
tooltip="Invoke"
aria-label="Invoke"
type="submit"
isDisabled={!isReady}
onClick={handleClickGenerate}
className="invoke-btn"
/>
);
}

View File

@@ -0,0 +1,23 @@
@use '../../../styles/Mixins/' as *;
.process-buttons {
display: grid;
grid-template-columns: auto max-content;
column-gap: 0.5rem;
.invoke-btn {
@include Button(
$btn-color: var(--btn-purple),
$btn-color-hover: var(--btn-purple-hover),
$btn-width: 5rem
);
}
.cancel-btn {
@include Button(
$btn-color: var(--btn-red),
$btn-color-hover: var(--btn-red-hover),
$btn-width: 3rem
);
}
}

View File

@@ -0,0 +1,16 @@
import InvokeButton from './InvokeButton';
import CancelButton from './CancelButton';
/**
* Buttons to start and cancel image generation.
*/
const ProcessButtons = () => {
return (
<div className="process-buttons">
<InvokeButton />
<CancelButton />
</div>
);
};
export default ProcessButtons;