'use client'
import React, { useEffect, useState } from 'react'
import { useSelector, useDispatch } from 'react-redux'
import { setLanguage } from '@/redux/slices/languageSlice'
import { fetchLanguages } from '../../../public/mock/languageApi'
import { RootState } from '@/redux/store'
import { Tabs, Tab, Box, CircularProgress } from '@mui/material'
const LanguageSelector: React.FC = () => {
const [languages, setLanguages] = useState<
{ lang_id: number; lang_name: string; lang_native_name: string }[]
>([])
const selectedLanguage = useSelector((state: RootState) => state.language)
const dispatch = useDispatch()
// Fetch languages on component mount
useEffect(() => {
const getLanguages = async () => {
const response = await fetchLanguages()
if (response.status === 'success') {
setLanguages(response.data)
// Set the first language as the default language if none is selected
if (!selectedLanguage) {
dispatch(setLanguage(response.data[0].lang_name))
}
}
}
getLanguages()
}, [dispatch, selectedLanguage]) // Only depend on dispatch and selectedLanguage
if (languages.length === 0) {
return (
)
}
return (
dispatch(setLanguage(val))}
>
{languages.map((lang) => (
))}
)
}
export default LanguageSelector