mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
add toggle for shouldDisableInformationalPopovers
This commit is contained in:
parent
63f94579c5
commit
7b2e6deaf1
@ -13,6 +13,8 @@ import {
|
||||
Image,
|
||||
} from '@chakra-ui/react';
|
||||
import { ReactNode } from 'react';
|
||||
import { useAppSelector } from '../../app/store/storeHooks';
|
||||
import { systemSelector } from '../../features/system/store/systemSelectors';
|
||||
|
||||
interface Props extends PopoverProps {
|
||||
heading: string;
|
||||
@ -31,68 +33,74 @@ function IAIInformationalPopover({
|
||||
buttonHref,
|
||||
triggerComponent,
|
||||
}: Props) {
|
||||
return (
|
||||
<Popover
|
||||
placement="top"
|
||||
closeOnBlur={false}
|
||||
trigger="hover"
|
||||
variant="informational"
|
||||
>
|
||||
<PopoverTrigger>
|
||||
<div>{triggerComponent}</div>
|
||||
</PopoverTrigger>
|
||||
<PopoverContent>
|
||||
<PopoverArrow />
|
||||
<PopoverCloseButton />
|
||||
const { shouldDisableInformationalPopovers } = useAppSelector(systemSelector);
|
||||
|
||||
<PopoverBody>
|
||||
<Flex
|
||||
sx={{
|
||||
gap: 3,
|
||||
flexDirection: 'column',
|
||||
width: '100%',
|
||||
}}
|
||||
>
|
||||
{image && (
|
||||
<Image
|
||||
sx={{
|
||||
objectFit: 'contain',
|
||||
maxW: '100%',
|
||||
maxH: 'full',
|
||||
backgroundColor: 'white',
|
||||
}}
|
||||
src={image}
|
||||
alt="Optional Image"
|
||||
/>
|
||||
)}
|
||||
if (shouldDisableInformationalPopovers) {
|
||||
return triggerComponent;
|
||||
} else {
|
||||
return (
|
||||
<Popover
|
||||
placement="top"
|
||||
closeOnBlur={false}
|
||||
trigger="hover"
|
||||
variant="informational"
|
||||
>
|
||||
<PopoverTrigger>
|
||||
<div>{triggerComponent}</div>
|
||||
</PopoverTrigger>
|
||||
<PopoverContent>
|
||||
<PopoverArrow />
|
||||
<PopoverCloseButton />
|
||||
|
||||
<PopoverBody>
|
||||
<Flex
|
||||
sx={{
|
||||
gap: 3,
|
||||
flexDirection: 'column',
|
||||
|
||||
p: 3,
|
||||
pt: 0,
|
||||
width: '100%',
|
||||
}}
|
||||
>
|
||||
<PopoverHeader>{heading}</PopoverHeader>
|
||||
<Text sx={{ pl: 3, pr: 3 }}>{paragraph}</Text>
|
||||
{buttonLabel && (
|
||||
<Flex sx={{ pl: 3, pr: 3 }} justifyContent="flex-end">
|
||||
<Button
|
||||
onClick={() => window.open(buttonHref)}
|
||||
size="sm"
|
||||
variant="invokeAIOutline"
|
||||
>
|
||||
{buttonLabel}
|
||||
</Button>
|
||||
</Flex>
|
||||
{image && (
|
||||
<Image
|
||||
sx={{
|
||||
objectFit: 'contain',
|
||||
maxW: '100%',
|
||||
maxH: 'full',
|
||||
backgroundColor: 'white',
|
||||
}}
|
||||
src={image}
|
||||
alt="Optional Image"
|
||||
/>
|
||||
)}
|
||||
<Flex
|
||||
sx={{
|
||||
gap: 3,
|
||||
flexDirection: 'column',
|
||||
|
||||
p: 3,
|
||||
pt: 0,
|
||||
}}
|
||||
>
|
||||
<PopoverHeader>{heading}</PopoverHeader>
|
||||
<Text sx={{ pl: 3, pr: 3 }}>{paragraph}</Text>
|
||||
{buttonLabel && (
|
||||
<Flex sx={{ pl: 3, pr: 3 }} justifyContent="flex-end">
|
||||
<Button
|
||||
onClick={() => window.open(buttonHref)}
|
||||
size="sm"
|
||||
variant="invokeAIOutline"
|
||||
>
|
||||
{buttonLabel}
|
||||
</Button>
|
||||
</Flex>
|
||||
)}
|
||||
</Flex>
|
||||
</Flex>
|
||||
</Flex>
|
||||
</PopoverBody>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
);
|
||||
</PopoverBody>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default IAIInformationalPopover;
|
||||
|
@ -24,6 +24,7 @@ import {
|
||||
consoleLogLevelChanged,
|
||||
setEnableImageDebugging,
|
||||
setShouldConfirmOnDelete,
|
||||
setShouldDisableInformationalPopovers,
|
||||
shouldAntialiasProgressImageChanged,
|
||||
shouldLogToConsoleChanged,
|
||||
shouldUseNSFWCheckerChanged,
|
||||
@ -67,6 +68,7 @@ const selector = createSelector(
|
||||
shouldAntialiasProgressImage,
|
||||
shouldUseNSFWChecker,
|
||||
shouldUseWatermarker,
|
||||
shouldDisableInformationalPopovers,
|
||||
} = system;
|
||||
|
||||
const {
|
||||
@ -89,6 +91,7 @@ const selector = createSelector(
|
||||
shouldUseNSFWChecker,
|
||||
shouldUseWatermarker,
|
||||
shouldAutoChangeDimensions,
|
||||
shouldDisableInformationalPopovers,
|
||||
};
|
||||
},
|
||||
{
|
||||
@ -165,6 +168,7 @@ const SettingsModal = ({ children, config }: SettingsModalProps) => {
|
||||
shouldUseNSFWChecker,
|
||||
shouldUseWatermarker,
|
||||
shouldAutoChangeDimensions,
|
||||
shouldDisableInformationalPopovers,
|
||||
} = useAppSelector(selector);
|
||||
|
||||
const handleClickResetWebUI = useCallback(() => {
|
||||
@ -323,6 +327,15 @@ const SettingsModal = ({ children, config }: SettingsModalProps) => {
|
||||
onChange={handleLanguageChanged}
|
||||
/>
|
||||
)}
|
||||
<SettingSwitch
|
||||
label="Disable informational popovers"
|
||||
isChecked={shouldDisableInformationalPopovers}
|
||||
onChange={(e: ChangeEvent<HTMLInputElement>) =>
|
||||
dispatch(
|
||||
setShouldDisableInformationalPopovers(e.target.checked)
|
||||
)
|
||||
}
|
||||
/>
|
||||
</StyledFlex>
|
||||
|
||||
{shouldShowDeveloperSettings && (
|
||||
|
@ -84,6 +84,7 @@ export interface SystemState {
|
||||
isUploading: boolean;
|
||||
shouldUseNSFWChecker: boolean;
|
||||
shouldUseWatermarker: boolean;
|
||||
shouldDisableInformationalPopovers: boolean;
|
||||
}
|
||||
|
||||
export const initialSystemState: SystemState = {
|
||||
@ -116,6 +117,7 @@ export const initialSystemState: SystemState = {
|
||||
isUploading: false,
|
||||
shouldUseNSFWChecker: false,
|
||||
shouldUseWatermarker: false,
|
||||
shouldDisableInformationalPopovers: false,
|
||||
};
|
||||
|
||||
export const systemSlice = createSlice({
|
||||
@ -194,6 +196,12 @@ export const systemSlice = createSlice({
|
||||
shouldUseWatermarkerChanged(state, action: PayloadAction<boolean>) {
|
||||
state.shouldUseWatermarker = action.payload;
|
||||
},
|
||||
setShouldDisableInformationalPopovers(
|
||||
state,
|
||||
action: PayloadAction<boolean>
|
||||
) {
|
||||
state.shouldDisableInformationalPopovers = action.payload;
|
||||
},
|
||||
},
|
||||
extraReducers(builder) {
|
||||
/**
|
||||
@ -432,6 +440,7 @@ export const {
|
||||
progressImageSet,
|
||||
shouldUseNSFWCheckerChanged,
|
||||
shouldUseWatermarkerChanged,
|
||||
setShouldDisableInformationalPopovers,
|
||||
} = systemSlice.actions;
|
||||
|
||||
export default systemSlice.reducer;
|
||||
|
Loading…
Reference in New Issue
Block a user