4
4
Grid ,
5
5
GridItem ,
6
6
Heading ,
7
- IconButton ,
8
7
Image ,
9
8
Modal ,
10
9
ModalBody ,
@@ -13,21 +12,17 @@ import {
13
12
ModalFooter ,
14
13
ModalHeader ,
15
14
ModalOverlay ,
16
- Spacer ,
17
15
Text ,
18
- Tooltip ,
19
16
useDisclosure ,
20
17
} from '@invoke-ai/ui-library' ;
21
- import ScrollableContent from 'common/components/OverlayScrollbars/ScrollableContent ' ;
22
- import { useClipboard } from 'common/hooks/useClipboard ' ;
18
+ import { deepClone } from 'common/util/deepClone ' ;
19
+ import DataViewer from 'features/gallery/components/ImageMetadataViewer/DataViewer ' ;
23
20
import { discordLink , githubLink , websiteLink } from 'features/system/store/constants' ;
24
- import { map } from 'lodash-es' ;
25
21
import InvokeLogoYellow from 'public/assets/images/invoke-tag-lrg.svg' ;
26
22
import type { ReactElement } from 'react' ;
27
- import { cloneElement , memo , useCallback } from 'react' ;
23
+ import { cloneElement , memo , useMemo } from 'react' ;
28
24
import { useTranslation } from 'react-i18next' ;
29
- import { PiCopyBold } from 'react-icons/pi' ;
30
- import { useGetAppDepsQuery , useGetAppVersionQuery } from 'services/api/endpoints/appInfo' ;
25
+ import { useGetAppDepsQuery , useGetAppVersionQuery , useGetRuntimeConfigQuery } from 'services/api/endpoints/appInfo' ;
31
26
32
27
type AboutModalProps = {
33
28
/* The button to open the Settings Modal */
@@ -37,18 +32,26 @@ type AboutModalProps = {
37
32
const AboutModal = ( { children } : AboutModalProps ) => {
38
33
const { isOpen, onOpen, onClose } = useDisclosure ( ) ;
39
34
const { t } = useTranslation ( ) ;
40
- const clipboard = useClipboard ( ) ;
41
- const { depsArray, depsObject } = useGetAppDepsQuery ( undefined , {
42
- selectFromResult : ( { data } ) => ( {
43
- depsObject : data ,
44
- depsArray : data ? map ( data , ( version , name ) => ( { name, version } ) ) : [ ] ,
45
- } ) ,
46
- } ) ;
35
+ const { data : runtimeConfig } = useGetRuntimeConfigQuery ( ) ;
36
+ const { data : dependencies } = useGetAppDepsQuery ( ) ;
47
37
const { data : appVersion } = useGetAppVersionQuery ( ) ;
48
38
49
- const handleCopy = useCallback ( ( ) => {
50
- clipboard . writeText ( JSON . stringify ( depsObject , null , 2 ) ) ;
51
- } , [ clipboard , depsObject ] ) ;
39
+ const localData = useMemo ( ( ) => {
40
+ const clonedRuntimeConfig = deepClone ( runtimeConfig ) ;
41
+
42
+ if ( clonedRuntimeConfig && clonedRuntimeConfig . config . remote_api_tokens ) {
43
+ clonedRuntimeConfig . config . remote_api_tokens . forEach ( ( remote_api_token ) => {
44
+ remote_api_token . token = 'REDACTED' ;
45
+ } ) ;
46
+ }
47
+
48
+ return {
49
+ version : appVersion ?. version ,
50
+ dependencies,
51
+ config : clonedRuntimeConfig ?. config ,
52
+ set_config_fields : clonedRuntimeConfig ?. set_fields ,
53
+ } ;
54
+ } , [ appVersion , dependencies , runtimeConfig ] ) ;
52
55
53
56
return (
54
57
< >
@@ -63,27 +66,7 @@ const AboutModal = ({ children }: AboutModalProps) => {
63
66
< ModalBody display = "flex" flexDir = "column" gap = { 4 } >
64
67
< Grid templateColumns = "repeat(2, 1fr)" h = "full" >
65
68
< GridItem backgroundColor = "base.750" borderRadius = "base" p = "4" h = "full" >
66
- < ScrollableContent >
67
- < Flex position = "sticky" top = "0" backgroundColor = "base.750" p = { 1 } alignItems = "center" >
68
- < Heading size = "md" > { t ( 'common.localSystem' ) } </ Heading >
69
- < Spacer />
70
- < Tooltip label = { t ( 'common.copy' ) } >
71
- < IconButton
72
- onClick = { handleCopy }
73
- isDisabled = { ! depsObject }
74
- aria-label = { t ( 'common.copy' ) }
75
- icon = { < PiCopyBold /> }
76
- variant = "ghost"
77
- />
78
- </ Tooltip >
79
- </ Flex >
80
- { depsArray . map ( ( { name, version } , i ) => (
81
- < Grid key = { i } py = "2" px = "1" w = "full" templateColumns = "repeat(2, 1fr)" >
82
- < Text > { name } </ Text >
83
- < Text > { version ? version : t ( 'common.notInstalled' ) } </ Text >
84
- </ Grid >
85
- ) ) }
86
- </ ScrollableContent >
69
+ < DataViewer label = { t ( 'common.systemInformation' ) } data = { localData } />
87
70
</ GridItem >
88
71
< GridItem >
89
72
< Flex flexDir = "column" gap = { 3 } justifyContent = "center" alignItems = "center" h = "full" >
0 commit comments