fix(ui): i18n device-locale + share-pill rounded-full + Profile debug-marker

stores/language.ts:
- init() override AsyncStorage-Wert nicht — wenn nichts gespeichert,
  i18n bleibt bei deviceLocale (von lib/i18n.ts via Localization.getLocales).
  Vorher: forced 'en' default obwohl App auf DE.

ComposeCard share-button:
- borderRadius:12 + height:50 → rounded-full px-5 h-11 (44pt)
- text-base → text-sm. Pill-Pattern wie Pre-Session.

app/profile/index.tsx:
- AppHeader title "Profil" → "Profil DEBUG-2300" — TEMPORARY marker
  zur Verifikation ob File geladen wird (user-suspect: routing zu altem
  File). Wird nach Test wieder entfernt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
chahinebrini 2026-05-07 23:10:20 +02:00
parent 922d5dc876
commit fb97cda63d
3 changed files with 11 additions and 9 deletions

View File

@ -156,7 +156,7 @@ export default function ProfileScreen() {
return (
<View style={{ flex: 1, backgroundColor: '#ffffff' }}>
<AppHeader showBack title="Profil" />
<AppHeader showBack title="Profil DEBUG-2300" />
<ScrollView
ref={scrollViewRef}
style={{ flex: 1 }}

View File

@ -163,18 +163,15 @@ export function ComposeCard({ onPosted }: Props) {
<Pressable
onPressIn={() => { if (!content.trim() || posting) return; submit(); }}
disabled={!content.trim() || posting}
className="bg-rebreak-500 items-center justify-center"
className="bg-rebreak-500 items-center justify-center rounded-full px-5 h-11"
style={({ pressed }) => ({
height: 50,
paddingHorizontal: 24,
borderRadius: 12,
opacity: pressed || !content.trim() || posting ? 0.5 : 1,
})}
>
{posting ? (
<ActivityIndicator size="small" color="#fff" />
) : (
<Text className="text-white text-base" style={{ fontFamily: 'Nunito_600SemiBold' }}>{t('community.share')}</Text>
<Text className="text-white text-sm" style={{ fontFamily: 'Nunito_600SemiBold' }}>{t('community.share')}</Text>
)}
</Pressable>
</View>

View File

@ -17,9 +17,14 @@ export const useLanguageStore = create<LanguageState>((set) => ({
init: async () => {
const stored = await AsyncStorage.getItem(STORAGE_KEY);
const lang: AppLanguage = stored === 'de' || stored === 'en' ? stored : 'en';
await i18n.changeLanguage(lang);
set({ language: lang });
if (stored === 'de' || stored === 'en') {
await i18n.changeLanguage(stored);
set({ language: stored });
} else {
// Kein expliziter Wert gespeichert — i18n.ts hat bereits via deviceLocale
// initialisiert (Localization.getLocales()). NICHT auf 'en' overriden.
set({ language: (i18n.language === 'de' ? 'de' : 'en') as AppLanguage });
}
},
setLanguage: async (lang) => {