41c0c30cb8033cf6524d8a1102767012e2a0647b
Two small UX fixes for the Add/Edit Meeting save toast. artifacts/tx-os/src/pages/executive-meetings.tsx - Added a `translateSaveError(rawMsg, t)` helper near the other top-level helpers (~line 425). It substring-matches the API's Zod-generated message "startTime must be <= endTime" and returns the translated copy from `executiveMeetings.manage.errors.endTimeBeforeStart`. Anything unknown falls through to the raw server message so unexpected errors aren't silently hidden. - The save catch block now passes the message through this helper before showing the toast. Title still uses `errors.saveFailed`. artifacts/tx-os/src/locales/ar.json + en.json - New translation key `executiveMeetings.manage.errors.endTimeBeforeStart`: - ar: "وقت الانتهاء يجب أن يكون بعد وقت البدء" - en: "End time must be after start time" artifacts/tx-os/src/components/ui/toast.tsx - ToastViewport: replaced the mobile-top + desktop-bottom-right positioning with a single bottom-center placement on every viewport (`fixed bottom-0 left-1/2 -translate-x-1/2`). Width is still capped at `md:max-w-[420px]`. The flex direction is `flex-col` (no longer `flex-col-reverse`) since there is now only one slide-in direction. - toastVariants: dropped `data-[state=open]:slide-in-from-top-full` so toasts slide in from the bottom on every breakpoint, matching the new viewport position. Out of scope (untouched): API validation, other dialogs/pages, preventive client-side validation for invalid time ranges.
Description
No description provided
Languages
TypeScript
69.4%
JavaScript
29%
CSS
0.6%
Shell
0.6%
Dockerfile
0.2%
Other
0.2%