// Die Sprach-Auswahl (5.5.0, Commander: „bei Tonspuren und Untertiteln // können Dropdowns hin") — gewählte Sprachen als Chips in Wunschreihenfolge, // dazu ein Dropdown zum Hinzufügen. Die erste Tonsprache ist die // Wunschsprache (auftrag.ts sprachwahl). Leer heißt „alle". import { SPRACHEN, sprachName, sprachlisteAus, sprachlisteText } from '../../gemeinsam/sprachen' export function SprachAuswahl({ name, hinweis, wert, aufAendern, }: { name: string hinweis: string wert: string aufAendern: (wert: string) => void }) { const gewaehlt = sprachlisteAus(wert) const frei = SPRACHEN.filter((s) => !gewaehlt.includes(s.code)) const setzen = (codes: string[]): void => aufAendern(sprachlisteText(codes)) const verschieben = (code: string, richtung: -1 | 1): void => { const i = gewaehlt.indexOf(code) const j = i + richtung if (i < 0 || j < 0 || j >= gewaehlt.length) return const neu = [...gewaehlt] ;[neu[i], neu[j]] = [neu[j], neu[i]] setzen(neu) } return (
{name} {hinweis}
{gewaehlt.length === 0 && alle Sprachen der Disc} {gewaehlt.map((code, i) => ( {i + 1}. {sprachName(code)} {code} ))}
) }