| ... | @@ -31,7 +31,6 @@ import { | ... | @@ -31,7 +31,6 @@ import { |
| 31 | } from "@t3tools/shared/model"; | 31 | } from "@t3tools/shared/model"; |
| 32 | import { | 32 | import { |
| 33 | memo, | 33 | memo, |
| 34 | startTransition, | | |
| 35 | useCallback, | 34 | useCallback, |
| 36 | useEffect, | 35 | useEffect, |
| 37 | useLayoutEffect, | 36 | useLayoutEffect, |
| ... | @@ -4765,7 +4764,6 @@ const ProposedPlanCard = memo(function ProposedPlanCard({ | ... | @@ -4765,7 +4764,6 @@ const ProposedPlanCard = memo(function ProposedPlanCard({ |
| 4765 | const [isSaveDialogOpen, setIsSaveDialogOpen] = useState(false); | 4764 | const [isSaveDialogOpen, setIsSaveDialogOpen] = useState(false); |
| 4766 | const [savePath, setSavePath] = useState(""); | 4765 | const [savePath, setSavePath] = useState(""); |
| 4767 | const [isSavingToWorkspace, setIsSavingToWorkspace] = useState(false); | 4766 | const [isSavingToWorkspace, setIsSavingToWorkspace] = useState(false); |
| 4768 | const [renderCollapsedMarkdown, setRenderCollapsedMarkdown] = useState(false); | | |
| 4769 | const savePathInputId = useId(); | 4767 | const savePathInputId = useId(); |
| 4770 | const title = proposedPlanTitle(planMarkdown) ?? "Proposed plan"; | 4768 | const title = proposedPlanTitle(planMarkdown) ?? "Proposed plan"; |
| 4771 | const lineCount = planMarkdown.split("\n").length; | 4769 | const lineCount = planMarkdown.split("\n").length; |
| ... | @@ -4777,22 +4775,6 @@ const ProposedPlanCard = memo(function ProposedPlanCard({ | ... | @@ -4777,22 +4775,6 @@ const ProposedPlanCard = memo(function ProposedPlanCard({ |
| 4777 | const downloadFilename = buildProposedPlanMarkdownFilename(planMarkdown); | 4775 | const downloadFilename = buildProposedPlanMarkdownFilename(planMarkdown); |
| 4778 | const saveContents = normalizePlanMarkdownForExport(planMarkdown); | 4776 | const saveContents = normalizePlanMarkdownForExport(planMarkdown); |
| 4779 | | 4777 | |
| 4780 | useEffect(() => { | | |
| 4781 | if (!canCollapse || expanded) { | | |
| 4782 | setRenderCollapsedMarkdown(false); | | |
| 4783 | return; | | |
| 4784 | } | | |
| 4785 | setRenderCollapsedMarkdown(false); | | |
| 4786 | const frame = window.requestAnimationFrame(() => { | | |
| 4787 | startTransition(() => { | | |
| 4788 | setRenderCollapsedMarkdown(true); | | |
| 4789 | }); | | |
| 4790 | }); | | |
| 4791 | return () => { | | |
| 4792 | window.cancelAnimationFrame(frame); | | |
| 4793 | }; | | |
| 4794 | }, [canCollapse, expanded, collapsedPreview]); | | |
| 4795 | | | |
| 4796 | const handleDownload = () => { | 4778 | const handleDownload = () => { |
| 4797 | downloadPlanAsTextFile(downloadFilename, saveContents); | 4779 | downloadPlanAsTextFile(downloadFilename, saveContents); |
| 4798 | }; | 4780 | }; |
| ... | @@ -4880,13 +4862,7 @@ const ProposedPlanCard = memo(function ProposedPlanCard({ | ... | @@ -4880,13 +4862,7 @@ const ProposedPlanCard = memo(function ProposedPlanCard({ |
| 4880 | <div className="mt-4"> | 4862 | <div className="mt-4"> |
| 4881 | <div className={cn("relative", canCollapse && !expanded && "max-h-104 overflow-hidden")}> | 4863 | <div className={cn("relative", canCollapse && !expanded && "max-h-104 overflow-hidden")}> |
| 4882 | {canCollapse && !expanded ? ( | 4864 | {canCollapse && !expanded ? ( |
| 4883 | renderCollapsedMarkdown ? ( | 4865 | <ChatMarkdown text={collapsedPreview ?? ""} cwd={cwd} isStreaming={false} /> |
| 4884 | <ChatMarkdown text={collapsedPreview ?? ""} cwd={cwd} isStreaming={false} /> | | |
| 4885 | ) : ( | | |
| 4886 | <pre className="whitespace-pre-wrap wrap-break-word text-sm leading-relaxed text-foreground/80"> | | |
| 4887 | {collapsedPreview} | | |
| 4888 | </pre> | | |
| 4889 | ) | | |
| 4890 | ) : ( | 4866 | ) : ( |
| 4891 | <ChatMarkdown text={displayedPlanMarkdown} cwd={cwd} isStreaming={false} /> | 4867 | <ChatMarkdown text={displayedPlanMarkdown} cwd={cwd} isStreaming={false} /> |
| 4892 | )} | 4868 | )} |