Skip to content

Commit 3316be7

Browse files
committed
feat: ✨ default select first repo in wizard
1 parent 3772949 commit 3316be7

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

Containers/SetupWizard/SetupWizard.tsx

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useRouter } from 'next/router';
2-
import { useEffect, useState } from 'react';
2+
import { useEffect, useMemo, useState } from 'react';
33
import Select, { SingleValue } from 'react-select';
44
import classes from './SetupWizard.module.css';
55
import { Optional, SelectedRepoWizard, Repository, WizardEnvType } from '~/types';
@@ -36,8 +36,21 @@ function SetupWizard(props: SetupWizardProps) {
3636
'Content-type': 'application/json',
3737
},
3838
});
39-
setRepoList((await response.json()).repoList);
39+
const data = await response.json();
40+
const repos = data.repoList;
41+
setRepoList(repos);
4042
setRepoListIsLoading(false);
43+
44+
// Auto-select first repository if available
45+
if (repos && repos.length > 0) {
46+
setSelectedItem({
47+
label: `${repos[0].alias} - ${repos[0].repositoryName}`,
48+
value: `${repos[0].alias} - ${repos[0].repositoryName}`,
49+
id: repos[0].id.toString(),
50+
repositoryName: repos[0].repositoryName,
51+
lanCommand: repos[0].lanCommand ? repos[0].lanCommand : false,
52+
});
53+
}
4154
} catch (error) {
4255
console.log('Fetching datas error');
4356
}
@@ -70,13 +83,17 @@ function SetupWizard(props: SetupWizardProps) {
7083
}, [props.step]);
7184

7285
//Options for react-select
73-
const options: Optional<Array<SelectedRepoWizard>> = repoList?.map((repo) => ({
74-
label: `${repo.alias} - ${repo.repositoryName}`,
75-
value: `${repo.alias} - ${repo.repositoryName}`,
76-
id: repo.id.toString(),
77-
repositoryName: repo.repositoryName,
78-
lanCommand: repo.lanCommand ? repo.lanCommand : false,
79-
}));
86+
const options: Optional<Array<SelectedRepoWizard>> = useMemo(
87+
() =>
88+
repoList?.map((repo) => ({
89+
label: `${repo.alias} - ${repo.repositoryName}`,
90+
value: `${repo.alias} - ${repo.repositoryName}`,
91+
id: repo.id.toString(),
92+
repositoryName: repo.repositoryName,
93+
lanCommand: repo.lanCommand ? repo.lanCommand : false,
94+
})),
95+
[repoList]
96+
);
8097

8198
//Step button (free selection of user)
8299
const changeStepHandler = (x: number) => router.push('/setup-wizard/' + x.toString());
@@ -131,6 +148,7 @@ function SetupWizard(props: SetupWizardProps) {
131148
isDisabled={repoListIsLoading}
132149
options={options}
133150
isSearchable
151+
value={selectedItem}
134152
placeholder='Select your repository...'
135153
theme={(theme) => ({
136154
...theme,

0 commit comments

Comments
 (0)