Spaces:
Running
Running
| import classNames from "classnames"; | |
| import { Code, XCircle } from "lucide-react"; | |
| import { Collapsible, CollapsibleTrigger } from "@/components/ui/collapsible"; | |
| import { htmlTagToText } from "@/lib/html-tag-to-text"; | |
| export const SelectedHtmlElement = ({ | |
| element, | |
| isAiWorking = false, | |
| onDelete, | |
| }: { | |
| element: HTMLElement | null; | |
| isAiWorking: boolean; | |
| onDelete?: () => void; | |
| }) => { | |
| if (!element) return null; | |
| const tagName = element.tagName.toLowerCase(); | |
| return ( | |
| <Collapsible | |
| className={classNames( | |
| "border border-neutral-700 rounded-xl p-1.5 pr-3 max-w-max hover:brightness-110 transition-all duration-200 ease-in-out !cursor-pointer", | |
| { | |
| "!cursor-pointer": !isAiWorking, | |
| "opacity-50 !cursor-not-allowed": isAiWorking, | |
| } | |
| )} | |
| disabled={isAiWorking} | |
| onClick={() => { | |
| if (!isAiWorking && onDelete) { | |
| onDelete(); | |
| } | |
| }} | |
| > | |
| <CollapsibleTrigger className="flex items-center justify-start gap-2 cursor-pointer"> | |
| <div className="rounded-lg bg-neutral-700 size-6 flex items-center justify-center"> | |
| <Code className="text-neutral-300 size-3.5" /> | |
| </div> | |
| <p className="text-sm font-semibold text-neutral-300"> | |
| {htmlTagToText(tagName)} | |
| </p> | |
| <XCircle className="text-neutral-300 size-4" /> | |
| </CollapsibleTrigger> | |
| {/* <CollapsibleContent className="border-t border-neutral-700 pt-2 mt-2"> | |
| <div className="text-xs text-neutral-400"> | |
| <p> | |
| <span className="font-semibold">ID:</span> {element.id || "No ID"} | |
| </p> | |
| <p> | |
| <span className="font-semibold">Classes:</span>{" "} | |
| {element.className || "No classes"} | |
| </p> | |
| </div> | |
| </CollapsibleContent> */} | |
| </Collapsible> | |
| ); | |
| }; | |