From 659e94c8dadf78d73a8c7c11ab8e22f84f48a124 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 01:31:02 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Add=20accessibility?= =?UTF-8?q?=20labels=20to=20close=20buttons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: TargetMisser <52361977+TargetMisser@users.noreply.github.com> --- .jules/palette.md | 3 +++ src/components/DrawerMenu.tsx | 8 +++++++- src/components/ShiftTimeline.tsx | 8 +++++++- src/i18n/translations.ts | 4 ++-- 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 .jules/palette.md diff --git a/.jules/palette.md b/.jules/palette.md new file mode 100644 index 0000000..7e6da48 --- /dev/null +++ b/.jules/palette.md @@ -0,0 +1,3 @@ +## 2026-04-24 - Missing translation keys break typecheck +**Learning:** When adding accessibility labels to icon-only buttons via `useLanguage` hook and `t('...')` in this React Native app, adding the new key to `src/i18n/translations.ts` in the base language object (`it`) but missing it in other type-checked language objects (like `const en: typeof it = {...}`) will cause `npm run typecheck` to fail with TS2741. +**Action:** Always verify that newly added translation keys are duplicated across all language dictionary objects in `translations.ts` to satisfy TypeScript's strict type checking. diff --git a/src/components/DrawerMenu.tsx b/src/components/DrawerMenu.tsx index e22e073..6b46ed4 100644 --- a/src/components/DrawerMenu.tsx +++ b/src/components/DrawerMenu.tsx @@ -84,7 +84,13 @@ export default function DrawerMenu({ visible, onClose, onSelect }: Props) { style={styles.headerGradient} > - + diff --git a/src/components/ShiftTimeline.tsx b/src/components/ShiftTimeline.tsx index 9c7f60b..e9414b1 100644 --- a/src/components/ShiftTimeline.tsx +++ b/src/components/ShiftTimeline.tsx @@ -143,7 +143,13 @@ export default function ShiftTimeline({ visible, onClose, shiftStart, shiftEnd, Voli nel Turno {fmtTime(startSec)} – {fmtTime(endSec)} - + diff --git a/src/i18n/translations.ts b/src/i18n/translations.ts index 8ccd1e2..727ba1c 100644 --- a/src/i18n/translations.ts +++ b/src/i18n/translations.ts @@ -6,7 +6,7 @@ const it = { overlayNotepad: 'Blocco Note', overlayPhonebook: 'Rubrica', overlayPasswords: 'Password', overlayManuals: 'Manuali DCS', overlaySettings: 'Impostazioni', // Common - cancel: 'Annulla', save: 'Salva', delete: 'Elimina', error: 'Errore', + close: 'Chiudi', cancel: 'Annulla', save: 'Salva', delete: 'Elimina', error: 'Errore', confirm: 'Conferma', ok: 'OK', add: 'Aggiungi', // Settings settingsTitle: 'Impostazioni', @@ -164,7 +164,7 @@ const en: typeof it = { overlayNotepad: 'Notepad', overlayPhonebook: 'Phonebook', overlayPasswords: 'Password', overlayManuals: 'DCS Manuals', overlaySettings: 'Settings', // Common - cancel: 'Cancel', save: 'Save', delete: 'Delete', error: 'Error', + close: 'Close', cancel: 'Cancel', save: 'Save', delete: 'Delete', error: 'Error', confirm: 'Confirm', ok: 'OK', add: 'Add', // Settings settingsTitle: 'Settings',