• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / codegate-ui / 12828464111

17 Jan 2025 11:48AM CUT coverage: 65.711% (+0.8%) from 64.918%
12828464111

Pull #94

github

web-flow
Merge de9616a3a into d873272ed
Pull Request #94: feat: initial work on codegate version check widget

223 of 416 branches covered (53.61%)

Branch coverage included in aggregate %.

42 of 48 new or added lines in 9 files covered. (87.5%)

442 of 596 relevant lines covered (74.16%)

27.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

72.73
/src/features/dashboard-codegate-status/components/codegate-status-refresh-button.tsx
1
import { useQueryClient } from "@tanstack/react-query";
2
import { PollingInterval } from "./codegate-status-polling-control";
3
import { getQueryOptionsCodeGateStatus } from "../hooks/use-codegate-status";
4
import { useCallback, useEffect, useState } from "react";
5
import { Button } from "@stacklok/ui-kit";
6
import { RefreshCcw } from "lucide-react";
7
import { twMerge } from "tailwind-merge";
8

9
export function CodeGateStatusRefreshButton({
10
  pollingInterval,
11
  className,
12
}: {
13
  pollingInterval: PollingInterval;
14
  className?: string;
15
}) {
16
  const queryClient = useQueryClient();
80✔
17
  const { queryKey } = getQueryOptionsCodeGateStatus(pollingInterval);
80✔
18

19
  const [refreshed, setRefreshed] = useState<boolean>(false);
80✔
20

21
  useEffect(() => {
80✔
22
    const id = setTimeout(() => setRefreshed(false), 500);
14✔
23
    return () => clearTimeout(id);
14✔
24
  }, [refreshed]);
25

26
  const handleRefresh = useCallback(() => {
80✔
NEW
27
    setRefreshed(true);
×
NEW
28
    return queryClient.invalidateQueries({ queryKey, refetchType: "all" });
×
29
  }, [queryClient, queryKey]);
30

31
  return (
32
    <Button
33
      onPress={handleRefresh}
34
      variant="tertiary"
35
      className={twMerge("size-7", className)}
36
      isDisabled={refreshed}
37
    >
38
      <RefreshCcw className={refreshed ? "animate-spin-once" : undefined} />
80!
39
    </Button>
40
  );
41
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc