Skip to content

Commit 2f90593

Browse files
committed
refactor: hoist resolved mode/config in interactive install steps
1 parent e95de56 commit 2f90593

3 files changed

Lines changed: 10 additions & 17 deletions

File tree

source/components/steps/FileCleanup.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@ const FileCleanup: FC<Props> = ({ stack, onCompletion, installationConfig, proje
2929
}, [])
3030

3131
useEffect(() => {
32+
const mode = installationType ?? 'full'
3233
const selectedNames = selectedFeatures?.map((f) => f.value as FeatureName) ?? []
33-
const features = resolveModeFeatures(stack, installationType ?? 'full', selectedNames)
34+
const features = resolveModeFeatures(stack, mode, selectedNames)
3435

35-
cleanupFiles(stack, projectFolder, installationType ?? 'full', features, handleProgress)
36+
cleanupFiles(stack, projectFolder, mode, features, handleProgress)
3637
.then(() => {
3738
// Scaffold is complete — an interrupt from here on must not delete the finished project.
3839
completeInstall()

source/components/steps/Install/Install.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,14 @@ const Install: FC<Props> = ({ stack, projectName, onCompletion, installationConf
3333
}, [])
3434

3535
useEffect(() => {
36+
const mode = installationType ?? 'full'
3637
const selectedNames = selectedFeatures?.map((f) => f.value as FeatureName) ?? []
37-
const features = resolveModeFeatures(stack, installationType ?? 'full', selectedNames)
38+
const features = resolveModeFeatures(stack, mode, selectedNames)
3839

3940
const run = async () => {
4041
handleProgress('Creating env files')
4142
await createEnvFile(stack, projectFolder, features)
42-
await installPackages(
43-
stack,
44-
projectFolder,
45-
installationType ?? 'full',
46-
features,
47-
handleProgress,
48-
)
43+
await installPackages(stack, projectFolder, mode, features, handleProgress)
4944
}
5045

5146
run()

source/components/steps/OptionalPackages.tsx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@ const OptionalPackages: FC<Props> = ({ stack, onCompletion, onSubmit, skip = fal
2424
}, [stack])
2525

2626
// Pre-check only default:true features (e.g. Canton's github/precommit start unchecked).
27-
const defaultSelected: Array<MultiSelectItem> = useMemo(
28-
() =>
29-
customPackages.filter(
30-
(pkg) => getStackConfig(stack).features[pkg.value as FeatureName]?.default,
31-
),
32-
[stack, customPackages],
33-
)
27+
const defaultSelected: Array<MultiSelectItem> = useMemo(() => {
28+
const features = getStackConfig(stack).features
29+
return customPackages.filter((pkg) => features[pkg.value as FeatureName]?.default)
30+
}, [stack, customPackages])
3431

3532
// Keep the selection dependency-consistent as the user toggles (resolves any feature `requires`).
3633
const transformSelection = useCallback(

0 commit comments

Comments
 (0)