summaryrefslogtreecommitdiff
path: root/packages/create-astro/src/components/Confirm.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/create-astro/src/components/Confirm.tsx')
-rw-r--r--packages/create-astro/src/components/Confirm.tsx49
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/create-astro/src/components/Confirm.tsx b/packages/create-astro/src/components/Confirm.tsx
new file mode 100644
index 000000000..1fd1aa862
--- /dev/null
+++ b/packages/create-astro/src/components/Confirm.tsx
@@ -0,0 +1,49 @@
+import React, { FC } from 'react';
+import { Box, Text, useInput, useApp } from 'ink';
+import Spacer from './Spacer';
+import Select from './Select';
+
+const Confirm: FC<{ message?: any; context: any; onSubmit: (value: boolean) => void }> = ({ message, context: { projectName }, onSubmit }) => {
+ const { exit } = useApp();
+ const handleSubmit = (v: boolean) => {
+ if (!v) return exit();
+ onSubmit(v);
+ };
+
+ return (
+ <>
+ <Box display="flex">
+ {!message ? (
+ <>
+ <Text color="#FFBE2D">{'[uh-oh]'}</Text>
+ <Text>
+ {' '}
+ It appears <Text color="#17C083">./{projectName}</Text> is not empty. Overwrite?
+ </Text>
+ </>
+ ) : (
+ message
+ )}
+ </Box>
+ <Box display="flex">
+ <Spacer width={6} />
+ <Select
+ items={[
+ {
+ value: false,
+ label: 'no'
+ },
+ {
+ value: true,
+ label: 'yes',
+ description: <Text color="#FF1639">overwrite</Text>,
+ },
+ ]}
+ onSelect={handleSubmit}
+ />
+ </Box>
+ </>
+ );
+};
+
+export default Confirm;