From 5ecad64a3f620887854f5429d7e63362edbec0ac Mon Sep 17 00:00:00 2001 From: Deluan Date: Thu, 26 Jun 2025 11:52:57 -0400 Subject: [PATCH] feat(library): add refresh functionality on LibrarySelector close Signed-off-by: Deluan --- ui/src/common/LibrarySelector.jsx | 4 +++- ui/src/common/LibrarySelector.test.jsx | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ui/src/common/LibrarySelector.jsx b/ui/src/common/LibrarySelector.jsx index c0db24598..43df7c353 100644 --- a/ui/src/common/LibrarySelector.jsx +++ b/ui/src/common/LibrarySelector.jsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react' import { useDispatch, useSelector } from 'react-redux' -import { useDataProvider, useTranslate } from 'react-admin' +import { useDataProvider, useTranslate, useRefresh } from 'react-admin' import { Box, Chip, @@ -71,6 +71,7 @@ const LibrarySelector = () => { const dispatch = useDispatch() const dataProvider = useDataProvider() const translate = useTranslate() + const refresh = useRefresh() const [anchorEl, setAnchorEl] = useState(null) const [open, setOpen] = useState(false) @@ -113,6 +114,7 @@ const LibrarySelector = () => { const handleClose = () => { setOpen(false) + refresh() } const handleLibraryToggle = (libraryId) => { diff --git a/ui/src/common/LibrarySelector.test.jsx b/ui/src/common/LibrarySelector.test.jsx index 3ac47f408..13b607887 100644 --- a/ui/src/common/LibrarySelector.test.jsx +++ b/ui/src/common/LibrarySelector.test.jsx @@ -10,6 +10,7 @@ const mockDataProvider = { getOne: vi.fn(), } const mockIdentity = { username: 'testuser' } +const mockRefresh = vi.fn() const mockTranslate = vi.fn((key, options = {}) => { const translations = { 'menu.librarySelector.allLibraries': `All Libraries (${options.count || 0})`, @@ -29,6 +30,7 @@ vi.mock('react-admin', () => ({ useDataProvider: () => mockDataProvider, useGetIdentity: () => ({ identity: mockIdentity }), useTranslate: () => mockTranslate, + useRefresh: () => mockRefresh, })) // Mock Material-UI components @@ -458,6 +460,9 @@ describe('LibrarySelector', () => { await waitFor(() => { expect(screen.queryByTestId('popper')).not.toBeInTheDocument() }) + + // Should trigger refresh when closing + expect(mockRefresh).toHaveBeenCalledTimes(1) }) it('should load user libraries on mount', async () => {