Skip to content

Commit 5be0de9

Browse files
Mary Hipppsychedelicious
authored andcommitted
feat(ui): close generation and advanced accordions when switching to upscale tab
1 parent f8e27b8 commit 5be0de9

File tree

3 files changed

+28
-6
lines changed

3 files changed

+28
-6
lines changed

invokeai/frontend/web/src/features/settingsAccordions/components/AdvancedSettingsAccordion/AdvancedSettingsAccordion.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import ParamVAEPrecision from 'features/parameters/components/VAEModel/ParamVAEP
1515
import { selectGenerationSlice } from 'features/parameters/store/generationSlice';
1616
import { useStandaloneAccordionToggle } from 'features/settingsAccordions/hooks/useStandaloneAccordionToggle';
1717
import { activeTabNameSelector } from 'features/ui/store/uiSelectors';
18-
import { memo, useMemo } from 'react';
18+
import { memo, useEffect, useMemo } from 'react';
1919
import { useTranslation } from 'react-i18next';
2020
import { useGetModelConfigQuery } from 'services/api/endpoints/models';
2121

@@ -63,11 +63,17 @@ export const AdvancedSettingsAccordion = memo(() => {
6363
);
6464
const badges = useAppSelector(selectBadges);
6565
const { t } = useTranslation();
66-
const { isOpen, onToggle } = useStandaloneAccordionToggle({
66+
const { isOpen, onToggle, onClose } = useStandaloneAccordionToggle({
6767
id: 'advanced-settings',
6868
defaultIsOpen: false,
6969
});
7070

71+
useEffect(() => {
72+
if (activeTabName === 'upscaling') {
73+
onClose();
74+
}
75+
}, [activeTabName, onClose]);
76+
7177
return (
7278
<StandaloneAccordion label={t('accordions.advanced.title')} badges={badges} isOpen={isOpen} onToggle={onToggle}>
7379
<Flex gap={4} alignItems="center" p={4} flexDir="column" data-testid="advanced-settings-accordion">

invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ import ParamMainModelSelect from 'features/parameters/components/MainModel/Param
1414
import { UseDefaultSettingsButton } from 'features/parameters/components/MainModel/UseDefaultSettingsButton';
1515
import { useExpanderToggle } from 'features/settingsAccordions/hooks/useExpanderToggle';
1616
import { useStandaloneAccordionToggle } from 'features/settingsAccordions/hooks/useStandaloneAccordionToggle';
17+
import { activeTabNameSelector } from 'features/ui/store/uiSelectors';
1718
import { filter } from 'lodash-es';
18-
import { memo, useMemo } from 'react';
19+
import { memo, useEffect, useMemo } from 'react';
1920
import { useTranslation } from 'react-i18next';
2021
import { useSelectedModelConfig } from 'services/api/hooks/useSelectedModelConfig';
2122

@@ -26,6 +27,7 @@ const formLabelProps: FormLabelProps = {
2627
export const GenerationSettingsAccordion = memo(() => {
2728
const { t } = useTranslation();
2829
const modelConfig = useSelectedModelConfig();
30+
const activeTabName = useAppSelector(activeTabNameSelector);
2931
const selectBadges = useMemo(
3032
() =>
3133
createMemoizedSelector(selectLoraSlice, (lora) => {
@@ -41,11 +43,21 @@ export const GenerationSettingsAccordion = memo(() => {
4143
id: 'generation-settings-advanced',
4244
defaultIsOpen: false,
4345
});
44-
const { isOpen: isOpenAccordion, onToggle: onToggleAccordion } = useStandaloneAccordionToggle({
46+
const {
47+
isOpen: isOpenAccordion,
48+
onToggle: onToggleAccordion,
49+
onClose: onCloseAccordion,
50+
} = useStandaloneAccordionToggle({
4551
id: 'generation-settings',
46-
defaultIsOpen: true,
52+
defaultIsOpen: activeTabName !== 'upscaling',
4753
});
4854

55+
useEffect(() => {
56+
if (activeTabName === 'upscaling') {
57+
onCloseAccordion();
58+
}
59+
}, [activeTabName, onCloseAccordion]);
60+
4961
return (
5062
<StandaloneAccordion
5163
label={t('accordions.generation.title')}

invokeai/frontend/web/src/features/settingsAccordions/hooks/useStandaloneAccordionToggle.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,9 @@ export const useStandaloneAccordionToggle = (arg: UseStandaloneAccordionToggleAr
1818
const onToggle = useCallback(() => {
1919
dispatch(accordionStateChanged({ id: arg.id, isOpen: !isOpen }));
2020
}, [arg.id, dispatch, isOpen]);
21-
return { isOpen, onToggle };
21+
22+
const onClose = useCallback(() => {
23+
dispatch(accordionStateChanged({ id: arg.id, isOpen: false }));
24+
}, [arg.id, dispatch]);
25+
return { isOpen, onToggle, onClose };
2226
};

0 commit comments

Comments
 (0)