Skip to content

Commit dcb9609

Browse files
committed
feat: update create success screen
1 parent c4a35a9 commit dcb9609

File tree

2 files changed

+63
-4
lines changed

2 files changed

+63
-4
lines changed

src/ui/src/pages/@types/CreateScreen.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export interface WalkthroughSelections {
88
docker?: boolean;
99
testing?: 'pest' | 'phpunit';
1010
review?: boolean;
11+
directory?: string;
1112
}
1213

1314
export type WalkthroughSteps = keyof WalkthroughSelections;

src/ui/src/pages/Create/ReviewScreen.tsx

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ const ReviewScreen: React.FC<React.PropsWithChildren<CreateSubScreenProps>> = ({
1818
navigate,
1919
setValues,
2020
}) => {
21-
const [, setScreen] = useStore('screen');
2221
const [loading, setLoading] = useState(false);
22+
const [success, setSuccess] = useState(false);
2323

2424
const appType = themes.find((theme) => theme.key === values.type);
2525
const templateEngine = templateEngines.find(
@@ -62,10 +62,12 @@ const ReviewScreen: React.FC<React.PropsWithChildren<CreateSubScreenProps>> = ({
6262
}
6363
})
6464
.then((response) => {
65-
// setValues({});
65+
setValues({
66+
...values,
67+
...response?.data,
68+
});
6669

67-
console.log(response, 'response');
68-
// setScreen('home');
70+
setSuccess(true);
6971
})
7072
.catch((err) => {
7173
console.log('An error occurred', err);
@@ -77,6 +79,12 @@ const ReviewScreen: React.FC<React.PropsWithChildren<CreateSubScreenProps>> = ({
7779

7880
return loading ? (
7981
<LoadingSection />
82+
) : success ? (
83+
<SuccessSection
84+
values={values}
85+
setValues={setValues}
86+
navigate={navigate}
87+
/>
8088
) : (
8189
<>
8290
<div className="px-5 lg:px-10">
@@ -326,4 +334,54 @@ const LoadingSection = () => {
326334
);
327335
};
328336

337+
const SuccessSection: React.FC<CreateSubScreenProps> = ({
338+
values,
339+
}) => {
340+
const [, setScreen] = useStore('screen');
341+
342+
return (
343+
<div className="px-5 lg:px-10 h-[80vh] flex flex-col justify-center items-center">
344+
<div className="mb-8 text-center ">
345+
<h2 className="text-2xl">
346+
Your {values.type} app has been created!
347+
</h2>
348+
<p className="text-gray-500">
349+
To get started, you can follow these steps:
350+
</p>
351+
</div>
352+
353+
<pre className="flex flex-col gap-4 w-full bg-gray-100 rounded-lg p-5">
354+
<div className="flex items-center gap-2">
355+
<div>$</div>
356+
<div>cd {values?.directory ?? values.name}</div>
357+
</div>
358+
{!!(
359+
values?.additionalFrontendOptions ||
360+
values?.frontendFramework
361+
) && (
362+
<div className="flex items-center gap-2">
363+
<div>$</div>
364+
<div>leaf view:dev</div>
365+
</div>
366+
)}
367+
<div className="flex items-center gap-2">
368+
<div>$</div>
369+
<div>leaf serve</div>
370+
</div>
371+
</pre>
372+
373+
<div className="mt-8">
374+
<button
375+
className="bg-green-800 px-5 py-2 rounded-md text-white"
376+
onClick={() => {
377+
setScreen('home');
378+
}}
379+
>
380+
Go Home
381+
</button>
382+
</div>
383+
</div>
384+
);
385+
};
386+
329387
export default ReviewScreen;

0 commit comments

Comments
 (0)