chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import React, { useState } from "react";
|
||||
import { Box, Text, useInput } from "ink";
|
||||
|
||||
export function ConfirmDialog({ message, onConfirm, onCancel }) {
|
||||
const [selected, setSelected] = useState(1); // 0=yes, 1=no (default no)
|
||||
|
||||
useInput((input, key) => {
|
||||
if (key.leftArrow || input === "y") setSelected(0);
|
||||
if (key.rightArrow || input === "n") setSelected(1);
|
||||
if (key.return) {
|
||||
if (selected === 0) onConfirm?.();
|
||||
else onCancel?.();
|
||||
}
|
||||
if (key.escape) onCancel?.();
|
||||
});
|
||||
|
||||
return (
|
||||
<Box flexDirection="column" borderStyle="round" borderColor="yellow" padding={1}>
|
||||
<Text bold color="yellow">
|
||||
{message}
|
||||
</Text>
|
||||
<Box marginTop={1} gap={2}>
|
||||
<Text
|
||||
bold={selected === 0}
|
||||
color={selected === 0 ? "green" : undefined}
|
||||
inverse={selected === 0}
|
||||
>
|
||||
Yes
|
||||
</Text>
|
||||
<Text
|
||||
bold={selected === 1}
|
||||
color={selected === 1 ? "red" : undefined}
|
||||
inverse={selected === 1}
|
||||
>
|
||||
No
|
||||
</Text>
|
||||
</Box>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user