import DeleteModal from '@/components/inertia/delete-modal'; import Switch from '@/components/switch'; import { Button } from '@/components/ui/button'; import { Card } from '@/components/ui/card'; import Dashboard from '@/layouts/dashboard/layout'; import { SharedData } from '@/types/global'; import { Head, Link, router, usePage } from '@inertiajs/react'; import { Pencil, RefreshCw, Trash2 } from 'lucide-react'; import { ReactNode } from 'react'; import AddLanguage from './partials/add-language'; const Index = () => { const { props } = usePage(); const { translate } = props; const { settings, common, button: buttonLabels } = translate; const languageStatus = (lang: Language, checked: boolean) => { router.put( route('language.update', lang.id), { is_active: checked }, { preserveScroll: true, }, ); }; const defaultLanguage = (lang: Language) => { router.post(route('language.default', lang.id), { preserveScroll: true, }); }; const syncFromFiles = (lang: Language) => { router.post(route('language.sync', lang.code), {}, { preserveScroll: true, }); }; return ( <> {settings.language_settings} {settings.translation_scope_information} {settings.translation_scope_dashboard} {settings.translation_scope_public_pages} {props.langs.map((lang) => lang.is_default ? ( {lang.name} ({lang.nativeName}) {common.default} syncFromFiles(lang)}> ) : ( {lang.name} ({lang.nativeName}) {lang.is_active ? ( defaultLanguage(lang)} size="sm" variant="secondary" className="rounded-full"> {buttonLabels.set_default} ) : null} syncFromFiles(lang)}> } /> languageStatus(lang, checked)} className="cursor-pointer" /> ), )} > ); }; Index.layout = (page: ReactNode) => ; export default Index;
{settings.language_settings}