@@ -14,6 +14,7 @@ import { Avatar } from '@zendeskgarden/react-avatars'
14
14
import { MD } from '@zendeskgarden/react-typography'
15
15
16
16
import UpdateUserOfficeMutation from '/mutations/UpdateUserOfficeMutation.gql'
17
+ import UpdateUserLanguagePreferenceMutation from '/mutations/UpdateUserLanguagePreferenceMutation.gql'
17
18
import { UserContext , FilterContext } from '/context'
18
19
import GeneralSettingsMenu from './GeneralSettingsMenu'
19
20
import DefaultOfficeMenu from './DefaultOfficeMenu'
@@ -35,12 +36,6 @@ const UserName = styled(MD)`
35
36
`
36
37
37
38
const UserProfileMenu = ( { offices, location, router, togglePopover, languages } ) => {
38
- // 1: {id: "2", languageCode: "es", languageName: "Español"}
39
- // const oldLanguages = [
40
- // { label: 'English', value: 'en' },
41
- // { label: '日本語', value: 'ja' },
42
- // { label: 'Español', value: 'es' },
43
- // ]
44
39
45
40
const { i18n, t } = useTranslation ( )
46
41
const { currentUser, setOffice } = useContext ( UserContext )
@@ -50,6 +45,7 @@ const UserProfileMenu = ({ offices, location, router, togglePopover, languages }
50
45
// language: reach out to local storage first
51
46
const [ selectedItem , setSelectedItem ] = useState ( { office : currentUser . office , language : i18n . language } )
52
47
const [ updateDefaultOffice ] = useMutation ( UpdateUserOfficeMutation )
48
+ const [ updateUserLanguagePreference ] = useMutation ( UpdateUserLanguagePreferenceMutation )
53
49
54
50
if ( R . isNil ( currentUser ) || R . isEmpty ( currentUser ) ) return null
55
51
@@ -64,7 +60,6 @@ const UserProfileMenu = ({ offices, location, router, togglePopover, languages }
64
60
. then ( _ => setOfficeValue ( office . id ) )
65
61
. then ( _ => togglePopover ( 'user' ) )
66
62
67
-
68
63
const handleStateChange = ( changes , stateAndHelpers ) => {
69
64
if ( R . hasPath ( [ 'isOpen' ] ) ( changes ) ) {
70
65
setIsOpen (
@@ -102,6 +97,8 @@ const UserProfileMenu = ({ offices, location, router, togglePopover, languages }
102
97
i18n . changeLanguage ( selectedItem . language . value , ( ) => {
103
98
// TODO: Handle callback (error/success)
104
99
} )
100
+ const selectedLanguage = R . find ( R . propEq ( "languageCode" , selectedItem . language . value ) , languages )
101
+ updateUserLanguagePreference ( { variables : { id : selectedLanguage . id } } )
105
102
setSelectedItem ( selectedItem )
106
103
}
107
104
// The following are for accessibility support for Link navigation
0 commit comments