Skip to content

Commit 2a2c3a9

Browse files
authored
fix: set default sample auto selection on page load globally (#3799)
* set auto selection globally * remove highlight * fix sonar issues
1 parent fde437b commit 2a2c3a9

File tree

6 files changed

+34
-20
lines changed

6 files changed

+34
-20
lines changed

src/app/services/actions/autocomplete-action-creators.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ const mockState: ApplicationState = {
4747
samples: {
4848
queries: [],
4949
pending: false,
50-
error: null
50+
error: null,
51+
hasAutoSelectedDefault: false
5152
},
5253
scopes: {
5354
pending: { isSpecificPermissions: false, isFullPermissions: false },
@@ -123,7 +124,8 @@ store.getState = () => ({
123124
samples: {
124125
queries: [],
125126
pending: false,
126-
error: null
127+
error: null,
128+
hasAutoSelectedDefault: false
127129
}
128130
})
129131

src/app/services/actions/permissions-action-creator.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ const mockState: ApplicationState = {
6868
samples: {
6969
queries: [],
7070
pending: false,
71-
error: null
71+
error: null,
72+
hasAutoSelectedDefault: false
7273
},
7374
scopes: {
7475
pending: { isSpecificPermissions: false, isFullPermissions: false },

src/app/services/actions/resource-explorer-action-creators.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ const mockState: ApplicationState = {
4343
samples: {
4444
queries: [],
4545
pending: false,
46-
error: null
46+
error: null,
47+
hasAutoSelectedDefault: false
4748
},
4849
permissionGrants: {
4950
permissions: [],

src/app/services/slices/samples.slice.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ interface SamplesState {
99
queries: ISampleQuery[];
1010
pending: boolean;
1111
error: object | null | string;
12+
hasAutoSelectedDefault: boolean;
1213
}
1314

1415
const initialState: SamplesState = {
1516
queries: [],
1617
pending: false,
17-
error: null
18+
error: null,
19+
hasAutoSelectedDefault: false
1820
};
1921

2022
export const fetchSamples = createAsyncThunk<ISampleQuery[], void, { rejectValue: ISampleQuery[] }>(
@@ -52,7 +54,11 @@ export const fetchSamples = createAsyncThunk<ISampleQuery[], void, { rejectValue
5254
const samplesSlice = createSlice({
5355
name: 'samples',
5456
initialState,
55-
reducers: {},
57+
reducers: {
58+
setHasAutoSelectedDefault: (state, action) => {
59+
state.hasAutoSelectedDefault = action.payload;
60+
}
61+
},
5662
extraReducers: (builder) => {
5763
builder
5864
.addCase(fetchSamples.pending, (state) => {
@@ -73,4 +79,5 @@ const samplesSlice = createSlice({
7379
}
7480
});
7581

82+
export const { setHasAutoSelectedDefault } = samplesSlice.actions;
7683
export default samplesSlice.reducer;

src/app/views/sidebar/sample-queries/SampleQueries.styles.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ export const useStyles = makeStyles({
1414
maxWidth: '50px'
1515
},
1616
disabled: {
17-
backgroundColor: tokens.colorSubtleBackgroundHover,
1817
'&:hover': {
1918
cursor: 'not-allowed'
2019
}

src/app/views/sidebar/sample-queries/SampleQueries.tsx

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -358,29 +358,33 @@ const Samples: React.FC<SamplesProps> = ({ queries, groups, searchValue }) => {
358358
const styles = useStyles();
359359
const [openItems, setOpenItems] = React.useState<Set<TreeItemValue>>(new Set());
360360
const [selectedQueryKey, setSelectedQueryKey] = useState<string | null>(null);
361-
const [hasAutoSelected, setHasAutoSelected] = useState(false);
361+
const hasAutoSelectedGlobally = useAppSelector(state => state.samples.hasAutoSelectedDefault) ?? false;
362+
const [hasAutoSelected, setHasAutoSelected] = useState(hasAutoSelectedGlobally);
362363
const mobileScreen = useAppSelector((state) => state.sidebarProperties.mobileScreen);
363364

364365
useEffect(() => {
365366
if (!searchValue && queries.length === 0) {
366367
dispatch(fetchSamples());
367368
} else {
368369
setSampleQueries(queries);
369-
if (!mobileScreen && !hasAutoSelected && queries.length > 0) {
370-
const defaultSample = queries.find(q =>
371-
q.method === 'GET' && q.humanName.toLowerCase().includes('my profile')
372-
);
373-
374-
if (defaultSample) {
375-
const defaultKey = defaultSample.id ?? `${defaultSample.method}-${defaultSample.requestUrl}`;
376-
setSelectedQueryKey(defaultKey);
377-
sampleQueryItemSelected(defaultSample);
378-
setHasAutoSelected(true);
379-
}
380-
}
381370
}
382371
}, [queries]);
383372

373+
useEffect(() => {
374+
if (!mobileScreen && !hasAutoSelected && queries.length > 0) {
375+
const defaultSample = queries.find(q =>
376+
q.method === 'GET' && q.humanName.toLowerCase().includes('my profile')
377+
);
378+
379+
if (defaultSample) {
380+
const defaultKey = defaultSample.id ?? `${defaultSample.method}-${defaultSample.requestUrl}`;
381+
setSelectedQueryKey(defaultKey);
382+
sampleQueryItemSelected(defaultSample);
383+
setHasAutoSelected(true);
384+
dispatch({ type: 'samples/setHasAutoSelectedDefault', payload: true });
385+
}
386+
}
387+
}, [mobileScreen, queries, hasAutoSelected, dispatch]);
384388
useEffect(() => {
385389
if (groups && groups.length > 0) {
386390
setOpenItems(prev => {

0 commit comments

Comments
 (0)