fix storage
This commit is contained in:
44
ZFS-POOL-DELETE-UI-FIX.md
Normal file
44
ZFS-POOL-DELETE-UI-FIX.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# ZFS Pool Delete UI Update Fix
|
||||
|
||||
## Issue
|
||||
When a ZFS pool is destroyed, the pool is removed from the system and database, but the UI doesn't update immediately to reflect the deletion.
|
||||
|
||||
## Root Cause
|
||||
The frontend `deletePoolMutation` was not properly awaiting the refetch operation, which could cause race conditions where the UI doesn't update before the alert is shown.
|
||||
|
||||
## Solution
|
||||
Added `await` to `refetchQueries` to ensure the query is refetched before showing the success alert.
|
||||
|
||||
## Changes Made
|
||||
|
||||
### Updated `frontend/src/pages/Storage.tsx`
|
||||
- Added `await` to `refetchQueries` call in `deletePoolMutation.onSuccess`
|
||||
- This ensures the pool list is refetched from the server before showing the success message
|
||||
|
||||
**Key Changes:**
|
||||
```typescript
|
||||
onSuccess: async () => {
|
||||
// Invalidate and immediately refetch
|
||||
await queryClient.invalidateQueries({ queryKey: ['storage', 'zfs', 'pools'] })
|
||||
await queryClient.refetchQueries({ queryKey: ['storage', 'zfs', 'pools'] }) // Added await
|
||||
await queryClient.invalidateQueries({ queryKey: ['storage', 'disks'] })
|
||||
setSelectedPool(null)
|
||||
alert('Pool destroyed successfully!')
|
||||
},
|
||||
```
|
||||
|
||||
## Additional Notes
|
||||
- The frontend already has `refetchInterval: 3000` (3 seconds) for automatic pool list refresh
|
||||
- Backend properly deletes pool from database in `DeletePool` function
|
||||
- ZFS Pool Monitor syncs pools every 2 minutes to catch manually deleted pools
|
||||
|
||||
## Testing
|
||||
1. Destroy pool through UI
|
||||
2. Verify pool disappears from UI immediately
|
||||
3. Verify success alert is shown after UI update
|
||||
|
||||
## Status
|
||||
✅ **FIXED** - Pool deletion now properly updates UI
|
||||
|
||||
## Date
|
||||
2026-01-09
|
||||
Reference in New Issue
Block a user