From c3d7680132707f38a7ff0db8d94f1daf60a4918a Mon Sep 17 00:00:00 2001 From: Matias Daloia Date: Thu, 30 Jan 2025 11:41:36 +0100 Subject: [PATCH] feat: ES-140 fix small bug when updating settings file in-memory struct --- .../scanoss_settings_repository_json_impl.go | 8 ++- .../modules/results/stores/useResultsStore.ts | 61 ++++++++----------- 2 files changed, 32 insertions(+), 37 deletions(-) diff --git a/backend/repository/scanoss_settings_repository_json_impl.go b/backend/repository/scanoss_settings_repository_json_impl.go index 8e72d45..a71a8b7 100644 --- a/backend/repository/scanoss_settings_repository_json_impl.go +++ b/backend/repository/scanoss_settings_repository_json_impl.go @@ -75,9 +75,13 @@ func (r *ScanossSettingsJsonRepository) setSettingsFile(path string) { return } - entities.ScanossSettingsJson = &entities.ScanossSettings{ - SettingsFile: &sf, + if entities.ScanossSettingsJson == nil { + entities.ScanossSettingsJson = &entities.ScanossSettings{ + SettingsFile: &sf, + } } + + entities.ScanossSettingsJson.SettingsFile = &sf } func (r *ScanossSettingsJsonRepository) Save() error { diff --git a/frontend/src/modules/results/stores/useResultsStore.ts b/frontend/src/modules/results/stores/useResultsStore.ts index 26e11a8..f5f2842 100644 --- a/frontend/src/modules/results/stores/useResultsStore.ts +++ b/frontend/src/modules/results/stores/useResultsStore.ts @@ -30,8 +30,6 @@ import { MatchType } from '../domain'; interface ResultsState { completedResults: entities.ResultDTO[]; - error: string | null; - isLoading: boolean; lastSelectedIndex: number; lastSelectionType: 'pending' | 'completed' | null; pendingResults: entities.ResultDTO[]; @@ -88,39 +86,32 @@ const useResultsStore = create()( fetchResults: async () => { const { selectedResults, filterByMatchType, query, sort } = get(); - set({ selectedResults: [], isLoading: true, error: null }, false, 'FETCH_RESULTS'); - try { - const results = await GetAll( - entities.RequestResultDTO.createFrom({ - match_type: filterByMatchType === 'all' ? undefined : filterByMatchType, - query, - sort: { - option: sort.option, - order: sort.order, - }, - }) - ); - const pendingResults = results.filter((r) => r.workflow_state === 'pending'); - const completedResults = results.filter((r) => r.workflow_state === 'completed'); - - set({ pendingResults, completedResults }); - - // When the app first loads or if changing the query, select the first result - if (!selectedResults.length) { - const hasPendingResults = pendingResults.length > 0; - const hasCompletedResults = completedResults.length > 0; - const firstSelectedResult = hasPendingResults ? pendingResults[0] : hasCompletedResults ? completedResults[0] : null; - const selectedResults = firstSelectedResult ? [firstSelectedResult] : []; - - set({ selectedResults, lastSelectionType: firstSelectedResult?.workflow_state as 'pending' | 'completed', lastSelectedIndex: 0 }); - } - } catch (error) { - set({ - error: error instanceof Error ? error.message : 'An error occurred while fetching results', - }); - throw error; - } finally { - set({ isLoading: false }, false, 'FETCH_RESULTS'); + const results = await GetAll( + entities.RequestResultDTO.createFrom({ + match_type: filterByMatchType === 'all' ? undefined : filterByMatchType, + query, + sort: { + option: sort.option, + order: sort.order, + }, + }) + ); + const pendingResults = results.filter((r) => r.workflow_state === 'pending'); + const completedResults = results.filter((r) => r.workflow_state === 'completed'); + + console.log('pendingResults', pendingResults); + console.log('completedResults', completedResults); + + set({ pendingResults, completedResults }); + + // When the app first loads or if changing the query, select the first result + if (!selectedResults.length) { + const hasPendingResults = pendingResults.length > 0; + const hasCompletedResults = completedResults.length > 0; + const firstSelectedResult = hasPendingResults ? pendingResults[0] : hasCompletedResults ? completedResults[0] : null; + const selectedResults = firstSelectedResult ? [firstSelectedResult] : []; + + set({ selectedResults, lastSelectionType: firstSelectedResult?.workflow_state as 'pending' | 'completed', lastSelectedIndex: 0 }); } },