import { Hash } from "lucide-react"; import * as React from "react"; import type { Project } from "@/features/projects/projectModels"; import type { Channel } from "@/shared/api/types"; import { Button } from "@/shared/ui/button"; import { ChooserDialogContent } from "@/shared/ui/chooser-dialog-content"; import { Dialog } from "@/shared/ui/dialog"; export function AddProjectChannelDialog({ channels, isAdding, onAdd, onOpenChange, open, project, }: { channels: Channel[]; isAdding: boolean; onAdd: (channel: Channel) => Promise; onOpenChange: (open: boolean) => void; open: boolean; project: Project; }) { const [errorMessage, setErrorMessage] = React.useState(null); React.useEffect(() => { if (open) setErrorMessage(null); }, [open]); async function handleAdd(channel: Channel) { setErrorMessage(null); try { await onAdd(channel); onOpenChange(false); } catch (error) { setErrorMessage( error instanceof Error ? error.message : "Could not add the channel to this project.", ); } } return ( { if (!nextOpen && isAdding) return; onOpenChange(nextOpen); }} open={open} >
{channels.length === 0 ? (

Every available channel is already in this project.

) : ( channels.map((channel) => ( )) )} {errorMessage ? (

{errorMessage}

) : null}
); }