From 2b2cfc58038a3a8bb527576d820da91602d5275e Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 8 Apr 2026 20:43:46 +0200 Subject: [PATCH 1/2] Add refresh button to PR drawer Co-Authored-By: Claude Opus 4.6 (1M context) --- src/renderer/src/components/PrDrawer.tsx | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/renderer/src/components/PrDrawer.tsx b/src/renderer/src/components/PrDrawer.tsx index aedfd4f..7204c09 100644 --- a/src/renderer/src/components/PrDrawer.tsx +++ b/src/renderer/src/components/PrDrawer.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react' +import { useState, useEffect, useCallback } from 'react' import Markdown from 'react-markdown' import remarkGfm from 'remark-gfm' import type { PrDetail, PrCheckRun } from '../../../shared/types' @@ -60,13 +60,12 @@ export default function PrDrawer({ const [loading, setLoading] = useState(true) const [error, setError] = useState(null) - useEffect(() => { - let cancelled = false - // Reset handled via initial state; subsequent fetches reset in callbacks + const refresh = useCallback(() => { + setLoading(true) + setError(null) window.konductorAPI .getPrDetail(cwd, prNumber) .then((d) => { - if (cancelled) return if (d) { setDetail(d) setError(null) @@ -75,16 +74,17 @@ export default function PrDrawer({ } }) .catch(() => { - if (!cancelled) setError('Failed to load PR details') + setError('Failed to load PR details') }) .finally(() => { - if (!cancelled) setLoading(false) + setLoading(false) }) - return () => { - cancelled = true - } }, [cwd, prNumber]) + useEffect(() => { + refresh() + }, [refresh]) + return (
{/* Header */} @@ -96,6 +96,13 @@ export default function PrDrawer({ {detail && {detail.title}}
+