Skip to content

Commit

Permalink
Refactor: move getWorkflowLog logic from log-view to pull-request
Browse files Browse the repository at this point in the history
  • Loading branch information
m2rads committed Oct 17, 2024
1 parent 8f6fac0 commit 1b1661a
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 21 deletions.
16 changes: 3 additions & 13 deletions app/(dashboard)/dashboard/log-view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,14 @@

import { useRef, useMemo, useState } from 'react'
import { Loader2, ChevronRight, ChevronDown } from 'lucide-react'
import { getWorkflowLogs } from '@/lib/github'
import useSWR from 'swr'
import { LogViewProps, LogGroup } from './types'
import { LogGroup, LogViewProps } from './types'


export function LogView({ owner, repo, runId }: LogViewProps) {

export function LogView({ logs, error, isLoading }: LogViewProps) {
const logContainerRef = useRef<HTMLDivElement>(null)
const [expandedGroups, setExpandedGroups] = useState<Record<string, boolean>>({})

const { data: logs, error, isLoading } = useSWR(
runId ? ['workflowLogs', owner, repo, runId] : null,
() => getWorkflowLogs(owner, repo, runId!),
{
revalidateOnFocus: false,
revalidateOnReconnect: false,
}
)

const parsedLogs = useMemo(() => {
if (!logs) return [];

Expand Down
20 changes: 16 additions & 4 deletions app/(dashboard)/dashboard/pull-request.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ import {
getPullRequestInfo,
getFailingTests,
getLatestRunId,
fetchBuildStatus
fetchBuildStatus,
getWorkflowLogs
} from "@/lib/github";
import { LogView } from "./log-view";
import { PullRequest, TestFile } from "./types";
Expand Down Expand Up @@ -84,6 +85,17 @@ export function PullRequestItem({
)
);

const { data: logs, error: logsError } = useSWR(
showLogs && latestRunId
? ['workflowLogs', pullRequest.repository.owner.login, pullRequest.repository.name, latestRunId]
: null,
() => getWorkflowLogs(pullRequest.repository.owner.login, pullRequest.repository.name, latestRunId!),
{
revalidateOnFocus: false,
revalidateOnReconnect: false,
}
);

const [testFiles, setTestFiles] = useState<TestFile[]>([]);
const [oldTestFiles, setOldTestFiles] = useState<TestFile[]>([]);
const [selectedFiles, setSelectedFiles] = useState<Record<string, boolean>>(
Expand Down Expand Up @@ -476,9 +488,9 @@ export function PullRequestItem({
{showLogs && latestRunId && (
<div className="mt-4">
<LogView
owner={pullRequest.repository.owner.login}
repo={pullRequest.repository.name}
runId={latestRunId}
logs={logs}
error={logsError}
isLoading={!logs && !logsError}
/>
</div>
)}
Expand Down
7 changes: 3 additions & 4 deletions app/(dashboard)/dashboard/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,10 @@ export type CommitChangesToPullRequest = (
commitMessage: string
) => Promise<string>;


export interface LogViewProps {
owner: string;
repo: string;
runId: string | null;
logs: string | undefined;
error: Error | undefined;
isLoading: boolean;
}

export interface LogGroup {
Expand Down

0 comments on commit 1b1661a

Please sign in to comment.