mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
fix(ui): fix all eslint & prettier issues
This commit is contained in:
@ -15,7 +15,6 @@ import { getValidControlNets } from 'features/controlNet/util/getValidControlNet
|
||||
import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
|
||||
import { map } from 'lodash-es';
|
||||
import { Fragment, memo, useCallback } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { FaPlus } from 'react-icons/fa';
|
||||
import { useGetControlNetModelsQuery } from 'services/api/endpoints/models';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
@ -38,7 +37,6 @@ const selector = createSelector(
|
||||
);
|
||||
|
||||
const ParamControlNetCollapse = () => {
|
||||
const { t } = useTranslation();
|
||||
const { controlNetsArray, activeLabel } = useAppSelector(selector);
|
||||
const isControlNetDisabled = useFeatureStatus('controlNet').isFeatureDisabled;
|
||||
const dispatch = useAppDispatch();
|
||||
|
@ -10,7 +10,7 @@ import { useTranslation } from 'react-i18next';
|
||||
|
||||
const selector = createSelector(
|
||||
[stateSelector],
|
||||
({ generation, hotkeys, config, ui }) => {
|
||||
({ generation, hotkeys, config }) => {
|
||||
const { initial, min, sliderMax, inputMax, fineStep, coarseStep } =
|
||||
config.sd.width;
|
||||
const { width, aspectRatio } = generation;
|
||||
|
@ -27,12 +27,9 @@ const selector = createSelector(
|
||||
const InitialImage = () => {
|
||||
const { initialImage } = useAppSelector(selector);
|
||||
|
||||
const {
|
||||
currentData: imageDTO,
|
||||
isLoading,
|
||||
isError,
|
||||
isSuccess,
|
||||
} = useGetImageDTOQuery(initialImage?.imageName ?? skipToken);
|
||||
const { currentData: imageDTO } = useGetImageDTOQuery(
|
||||
initialImage?.imageName ?? skipToken
|
||||
);
|
||||
|
||||
const draggableData = useMemo<TypesafeDraggableData | undefined>(() => {
|
||||
if (imageDTO) {
|
||||
|
@ -5,7 +5,6 @@ import { defaultSelectorOptions } from 'app/store/util/defaultMemoizeOptions';
|
||||
import IAISwitch from 'common/components/IAISwitch';
|
||||
import { shouldUseCpuNoiseChanged } from 'features/parameters/store/generationSlice';
|
||||
import { ChangeEvent } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
const selector = createSelector(
|
||||
stateSelector,
|
||||
@ -23,8 +22,6 @@ export const ParamCpuNoiseToggle = () => {
|
||||
const dispatch = useAppDispatch();
|
||||
const { isDisabled, shouldUseCpuNoise } = useAppSelector(selector);
|
||||
|
||||
const { t } = useTranslation();
|
||||
|
||||
const handleChange = (e: ChangeEvent<HTMLInputElement>) =>
|
||||
dispatch(shouldUseCpuNoiseChanged(e.target.checked));
|
||||
|
||||
|
@ -3,7 +3,6 @@ import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
|
||||
import IAISwitch from 'common/components/IAISwitch';
|
||||
import { setShouldUseNoiseSettings } from 'features/parameters/store/generationSlice';
|
||||
import { ChangeEvent } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export const ParamNoiseToggle = () => {
|
||||
const dispatch = useAppDispatch();
|
||||
@ -12,8 +11,6 @@ export const ParamNoiseToggle = () => {
|
||||
(state: RootState) => state.generation.shouldUseNoiseSettings
|
||||
);
|
||||
|
||||
const { t } = useTranslation();
|
||||
|
||||
const handleChange = (e: ChangeEvent<HTMLInputElement>) =>
|
||||
dispatch(setShouldUseNoiseSettings(e.target.checked));
|
||||
|
||||
|
@ -7,7 +7,6 @@ import {
|
||||
ESRGANModelName,
|
||||
esrganModelNameChanged,
|
||||
} from 'features/parameters/store/postprocessingSlice';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export const ESRGAN_MODEL_NAMES: SelectItem[] = [
|
||||
{
|
||||
|
@ -3,7 +3,6 @@ import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
|
||||
import IAISwitch from 'common/components/IAISwitch';
|
||||
import { setShouldGenerateVariations } from 'features/parameters/store/generationSlice';
|
||||
import { ChangeEvent } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export const ParamVariationToggle = () => {
|
||||
const dispatch = useAppDispatch();
|
||||
@ -12,8 +11,6 @@ export const ParamVariationToggle = () => {
|
||||
(state: RootState) => state.generation.shouldGenerateVariations
|
||||
);
|
||||
|
||||
const { t } = useTranslation();
|
||||
|
||||
const handleChange = (e: ChangeEvent<HTMLInputElement>) =>
|
||||
dispatch(setShouldGenerateVariations(e.target.checked));
|
||||
|
||||
|
@ -1,75 +0,0 @@
|
||||
import { Flex, Text } from '@chakra-ui/react';
|
||||
import { memo, useMemo } from 'react';
|
||||
|
||||
export const ratioToCSSString = (
|
||||
ratio: AspectRatio,
|
||||
orientation: Orientation
|
||||
) => {
|
||||
if (orientation === 'portrait') {
|
||||
return `${ratio[0]}/${ratio[1]}`;
|
||||
}
|
||||
return `${ratio[1]}/${ratio[0]}`;
|
||||
};
|
||||
|
||||
export const ratioToDisplayString = (
|
||||
ratio: AspectRatio,
|
||||
orientation: Orientation
|
||||
) => {
|
||||
if (orientation === 'portrait') {
|
||||
return `${ratio[0]}:${ratio[1]}`;
|
||||
}
|
||||
return `${ratio[1]}:${ratio[0]}`;
|
||||
};
|
||||
|
||||
type AspectRatioPreviewProps = {
|
||||
ratio: AspectRatio;
|
||||
orientation: Orientation;
|
||||
size: string;
|
||||
};
|
||||
|
||||
export type AspectRatio = [number, number];
|
||||
|
||||
export type Orientation = 'portrait' | 'landscape';
|
||||
|
||||
const AspectRatioPreview = (props: AspectRatioPreviewProps) => {
|
||||
const { ratio, size, orientation } = props;
|
||||
|
||||
const ratioCSSString = useMemo(() => {
|
||||
if (orientation === 'portrait') {
|
||||
return `${ratio[0]}/${ratio[1]}`;
|
||||
}
|
||||
return `${ratio[1]}/${ratio[0]}`;
|
||||
}, [ratio, orientation]);
|
||||
|
||||
const ratioDisplayString = useMemo(() => `${ratio[0]}:${ratio[1]}`, [ratio]);
|
||||
|
||||
return (
|
||||
<Flex
|
||||
sx={{
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
w: size,
|
||||
h: size,
|
||||
}}
|
||||
>
|
||||
<Flex
|
||||
sx={{
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
bg: 'base.700',
|
||||
color: 'base.400',
|
||||
borderRadius: 'base',
|
||||
aspectRatio: ratioCSSString,
|
||||
objectFit: 'contain',
|
||||
...(orientation === 'landscape' ? { h: 'full' } : { w: 'full' }),
|
||||
}}
|
||||
>
|
||||
<Text sx={{ size: 'xs', userSelect: 'none' }}>
|
||||
{ratioDisplayString}
|
||||
</Text>
|
||||
</Flex>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
|
||||
export default memo(AspectRatioPreview);
|
@ -1,76 +0,0 @@
|
||||
import { Box, Flex, FormControl, FormLabel, Select } from '@chakra-ui/react';
|
||||
import { createSelector } from '@reduxjs/toolkit';
|
||||
import { RootState } from 'app/store/store';
|
||||
import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
|
||||
import IAISlider from 'common/components/IAISlider';
|
||||
import { setWidth } from 'features/parameters/store/generationSlice';
|
||||
import { memo, useState } from 'react';
|
||||
import AspectRatioPreview, {
|
||||
AspectRatio,
|
||||
Orientation,
|
||||
} from './AspectRatioPreview';
|
||||
|
||||
const RATIOS: AspectRatio[] = [
|
||||
[1, 1],
|
||||
[5, 4],
|
||||
[3, 2],
|
||||
[16, 10],
|
||||
[16, 9],
|
||||
];
|
||||
|
||||
RATIOS.forEach((r) => {
|
||||
const float = r[0] / r[1];
|
||||
console.log((512 * float) / 8);
|
||||
});
|
||||
|
||||
const dimensionsSettingsSelector = createSelector(
|
||||
(state: RootState) => state.generation,
|
||||
(generation) => {
|
||||
const { width, height } = generation;
|
||||
|
||||
return { width, height };
|
||||
}
|
||||
);
|
||||
|
||||
const DimensionsSettings = () => {
|
||||
const { width, height } = useAppSelector(dimensionsSettingsSelector);
|
||||
const dispatch = useAppDispatch();
|
||||
const [ratioIndex, setRatioIndex] = useState(4);
|
||||
const [orientation, setOrientation] = useState<Orientation>('portrait');
|
||||
|
||||
return (
|
||||
<Flex gap={3}>
|
||||
<Box flexShrink={0}>
|
||||
<AspectRatioPreview
|
||||
ratio={RATIOS[ratioIndex]}
|
||||
orientation={orientation}
|
||||
size="4rem"
|
||||
/>
|
||||
</Box>
|
||||
<FormControl>
|
||||
<FormLabel>Aspect Ratio</FormLabel>
|
||||
<Select
|
||||
onChange={(e) => {
|
||||
setRatioIndex(Number(e.target.value));
|
||||
}}
|
||||
>
|
||||
{RATIOS.map((r, i) => (
|
||||
<option key={r.join()} value={i}>{`${r[0]}:${r[1]}`}</option>
|
||||
))}
|
||||
</Select>
|
||||
</FormControl>
|
||||
<IAISlider
|
||||
label="Size"
|
||||
value={width}
|
||||
min={64}
|
||||
max={2048}
|
||||
step={8}
|
||||
onChange={(v) => {
|
||||
dispatch(setWidth(v));
|
||||
}}
|
||||
/>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
|
||||
export default memo(DimensionsSettings);
|
@ -3,7 +3,6 @@ import { useAppDispatch } from 'app/store/storeHooks';
|
||||
import { useCallback } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { UnsafeImageMetadata } from 'services/api/endpoints/images';
|
||||
import { isImageField } from 'services/api/guards';
|
||||
import { ImageDTO } from 'services/api/types';
|
||||
import { initialImageSelected, modelSelected } from '../store/actions';
|
||||
import {
|
||||
|
@ -266,7 +266,7 @@ export const generationSlice = createSlice({
|
||||
const defaultModel = action.payload.sd?.defaultModel;
|
||||
|
||||
if (defaultModel && !state.model) {
|
||||
const [base_model, model_type, model_name] = defaultModel.split('/');
|
||||
const [base_model, _model_type, model_name] = defaultModel.split('/');
|
||||
|
||||
const result = zMainModel.safeParse({
|
||||
model_name,
|
||||
|
@ -6,7 +6,7 @@ export const modelIdToControlNetModelParam = (
|
||||
controlNetModelId: string
|
||||
): ControlNetModelField | undefined => {
|
||||
const log = logger('models');
|
||||
const [base_model, model_type, model_name] = controlNetModelId.split('/');
|
||||
const [base_model, _model_type, model_name] = controlNetModelId.split('/');
|
||||
|
||||
const result = zControlNetModel.safeParse({
|
||||
base_model,
|
||||
|
@ -6,7 +6,7 @@ export const modelIdToLoRAModelParam = (
|
||||
): LoRAModelParam | undefined => {
|
||||
const log = logger('models');
|
||||
|
||||
const [base_model, model_type, model_name] = loraModelId.split('/');
|
||||
const [base_model, _model_type, model_name] = loraModelId.split('/');
|
||||
|
||||
const result = zLoRAModel.safeParse({
|
||||
base_model,
|
||||
|
@ -8,7 +8,7 @@ export const modelIdToMainModelParam = (
|
||||
mainModelId: string
|
||||
): MainModelParam | undefined => {
|
||||
const log = logger('models');
|
||||
const [base_model, model_type, model_name] = mainModelId.split('/');
|
||||
const [base_model, _model_type, model_name] = mainModelId.split('/');
|
||||
|
||||
const result = zMainModel.safeParse({
|
||||
base_model,
|
||||
|
@ -5,7 +5,7 @@ export const modelIdToVAEModelParam = (
|
||||
vaeModelId: string
|
||||
): VaeModelParam | undefined => {
|
||||
const log = logger('models');
|
||||
const [base_model, model_type, model_name] = vaeModelId.split('/');
|
||||
const [base_model, _model_type, model_name] = vaeModelId.split('/');
|
||||
|
||||
const result = zVaeModel.safeParse({
|
||||
base_model,
|
||||
|
Reference in New Issue
Block a user