IKHSAN
EN Read in EnglishID

homeio

Publik

Fork dari doctor-io/homeio

Branch
main
Commit terakhir
958d74616 Oktober 2026

useContainerCustomization.ts

Buka raw
"use client";

import { useMutation, useQueryClient } from "@tanstack/react-query";
import type { ContainerCustomization } from "@/lib/shared/contracts/docker";

async function putContainerCustomization(
  containerName: string,
  customization: ContainerCustomization,
) {
  const response = await fetch(
    `/api/v1/docker/containers/${encodeURIComponent(containerName)}/customization`,
    {
      method: "PUT",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(customization),
    },
  );

  if (!response.ok) {
    const json = (await response.json().catch(() => null)) as {
      error?: string;
    } | null;
    throw new Error(json?.error ?? `Failed to save settings (${response.status})`);
  }

  const json = (await response.json()) as { data: ContainerCustomization };
  return json.data;
}

/** Save the name, icon and link shown for a container Homeio did not deploy. */
export function useContainerCustomization(containerName: string) {
  const queryClient = useQueryClient();

  return useMutation({
    mutationFn: (customization: ContainerCustomization) =>
      putContainerCustomization(containerName, customization),
    onSuccess: () =>
      queryClient.invalidateQueries({
        queryKey: ["docker", "unmanaged-containers"],
      }),
  });
}
byte
1.303
baris
43
Jenis
ts
Commit terakhir
16 Oktober 2026