-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathSettingsModal.tsx
More file actions
51 lines (49 loc) · 1.76 KB
/
Copy pathSettingsModal.tsx
File metadata and controls
51 lines (49 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import {
Box,
Divider,
Flex,
Modal,
ModalBody,
ModalCloseButton,
ModalContent,
ModalFooter,
ModalHeader,
ModalOverlay,
Spacer,
} from '@invoke-ai/ui-library';
import { useStore } from '@nanostores/react';
import { memo, useCallback } from 'react';
import { SettingsModalEnablePartialLoading } from '@/renderer/features/SettingsModal/SettingsModalEnablePartialLoading';
import { SettingsModalNotifyForPrereleaseUpdates } from '@/renderer/features/SettingsModal/SettingsModalNotifyForPrereleaseUpdates';
import { SettingsModalResetButton } from '@/renderer/features/SettingsModal/SettingsModalResetButton';
import { SettingsModalServerMode } from '@/renderer/features/SettingsModal/SettingsModalServerMode';
import { $isSettingsOpen } from '@/renderer/features/SettingsModal/state';
export const SettingsModal = memo(() => {
const isOpen = useStore($isSettingsOpen);
const onClose = useCallback(() => {
$isSettingsOpen.set(false);
}, []);
return (
<Modal isOpen={isOpen} onClose={onClose} isCentered>
<ModalOverlay bg="transparent" backdropFilter="auto" backdropBlur="32px">
<Box position="absolute" inset={0} bg="base.900" opacity={0.7} />
</ModalOverlay>
<ModalContent>
<ModalHeader>Settings</ModalHeader>
<ModalCloseButton />
<ModalBody as={Flex} flexDir="column" gap={4} w="full" h="full" minH={32}>
<SettingsModalServerMode />
<Divider />
<SettingsModalNotifyForPrereleaseUpdates />
<Divider />
<SettingsModalEnablePartialLoading />
</ModalBody>
<ModalFooter pt={16}>
<SettingsModalResetButton />
<Spacer />
</ModalFooter>
</ModalContent>
</Modal>
);
});
SettingsModal.displayName = 'SettingsModal';