Show API save errors in RoomModal footer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 16:55:08 +03:00
parent 55a34dc0dc
commit 56f4d997a2
2 changed files with 16 additions and 3 deletions

View File

@@ -62,7 +62,10 @@ export function RoomsPage() {
setModalOpen(true)
}
const [saveError, setSaveError] = useState<string | null>(null)
const handleSave = async (room: Room) => {
setSaveError(null)
try {
const isNew = !rooms.find(r => r.id === room.id)
if (isNew) {
@@ -90,7 +93,12 @@ export function RoomsPage() {
}
setModalOpen(false)
} catch (err) {
console.error('Failed to save room:', err)
const msg = err instanceof Error ? err.message : 'Ошибка сохранения'
setSaveError(
msg.includes('already exists') || msg.includes('duplicate') || msg.includes('unique')
? `Номер «${room.number}» уже существует`
: msg,
)
}
}
@@ -275,9 +283,10 @@ export function RoomsPage() {
<RoomModal
open={modalOpen}
room={editingRoom}
onClose={() => setModalOpen(false)}
onClose={() => { setModalOpen(false); setSaveError(null) }}
onSave={handleSave}
categories={MOCK_CATEGORIES}
error={saveError}
/>
</div>
)