Skip to content

Commit

Permalink
feat: ES-140 fix small bug when updating settings file in-memory struct
Browse files Browse the repository at this point in the history
  • Loading branch information
matiasdaloia committed Jan 30, 2025
1 parent 09580e5 commit c3d7680
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 37 deletions.
8 changes: 6 additions & 2 deletions backend/repository/scanoss_settings_repository_json_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
61 changes: 26 additions & 35 deletions frontend/src/modules/results/stores/useResultsStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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[];
Expand Down Expand Up @@ -88,39 +86,32 @@ const useResultsStore = create<ResultsStore>()(

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 });
}
},

Expand Down

0 comments on commit c3d7680

Please sign in to comment.