@@ -3,26 +3,19 @@ import { useFetchContent } from '../hooks/useFetchContent';
3
3
import { Heading , Loader } from '@navikt/ds-react' ;
4
4
import { useAppState } from '../context/appState/useAppState' ;
5
5
import { ViewSelector , ViewVariant } from 'client/viewSelector/ViewSelector' ;
6
- import { ContentHtmlView } from 'client/contentHtmlView/ContentHtmlView ' ;
6
+ import { ContentPreview } from 'client/contentPreview/ContentPreview ' ;
7
7
import { ContentJsonView } from 'client/contentJsonView/contentJsonView' ;
8
- import { ContentFilesView } from 'client/contentFilesView/ContentFilesView' ;
9
8
import { VersionSelector } from 'client/versionSelector/VersionSelector' ;
10
9
import { ContentServiceResponse } from 'shared/types' ;
11
10
12
11
import style from './ContentView.module.css' ;
13
12
14
- const getDefaultView = ( data : ContentServiceResponse | null | undefined ) : ViewVariant => {
15
- if ( data ?. html ) return 'html' ;
16
- return 'json' ;
17
- } ;
18
-
19
13
const getDisplayComponent = ( viewVariant : ViewVariant , data : ContentServiceResponse ) => {
20
- const translations : Record < ViewVariant , React . ReactElement > = {
21
- html : < ContentHtmlView html = { data . html } /> ,
14
+ const components : Record < ViewVariant , React . ReactElement > = {
15
+ preview : < ContentPreview html = { data . html } content = { data . json } /> ,
22
16
json : < ContentJsonView json = { data . json } /> ,
23
- files : < ContentFilesView /> ,
24
17
} ;
25
- return translations [ viewVariant ] ;
18
+ return components [ viewVariant ] ;
26
19
} ;
27
20
28
21
export const ContentView = ( ) => {
@@ -36,11 +29,12 @@ export const ContentView = () => {
36
29
versionId : selectedVersion ?. versionId ?? undefined ,
37
30
} ) ;
38
31
39
- const [ selectedView , setSelectedView ] = useState < ViewVariant > ( 'json' ) ;
32
+ const hasPreview = ! ! data ?. html || ! ! data ?. json . attachment ;
33
+ const [ selectedView , setSelectedView ] = useState < ViewVariant > ( 'preview' ) ;
40
34
41
35
useEffect ( ( ) => {
42
- setSelectedView ( getDefaultView ( data ) ) ;
43
- } , [ data ] ) ;
36
+ setSelectedView ( hasPreview ? 'preview' : 'json' ) ;
37
+ } , [ hasPreview ] ) ;
44
38
45
39
if ( isLoading ) {
46
40
return < Loader /> ;
@@ -56,12 +50,12 @@ export const ContentView = () => {
56
50
< ViewSelector
57
51
selectedView = { selectedView }
58
52
setSelectedView = { setSelectedView }
59
- hasHtml = { ! ! data . html }
53
+ hasPreview = { hasPreview }
60
54
/>
61
55
</ div >
62
56
< VersionSelector versions = { data . versions } />
63
57
</ div >
64
- { getDisplayComponent ( selectedView , data ) }
58
+ < div className = { style . main } > { getDisplayComponent ( selectedView , data ) } </ div >
65
59
</ div >
66
60
) : null }
67
61
</ >
0 commit comments