@@ -8,49 +8,9 @@ import styles from './Exhibit.module.scss'
8
8
import Loading from '../../atoms/Loading/Loading.tsx'
9
9
import ImageGallery from '../../organisms/ImageGallery/ImageGallery.tsx'
10
10
import Player from '../../organisms/Player/Player.tsx'
11
- import capitalizeFirstLetter from '../../../utils/capitalizeFirstLetter.ts'
12
- import {
13
- ENGLISH_LANGUAGE_CODE ,
14
- KARAKALPAK_LANGUAGE_CODE ,
15
- RUSSIAN_LANGUAGE_CODE ,
16
- UZBEK_LANGUAGE_CODE ,
17
- } from '../../../constants/languages.ts'
18
- import {
19
- NameLanguageField ,
20
- AuthorLanguageField ,
21
- AudioLanguageField ,
22
- DescriptionLanguageField ,
23
- LanguageField ,
24
- } from '../../../types/languages.ts'
25
11
import triggerGtagVisit from '../../../gtag/visit.ts'
26
12
import useImageGalleryStore from '../../../stores/useImageGalleryStore.ts'
27
-
28
- const languageFields : Record < string , Record < string , LanguageField > > = {
29
- [ ENGLISH_LANGUAGE_CODE ] : {
30
- name : 'nameEn' ,
31
- author : 'authorEn' ,
32
- audioFile : 'audioFileEn' ,
33
- description : 'descriptionEn' ,
34
- } ,
35
- [ RUSSIAN_LANGUAGE_CODE ] : {
36
- name : 'nameRu' ,
37
- author : 'authorRu' ,
38
- audioFile : 'audioFileRu' ,
39
- description : 'descriptionRu' ,
40
- } ,
41
- [ UZBEK_LANGUAGE_CODE ] : {
42
- name : 'nameUz' ,
43
- author : 'authorUz' ,
44
- audioFile : 'audioFileUz' ,
45
- description : 'descriptionUz' ,
46
- } ,
47
- [ KARAKALPAK_LANGUAGE_CODE ] : {
48
- name : 'nameKa' ,
49
- author : 'authorKa' ,
50
- audioFile : 'audioFileKa' ,
51
- description : 'descriptionKa' ,
52
- } ,
53
- }
13
+ import { LanguageCode , languages } from '../../../i18n.ts'
54
14
55
15
interface Props {
56
16
slug : string
@@ -73,7 +33,11 @@ export default function ExhibitPage({ slug }: Props) {
73
33
const { data, loading, error } = useGetExhibitQuery ( {
74
34
variables : { slug } ,
75
35
} )
76
- const { i18n, t } = useTranslation ( )
36
+ const {
37
+ i18n : { language } ,
38
+ t,
39
+ } = useTranslation ( )
40
+ const currentLanguage = language as LanguageCode
77
41
const exhibit = data ?. exhibitCollection ?. items [ 0 ]
78
42
79
43
const images =
@@ -83,36 +47,28 @@ export default function ExhibitPage({ slug }: Props) {
83
47
} ) ) || [ ]
84
48
85
49
const getExhibitNotFoundForLanguageMessage = ( ) => {
86
- const messages = Object . keys ( languageFields )
87
- . filter ( ( lang ) => exhibit ?. [ languageFields [ lang ] . name ] )
50
+ const messages = languages
51
+ . filter ( ( lang ) => exhibit ?. [ ` name${ lang } ` ] )
88
52
. map (
89
53
( lang ) =>
90
- `<a href="/${ slug } ?lng=${ lang } ">${ t ( `exhibitNotFound${ capitalizeFirstLetter ( lang ) } ` ) } </a>` ,
54
+ `<a href="/${ slug } ?lng=${ lang } ">${ t ( `exhibitNotFound${ lang } ` ) } </a>` ,
91
55
)
92
56
93
57
return `${ t ( 'exhibitNotFoundForLanguage' ) } ${ messages . join ( ', ' ) } `
94
58
}
95
59
96
- const title =
97
- exhibit ?. [ languageFields [ i18n . language ] . name as NameLanguageField ]
98
- const author =
99
- exhibit ?. [ languageFields [ i18n . language ] . author as AuthorLanguageField ]
100
- const audioFile =
101
- exhibit ?. [ languageFields [ i18n . language ] . audioFile as AudioLanguageField ]
102
- ?. url
103
- const description =
104
- exhibit ?. [
105
- languageFields [ i18n . language ] . description as DescriptionLanguageField
106
- ] ?. json
60
+ const title = exhibit ?. [ `name${ currentLanguage } ` ]
61
+ const author = exhibit ?. [ `author${ currentLanguage } ` ]
62
+ const audioFile = exhibit ?. [ `audioFile${ currentLanguage } ` ] ?. url
63
+ const description = exhibit ?. [ `description${ currentLanguage } ` ] ?. json
107
64
108
65
useEffect ( ( ) => {
109
- if ( exhibit ?. sys . id && slug && i18n . language ) {
110
- triggerGtagVisit ( exhibit . sys . id , i18n . language , slug )
66
+ if ( exhibit ?. sys . id && slug && currentLanguage ) {
67
+ triggerGtagVisit ( exhibit . sys . id , currentLanguage , slug )
111
68
}
112
- } , [ exhibit ?. sys . id , slug , i18n . language ] )
69
+ } , [ exhibit ?. sys . id , slug , currentLanguage ] )
113
70
114
71
useEffect ( ( ) => {
115
- console . log ( '1111' , document . getElementById ( 'exhibit-description' ) )
116
72
document
117
73
. getElementById ( 'exhibit-description' )
118
74
?. querySelectorAll ( 'a' )
0 commit comments