Migrated pitch-deck from breakpilot-pwa to breakpilot-core. Container: bp-core-pitch-deck on port 3012. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
40 lines
939 B
TypeScript
40 lines
939 B
TypeScript
'use client'
|
|
|
|
import { createContext, useContext, useState, useCallback, ReactNode } from 'react'
|
|
import { Language } from '../types'
|
|
import React from 'react'
|
|
|
|
interface LanguageContextType {
|
|
lang: Language
|
|
toggleLanguage: () => void
|
|
setLanguage: (lang: Language) => void
|
|
}
|
|
|
|
const LanguageContext = createContext<LanguageContextType>({
|
|
lang: 'de',
|
|
toggleLanguage: () => {},
|
|
setLanguage: () => {},
|
|
})
|
|
|
|
export function LanguageProvider({ children }: { children: ReactNode }) {
|
|
const [lang, setLang] = useState<Language>('de')
|
|
|
|
const toggleLanguage = useCallback(() => {
|
|
setLang(prev => prev === 'de' ? 'en' : 'de')
|
|
}, [])
|
|
|
|
const setLanguage = useCallback((newLang: Language) => {
|
|
setLang(newLang)
|
|
}, [])
|
|
|
|
return React.createElement(
|
|
LanguageContext.Provider,
|
|
{ value: { lang, toggleLanguage, setLanguage } },
|
|
children
|
|
)
|
|
}
|
|
|
|
export function useLanguage() {
|
|
return useContext(LanguageContext)
|
|
}
|