mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Merge branch 'main' into chainchompa/simple-upscale-updates
This commit is contained in:
commit
bf6066d834
@ -1654,6 +1654,12 @@
|
|||||||
"missingUpscaleModel": "Missing upscale model",
|
"missingUpscaleModel": "Missing upscale model",
|
||||||
"missingTileControlNetModel": "No valid tile ControlNet models installed"
|
"missingTileControlNetModel": "No valid tile ControlNet models installed"
|
||||||
},
|
},
|
||||||
|
"upsell": {
|
||||||
|
"inviteTeammates": "Invite Teammates",
|
||||||
|
"professional": "Professional",
|
||||||
|
"professionalUpsell": "Available in Invoke’s Professional Edition. Click here or visit invoke.com/pricing for more details.",
|
||||||
|
"shareAccess": "Share Access"
|
||||||
|
},
|
||||||
"ui": {
|
"ui": {
|
||||||
"tabs": {
|
"tabs": {
|
||||||
"generation": "Generation",
|
"generation": "Generation",
|
||||||
|
@ -14,10 +14,18 @@ import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
|
|||||||
import { discordLink, githubLink } from 'features/system/store/constants';
|
import { discordLink, githubLink } from 'features/system/store/constants';
|
||||||
import { memo } from 'react';
|
import { memo } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { PiBugBeetleBold, PiInfoBold, PiKeyboardBold, PiToggleRightFill } from 'react-icons/pi';
|
import {
|
||||||
|
PiBugBeetleBold,
|
||||||
|
PiInfoBold,
|
||||||
|
PiKeyboardBold,
|
||||||
|
PiShareNetworkFill,
|
||||||
|
PiToggleRightFill,
|
||||||
|
PiUsersBold,
|
||||||
|
} from 'react-icons/pi';
|
||||||
import { RiDiscordFill, RiGithubFill, RiSettings4Line } from 'react-icons/ri';
|
import { RiDiscordFill, RiGithubFill, RiSettings4Line } from 'react-icons/ri';
|
||||||
|
|
||||||
import SettingsModal from './SettingsModal';
|
import SettingsModal from './SettingsModal';
|
||||||
|
import { SettingsUpsellMenuItem } from './SettingsUpsellMenuItem';
|
||||||
const SettingsMenu = () => {
|
const SettingsMenu = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { isOpen, onOpen, onClose } = useDisclosure();
|
const { isOpen, onOpen, onClose } = useDisclosure();
|
||||||
@ -28,7 +36,7 @@ const SettingsMenu = () => {
|
|||||||
const isGithubLinkEnabled = useFeatureStatus('githubLink');
|
const isGithubLinkEnabled = useFeatureStatus('githubLink');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Menu isOpen={isOpen} onOpen={onOpen} onClose={onClose}>
|
<Menu isOpen={isOpen} onOpen={onOpen} onClose={onClose} autoSelect={false}>
|
||||||
<MenuButton
|
<MenuButton
|
||||||
as={IconButton}
|
as={IconButton}
|
||||||
variant="link"
|
variant="link"
|
||||||
@ -36,8 +44,12 @@ const SettingsMenu = () => {
|
|||||||
icon={<RiSettings4Line fontSize={20} />}
|
icon={<RiSettings4Line fontSize={20} />}
|
||||||
boxSize={8}
|
boxSize={8}
|
||||||
/>
|
/>
|
||||||
|
<MenuList zIndex={1}>
|
||||||
|
<MenuGroup title={t('upsell.professional')}>
|
||||||
|
<SettingsUpsellMenuItem menuText={t('upsell.inviteTeammates')} menuIcon={PiUsersBold} />
|
||||||
|
<SettingsUpsellMenuItem menuText={t('upsell.shareAccess')} menuIcon={PiShareNetworkFill} />
|
||||||
|
</MenuGroup>
|
||||||
|
|
||||||
<MenuList>
|
|
||||||
<MenuGroup title={t('common.communityLabel')}>
|
<MenuGroup title={t('common.communityLabel')}>
|
||||||
{isGithubLinkEnabled && (
|
{isGithubLinkEnabled && (
|
||||||
<MenuItem as="a" href={githubLink} target="_blank" icon={<RiGithubFill />}>
|
<MenuItem as="a" href={githubLink} target="_blank" icon={<RiGithubFill />}>
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
import { Box, Flex, Icon, MenuItem, Text, Tooltip } from '@invoke-ai/ui-library';
|
||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
import type { IconType } from 'react-icons';
|
||||||
|
import { PiArrowUpBold } from 'react-icons/pi';
|
||||||
|
|
||||||
|
export const SettingsUpsellMenuItem = ({ menuText, menuIcon }: { menuText: string; menuIcon: IconType }) => {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Tooltip label={t('upsell.professionalUpsell')} placement="right" zIndex={2}>
|
||||||
|
<MenuItem as="a" href="http://invoke.com/pricing" target="_blank" icon={menuIcon({})}>
|
||||||
|
<Flex gap="1" alignItems="center">
|
||||||
|
<Text pb="2px">{menuText}</Text>
|
||||||
|
<Box>
|
||||||
|
<Icon
|
||||||
|
as={PiArrowUpBold}
|
||||||
|
sx={{
|
||||||
|
mt: '2px',
|
||||||
|
fill: 'invokeYellow.500',
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Box>
|
||||||
|
</Flex>
|
||||||
|
</MenuItem>
|
||||||
|
</Tooltip>
|
||||||
|
);
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user