Show API save errors in RoomModal footer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user