webapp/components/phone-number-checklist.tsx (61 lines of code) (raw):
// PhoneNumberChecklist.tsx
"use client";
import React, { useState } from "react";
import { Card } from "@/components/ui/card";
import { CheckCircle, Circle, Eye, EyeOff } from "lucide-react";
import { Button } from "@/components/ui/button";
type PhoneNumberChecklistProps = {
selectedPhoneNumber: string;
allConfigsReady: boolean;
setAllConfigsReady: (ready: boolean) => void;
};
const PhoneNumberChecklist: React.FC<PhoneNumberChecklistProps> = ({
selectedPhoneNumber,
allConfigsReady,
setAllConfigsReady,
}) => {
const [isVisible, setIsVisible] = useState(true);
return (
<Card className="flex items-center justify-between p-4">
<div className="flex flex-col">
<span className="text-sm text-gray-500">Number</span>
<div className="flex items-center">
<span className="font-medium w-36">
{isVisible ? selectedPhoneNumber || "None" : "••••••••••"}
</span>
<Button
variant="ghost"
size="icon"
onClick={() => setIsVisible(!isVisible)}
className="h-8 w-8"
>
{isVisible ? (
<Eye className="h-4 w-4" />
) : (
<EyeOff className="h-4 w-4" />
)}
</Button>
</div>
</div>
<div className="flex items-center gap-4">
<div className="flex items-center gap-2">
{allConfigsReady ? (
<CheckCircle className="text-green-500 w-4 h-4" />
) : (
<Circle className="text-gray-400 w-4 h-4" />
)}
<span className="text-sm text-gray-700">
{allConfigsReady ? "Setup Ready" : "Setup Not Ready"}
</span>
</div>
<Button
variant="outline"
size="sm"
onClick={() => setAllConfigsReady(false)}
>
Checklist
</Button>
</div>
</Card>
);
};
export default PhoneNumberChecklist;