Some checks failed
ci/woodpecker/push/integration Pipeline failed
ci/woodpecker/push/main Pipeline failed
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
- Academy, Whistleblower, Incidents frontend pages with API proxies and types - Vendor compliance API proxy route - Go backend handlers and models for all new SDK modules - Investor pitch-deck app with interactive slides - Blog section with DSGVO, AI Act, NIS2, glossary articles - MkDocs documentation site - CI/CD pipelines (Woodpecker, GitHub Actions), security scanning config - Planning and implementation documentation 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)
|
|
}
|