Code review and fixes
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import React, { useState } from 'react';
|
||||
import axios from 'axios';
|
||||
import { useToast } from './ToastProvider';
|
||||
|
||||
const s = {
|
||||
wrapper: { marginTop: '20px' },
|
||||
@@ -53,14 +54,23 @@ export default function EmployeeNotes({ employeeId, initialNotes, onSaved }) {
|
||||
const [draft, setDraft] = useState(initialNotes || '');
|
||||
const [saved, setSaved] = useState(initialNotes || '');
|
||||
const [saving, setSaving] = useState(false);
|
||||
const [saveErr, setSaveErr] = useState('');
|
||||
|
||||
const toast = useToast();
|
||||
|
||||
const handleSave = async () => {
|
||||
setSaving(true);
|
||||
setSaveErr('');
|
||||
try {
|
||||
await axios.patch(`/api/employees/${employeeId}/notes`, { notes: draft });
|
||||
setSaved(draft);
|
||||
setEditing(false);
|
||||
if (onSaved) onSaved(draft);
|
||||
} catch (err) {
|
||||
const msg = err.response?.data?.error || err.message || 'Failed to save notes';
|
||||
setSaveErr(msg);
|
||||
toast.error('Notes save failed: ' + msg);
|
||||
// Keep editing open so the user doesn't lose their changes
|
||||
} finally {
|
||||
setSaving(false);
|
||||
}
|
||||
@@ -130,6 +140,11 @@ export default function EmployeeNotes({ employeeId, initialNotes, onSaved }) {
|
||||
placeholder="Free-text notes — one per line or comma-separated. Does not affect CPAS scoring."
|
||||
autoFocus
|
||||
/>
|
||||
{saveErr && (
|
||||
<div style={{ fontSize: '12px', color: '#ff7070', marginBottom: '6px' }}>
|
||||
✗ {saveErr}
|
||||
</div>
|
||||
)}
|
||||
<div style={s.actions}>
|
||||
<button style={s.saveBtn} onClick={handleSave} disabled={saving}>
|
||||
{saving ? 'Saving…' : 'Save Notes'}
|
||||
|
||||
Reference in New Issue
Block a user