File tree 6 files changed +55
-15
lines changed
Info/Retrieval/RetrievalTable
6 files changed +55
-15
lines changed Original file line number Diff line number Diff line change 6
6
*/
7
7
8
8
import { request } from 'helpers/request'
9
+ import { formatInstanceRetrieval } from '@postgres.ai/shared/types/api/entities/instanceRetrieval'
9
10
10
11
export const getInstanceRetrieval = async ( ) => {
11
12
const response = await request ( '/instance/retrieval' )
12
13
13
14
return {
14
- response : response . ok ? response : null ,
15
+ response : response . ok ? formatInstanceRetrieval ( await response . json ( ) ) : null ,
15
16
error : response . ok ? null : response ,
16
17
}
17
18
}
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ export const RetrievalTable = ({
20
20
< Table >
21
21
< TableHead >
22
22
< TableRow >
23
- < TableCell > Activity on the { activity } </ TableCell >
23
+ < TableCell className = { styles . tableSubtitle } > Activity on the { activity } </ TableCell >
24
24
</ TableRow >
25
25
</ TableHead >
26
26
< TableBody className = { styles . tableBody } >
@@ -30,16 +30,20 @@ export const RetrievalTable = ({
30
30
{ Object . entries ( item ) . map ( ( val , index ) => (
31
31
< TableRow key = { index } hover className = { styles . tableRow } >
32
32
< TableCell >
33
- { val [ 0 ] } : { val [ 1 ] }
33
+ { val [ 0 ] } : { val [ 1 ] }
34
34
</ TableCell >
35
35
</ TableRow >
36
36
) ) }
37
37
</ div >
38
38
) )
39
39
) : (
40
- < TableRow className = { styles . tableRow } >
41
- < TableCell > No activity on the { activity } </ TableCell >
42
- </ TableRow >
40
+ < TableBody className = { styles . tableBody } >
41
+ < div >
42
+ < TableRow className = { styles . tableRow } >
43
+ < TableCell > No activity on the { activity } </ TableCell >
44
+ </ TableRow >
45
+ </ div >
46
+ </ TableBody >
43
47
) }
44
48
</ TableBody >
45
49
</ Table >
Original file line number Diff line number Diff line change 12
12
}
13
13
14
14
div {
15
- padding-bottom : 0.75rem ;
15
+ padding : 0.75rem 0 ;
16
16
}
17
17
18
18
td {
19
19
border-bottom : 0 ;
20
- padding : 12px 18px ;
20
+ padding : 0px 18px ;
21
+ font-size : 13px ;
22
+ font-family : ' Fira Code' , monospace ;
21
23
}
22
24
}
25
+
26
+ .tableSubtitle {
27
+ font-size : 15px ;
28
+ font-weight : bold ;
29
+ }
Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ import { getTextFromUnknownApiError } from '@postgres.ai/shared/utils/api'
23
23
import { dbSource } from 'types/api/entities/dbSource'
24
24
import { GetFullConfig } from 'types/api/endpoints/getFullConfig'
25
25
import { GetInstanceRetrieval } from 'types/api/endpoints/getInstanceRetrieval'
26
- import { InstanceRetrieval } from 'types/api/entities/instanceRetrieval'
26
+ import { InstanceRetrievalType } from 'types/api/entities/instanceRetrieval'
27
27
28
28
const POLLING_TIME = 2000
29
29
@@ -51,7 +51,7 @@ type Error = {
51
51
52
52
export class MainStore {
53
53
instance : Instance | null = null
54
- instanceRetrieval : InstanceRetrieval | null = null
54
+ instanceRetrieval : InstanceRetrievalType | null = null
55
55
config : Config | null = null
56
56
fullConfig ?: string
57
57
instanceError : Error | null = null
@@ -108,7 +108,7 @@ export class MainStore {
108
108
} )
109
109
110
110
if ( response )
111
- this . instanceRetrieval = await response ?. json ( )
111
+ this . instanceRetrieval = response
112
112
113
113
if ( error )
114
114
this . instanceError = { message : await getTextFromUnknownApiError ( error ) }
Original file line number Diff line number Diff line change
1
+ import { InstanceRetrievalType } from '@postgres.ai/shared/types/api/entities/instanceRetrieval'
2
+
1
3
export type GetInstanceRetrieval = ( args : { instanceId : string } ) => Promise < {
2
- response : Response | null
4
+ response : InstanceRetrievalType | null
3
5
error : Response | null
4
6
} >
Original file line number Diff line number Diff line change 1
1
export interface ActivityType {
2
2
user ?: string
3
3
query ?: string
4
- duration ?: string
5
- wait_event_type ?: string
6
- wait_event ?: string
4
+ duration ?: number | string
5
+ waitEventType ?: string
6
+ waitEvent ?: string
7
7
}
8
8
9
9
export type InstanceRetrieval = {
@@ -18,3 +18,29 @@ export type InstanceRetrieval = {
18
18
target : ActivityType [ ]
19
19
}
20
20
}
21
+
22
+ const replaceSinglequote = ( string ?: string ) => string ?. replace ( / ' / g, '' )
23
+
24
+ const formatActivity = ( activity : ActivityType [ ] ) =>
25
+ activity ?. map ( ( item ) => {
26
+ return {
27
+ user : replaceSinglequote ( item . user ) ,
28
+ query : replaceSinglequote ( item . query ) ,
29
+ duration : replaceSinglequote ( `${ item . duration } ms` ) ,
30
+ 'wait type/event' : replaceSinglequote (
31
+ `${ item . waitEventType } /${ item . waitEvent } ` ,
32
+ ) ,
33
+ }
34
+ } )
35
+
36
+ export const formatInstanceRetrieval = ( retrieval : InstanceRetrieval ) => {
37
+ return {
38
+ ...retrieval ,
39
+ activity : {
40
+ source : formatActivity ( retrieval . activity ?. source ) ,
41
+ target : formatActivity ( retrieval . activity ?. target ) ,
42
+ } ,
43
+ }
44
+ }
45
+
46
+ export type InstanceRetrievalType = ReturnType < typeof formatInstanceRetrieval >
You can’t perform that action at this time.
0 commit comments