MCPcopy Index your code
hub / github.com/coder/coder / useUpdateCheck

Function useUpdateCheck

site/src/modules/dashboard/useUpdateCheck.ts:5–37  ·  view source on GitHub ↗
(enabled: boolean)

Source from the content-addressed store, hash-verified

3import { updateCheck } from "#/api/queries/updateCheck";
4
5export const useUpdateCheck = (enabled: boolean) => {
6 const [dismissedVersion, setDismissedVersion] = useState(() =>
7 getDismissedVersionOnLocal(),
8 );
9 const updateCheckQuery = useQuery({
10 ...updateCheck(),
11 enabled,
12 });
13
14 const isVisible: boolean = useMemo(() => {
15 if (!updateCheckQuery.data) {
16 return false;
17 }
18
19 const isNotDismissed = dismissedVersion !== updateCheckQuery.data.version;
20 const isOutdated = !updateCheckQuery.data.current;
21 return Boolean(isNotDismissed && isOutdated);
22 }, [dismissedVersion, updateCheckQuery.data]);
23
24 const dismiss = () => {
25 if (!updateCheckQuery.data) {
26 return;
27 }
28 setDismissedVersion(updateCheckQuery.data.version);
29 saveDismissedVersionOnLocal(updateCheckQuery.data.version);
30 };
31
32 return {
33 isVisible,
34 dismiss,
35 data: updateCheckQuery.data,
36 };
37};
38
39const saveDismissedVersionOnLocal = (version: string): void => {
40 window.localStorage.setItem("dismissedVersion", version);

Callers 2

DashboardLayoutFunction · 0.90

Calls 2

updateCheckFunction · 0.90

Tested by

no test coverage detected