Skip to content

Commit a304c6e

Browse files
committed
Refactor and format automatically
1 parent fa21b5c commit a304c6e

12 files changed

Lines changed: 87 additions & 26 deletions

packages/create-react-admin/src/ProjectState.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export type ProjectConfiguration = {
1212
dataProvider: string;
1313
authProvider: string;
1414
resources: string[];
15+
messages: string[];
1516
installer: string;
1617
};
1718

@@ -21,5 +22,6 @@ export const InitialProjectConfiguration: ProjectConfiguration = {
2122
dataProvider: '',
2223
authProvider: '',
2324
resources: [],
25+
messages: [],
2426
installer: '',
2527
};

packages/create-react-admin/src/SelectInputChoice.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as React from 'react';
22
import { Text } from 'ink';
3-
import { Stack } from './Stack.js';
3+
import { Stack } from './Stack';
44

55
export type ChoiceType = {
66
label: string;

packages/create-react-admin/src/StepAuthProvider.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as React from 'react';
22
import { Text } from 'ink';
33
import SelectInput from 'ink-select-input';
4-
import { ChoiceType, SelectInputChoice } from './SelectInputChoice.js';
5-
import { Stack } from './Stack.js';
4+
import { ChoiceType, SelectInputChoice } from './SelectInputChoice';
5+
import { Stack } from './Stack';
66

77
const SupportedAuthProviders: ChoiceType[] = [
88
{

packages/create-react-admin/src/StepDataProvider.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as React from 'react';
22
import { Text } from 'ink';
33
import SelectInput from 'ink-select-input';
4-
import { ChoiceType, SelectInputChoice } from './SelectInputChoice.js';
5-
import { Stack } from './Stack.js';
4+
import { ChoiceType, SelectInputChoice } from './SelectInputChoice';
5+
import { Stack } from './Stack';
66

77
const SupportedDataProviders: ChoiceType[] = [
88
{
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import React, { useEffect } from 'react';
2+
import { Text } from 'ink';
3+
import { generateProject } from './generateProject';
4+
import { ProjectConfiguration } from './ProjectState';
5+
6+
export const StepGenerate = ({
7+
config,
8+
onCompleted,
9+
}: {
10+
config: ProjectConfiguration;
11+
onCompleted: (value: any) => void;
12+
}) => {
13+
useEffect(() => {
14+
generateProject(config).then(messages => onCompleted({ messages }));
15+
// Disabled as we want to run this only once
16+
// eslint-disable-next-line react-hooks/exhaustive-deps
17+
}, []);
18+
19+
return <Text>Generating your application...</Text>;
20+
};

packages/create-react-admin/src/StepInstall.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as React from 'react';
2-
import SelectInput from 'ink-select-input';
3-
import { ChoiceType, SelectInputChoice } from './SelectInputChoice.js';
42
import { Text } from 'ink';
5-
import { Stack } from './Stack.js';
3+
import SelectInput from 'ink-select-input';
4+
import { ChoiceType, SelectInputChoice } from './SelectInputChoice';
5+
import { Stack } from './Stack';
66

77
const choices: ChoiceType[] = [
88
{

packages/create-react-admin/src/StepName.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react';
22
import { useState } from 'react';
33
import TextInput from 'ink-text-input';
44
import { Text } from 'ink';
5-
import { Stack } from './Stack.js';
5+
import { Stack } from './Stack';
66

77
export const StepName = ({
88
onSubmit,

packages/create-react-admin/src/StepResources.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react';
22
import { useState } from 'react';
33
import TextInput from 'ink-text-input';
44
import { Text } from 'ink';
5-
import { Stack } from './Stack.js';
5+
import { Stack } from './Stack';
66

77
export const StepResources = ({
88
onSubmit,
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import React, { useEffect } from 'react';
2+
import { Text } from 'ink';
3+
import { ProjectConfiguration } from './ProjectState';
4+
import { useInstallDeps } from './useInstallDeps';
5+
import { useRunFormatter } from './useRunFormatter';
6+
7+
export const StepRunInstall = ({
8+
config,
9+
onCompleted,
10+
}: {
11+
config: ProjectConfiguration;
12+
onCompleted: (value: any) => void;
13+
}) => {
14+
const installDeps = useInstallDeps();
15+
const runFormatter = useRunFormatter();
16+
17+
useEffect(() => {
18+
installDeps(config).then(() => {
19+
runFormatter(config).then(() => {
20+
onCompleted({});
21+
});
22+
});
23+
// Disabled as we want to run this only once
24+
// eslint-disable-next-line react-hooks/exhaustive-deps
25+
}, []);
26+
27+
return <Text>Generating your application...</Text>;
28+
};

packages/create-react-admin/src/app.tsx

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import React, { useReducer, useRef } from 'react';
1+
import React, { useReducer } from 'react';
22
import { Box, Text, Newline } from 'ink';
33
import {
44
InitialProjectConfiguration,
55
ProjectConfiguration,
66
} from './ProjectState.js';
7-
import { generateProject } from './generateProject.js';
87
import { StepDataProvider } from './StepDataProvider.js';
98
import { StepAuthProvider } from './StepAuthProvider.js';
109
import { StepResources } from './StepResources.js';
1110
import { StepInstall } from './StepInstall.js';
12-
import { useInstallDeps } from './useInstallDeps.js';
1311
import { StepName } from './StepName.js';
12+
import { StepGenerate } from './StepGenerate';
13+
import { StepRunInstall } from './StepRunInstall';
1414

1515
type Props = {
1616
name: string | undefined;
@@ -61,6 +61,7 @@ const stepReducer = (
6161
case 'generate':
6262
return {
6363
...state,
64+
messages: action.value.messages,
6465
step: state.installer ? 'run-install' : 'finish',
6566
};
6667
case 'run-install':
@@ -80,8 +81,7 @@ export default function App({ name = 'my-admin' }: Props) {
8081
name: sanitizedName,
8182
step: sanitizedName === name ? 'data-provider' : 'name',
8283
});
83-
const helpMessages = useRef([]);
84-
const installDeps = useInstallDeps();
84+
8585
const handleSubmit = (value: any) => {
8686
dispatch({ value });
8787
};
@@ -102,17 +102,10 @@ export default function App({ name = 'my-admin' }: Props) {
102102
return <StepInstall onSubmit={handleSubmit} />;
103103
}
104104
if (state.step === 'generate') {
105-
generateProject(state).then(messages => {
106-
helpMessages.current = messages;
107-
dispatch({});
108-
});
109-
return <Text>Generating your application...</Text>;
105+
return <StepGenerate config={state} onCompleted={handleSubmit} />;
110106
}
111107
if (state.step === 'run-install') {
112-
installDeps(state).then(() => {
113-
dispatch({});
114-
});
115-
return <Text>Installing dependencies...</Text>;
108+
return <StepRunInstall config={state} onCompleted={handleSubmit} />;
116109
}
117110
return (
118111
<>
@@ -144,7 +137,7 @@ export default function App({ name = 'my-admin' }: Props) {
144137
</Box>
145138
)}
146139
<Box marginBottom={1}>
147-
{helpMessages.current.map((line, index) => (
140+
{state.messages.map((line, index) => (
148141
<Text key={index}>{line}</Text>
149142
))}
150143
</Box>

0 commit comments

Comments
 (0)