- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/mysql/general/show-external-mysql-credentials.tsx b/apps/dokploy/components/dashboard/mysql/general/show-external-mysql-credentials.tsx
index 6e6cbe018..b9ddad916 100644
--- a/apps/dokploy/components/dashboard/mysql/general/show-external-mysql-credentials.tsx
+++ b/apps/dokploy/components/dashboard/mysql/general/show-external-mysql-credentials.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import Link from "next/link";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -48,10 +48,10 @@ interface Props {
export const ShowExternalMysqlCredentials = ({ mysqlId }: Props) => {
const { data: ip } = api.settings.getIp.useQuery();
const { data, refetch } = api.mysql.one.useQuery({ mysqlId });
- const { mutateAsync, isLoading } = api.mysql.saveExternalPort.useMutation();
+ const { mutateAsync, isPending } = api.mysql.saveExternalPort.useMutation();
const [connectionUrl, setConnectionUrl] = useState("");
const getIp = data?.server?.ipAddress || ip;
- const form = useForm
({
+ const form = useForm({
defaultValues: {},
resolver: zodResolver(DockerProviderSchema),
});
@@ -140,7 +140,7 @@ export const ShowExternalMysqlCredentials = ({ mysqlId }: Props) => {
@@ -160,7 +160,7 @@ export const ShowExternalMysqlCredentials = ({ mysqlId }: Props) => {
)}
-
diff --git a/apps/dokploy/components/dashboard/mysql/general/show-general-mysql.tsx b/apps/dokploy/components/dashboard/mysql/general/show-general-mysql.tsx
index 045a717b7..1a55c1d1a 100644
--- a/apps/dokploy/components/dashboard/mysql/general/show-general-mysql.tsx
+++ b/apps/dokploy/components/dashboard/mysql/general/show-general-mysql.tsx
@@ -28,12 +28,12 @@ export const ShowGeneralMysql = ({ mysqlId }: Props) => {
{ enabled: !!mysqlId },
);
- const { mutateAsync: reload, isLoading: isReloading } =
+ const { mutateAsync: reload, isPending: isReloading } =
api.mysql.reload.useMutation();
- const { mutateAsync: start, isLoading: isStarting } =
+ const { mutateAsync: start, isPending: isStarting } =
api.mysql.start.useMutation();
- const { mutateAsync: stop, isLoading: isStopping } =
+ const { mutateAsync: stop, isPending: isStopping } =
api.mysql.stop.useMutation();
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
diff --git a/apps/dokploy/components/dashboard/mysql/update-mysql.tsx b/apps/dokploy/components/dashboard/mysql/update-mysql.tsx
index 353523aa0..176698d48 100644
--- a/apps/dokploy/components/dashboard/mysql/update-mysql.tsx
+++ b/apps/dokploy/components/dashboard/mysql/update-mysql.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon } from "lucide-react";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
@@ -42,7 +42,7 @@ interface Props {
export const UpdateMysql = ({ mysqlId }: Props) => {
const utils = api.useUtils();
- const { mutateAsync, error, isError, isLoading } =
+ const { mutateAsync, error, isError, isPending } =
api.mysql.update.useMutation();
const { data } = api.mysql.one.useQuery(
{
@@ -146,7 +146,7 @@ export const UpdateMysql = ({ mysqlId }: Props) => {
/>
diff --git a/apps/dokploy/components/dashboard/organization/handle-organization.tsx b/apps/dokploy/components/dashboard/organization/handle-organization.tsx
index c676e0233..c191bead5 100644
--- a/apps/dokploy/components/dashboard/organization/handle-organization.tsx
+++ b/apps/dokploy/components/dashboard/organization/handle-organization.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon, Plus } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -52,7 +52,7 @@ export function AddOrganization({ organizationId }: Props) {
enabled: !!organizationId,
},
);
- const { mutateAsync, isLoading } = organizationId
+ const { mutateAsync, isPending } = organizationId
? api.organization.update.useMutation()
: api.organization.create.useMutation();
const { refetch: refetchActiveOrganization } =
@@ -177,7 +177,7 @@ export function AddOrganization({ organizationId }: Props) {
)}
/>
-
+
{organizationId ? "Update organization" : "Create organization"}
diff --git a/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx b/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
index d9841716e..0921984ac 100644
--- a/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
+++ b/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { Plus, Trash2 } from "lucide-react";
import { useEffect } from "react";
import { useFieldArray, useForm } from "react-hook-form";
diff --git a/apps/dokploy/components/dashboard/postgres/general/show-external-postgres-credentials.tsx b/apps/dokploy/components/dashboard/postgres/general/show-external-postgres-credentials.tsx
index 1d34c010a..c38240a3f 100644
--- a/apps/dokploy/components/dashboard/postgres/general/show-external-postgres-credentials.tsx
+++ b/apps/dokploy/components/dashboard/postgres/general/show-external-postgres-credentials.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import Link from "next/link";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -48,12 +48,12 @@ interface Props {
export const ShowExternalPostgresCredentials = ({ postgresId }: Props) => {
const { data: ip } = api.settings.getIp.useQuery();
const { data, refetch } = api.postgres.one.useQuery({ postgresId });
- const { mutateAsync, isLoading } =
+ const { mutateAsync, isPending } =
api.postgres.saveExternalPort.useMutation();
const getIp = data?.server?.ipAddress || ip;
const [connectionUrl, setConnectionUrl] = useState("");
- const form = useForm({
+ const form = useForm({
defaultValues: {},
resolver: zodResolver(DockerProviderSchema),
});
@@ -142,7 +142,7 @@ export const ShowExternalPostgresCredentials = ({ postgresId }: Props) => {
@@ -162,7 +162,7 @@ export const ShowExternalPostgresCredentials = ({ postgresId }: Props) => {
)}
-
+
Save
diff --git a/apps/dokploy/components/dashboard/postgres/general/show-general-postgres.tsx b/apps/dokploy/components/dashboard/postgres/general/show-general-postgres.tsx
index de520053d..0e6b87e9e 100644
--- a/apps/dokploy/components/dashboard/postgres/general/show-general-postgres.tsx
+++ b/apps/dokploy/components/dashboard/postgres/general/show-general-postgres.tsx
@@ -28,13 +28,13 @@ export const ShowGeneralPostgres = ({ postgresId }: Props) => {
{ enabled: !!postgresId },
);
- const { mutateAsync: reload, isLoading: isReloading } =
+ const { mutateAsync: reload, isPending: isReloading } =
api.postgres.reload.useMutation();
- const { mutateAsync: stop, isLoading: isStopping } =
+ const { mutateAsync: stop, isPending: isStopping } =
api.postgres.stop.useMutation();
- const { mutateAsync: start, isLoading: isStarting } =
+ const { mutateAsync: start, isPending: isStarting } =
api.postgres.start.useMutation();
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
diff --git a/apps/dokploy/components/dashboard/postgres/update-postgres.tsx b/apps/dokploy/components/dashboard/postgres/update-postgres.tsx
index d4485862e..c83604b54 100644
--- a/apps/dokploy/components/dashboard/postgres/update-postgres.tsx
+++ b/apps/dokploy/components/dashboard/postgres/update-postgres.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBox } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -43,7 +43,7 @@ interface Props {
export const UpdatePostgres = ({ postgresId }: Props) => {
const [isOpen, setIsOpen] = useState(false);
const utils = api.useUtils();
- const { mutateAsync, error, isError, isLoading } =
+ const { mutateAsync, error, isError, isPending } =
api.postgres.update.useMutation();
const { data } = api.postgres.one.useQuery(
{
@@ -148,7 +148,7 @@ export const UpdatePostgres = ({ postgresId }: Props) => {
/>
{
// Self-hosted: show only if there are remote servers (Dokploy is default, hide if no remote servers)
const shouldShowServerDropdown = hasServers;
- const { mutateAsync, isLoading, error, isError } =
+ const { mutateAsync, isPending, error, isError } =
api.application.create.useMutation();
const form = useForm({
@@ -283,7 +283,7 @@ export const AddApplication = ({ environmentId, projectName }: Props) => {
-
+
Create
diff --git a/apps/dokploy/components/dashboard/project/add-compose.tsx b/apps/dokploy/components/dashboard/project/add-compose.tsx
index bb911373f..815c58ca8 100644
--- a/apps/dokploy/components/dashboard/project/add-compose.tsx
+++ b/apps/dokploy/components/dashboard/project/add-compose.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { CircuitBoard, HelpCircle } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -75,7 +75,7 @@ export const AddCompose = ({ environmentId, projectName }: Props) => {
const slug = slugify(projectName);
const { data: isCloud } = api.settings.isCloud.useQuery();
const { data: servers } = api.server.withSSHKey.useQuery();
- const { mutateAsync, isLoading, error, isError } =
+ const { mutateAsync, isPending, error, isError } =
api.compose.create.useMutation();
// Get environment data to extract projectId
@@ -307,7 +307,7 @@ export const AddCompose = ({ environmentId, projectName }: Props) => {
-
+
Create
diff --git a/apps/dokploy/components/dashboard/project/add-database.tsx b/apps/dokploy/components/dashboard/project/add-database.tsx
index 67d00b0d7..e14653880 100644
--- a/apps/dokploy/components/dashboard/project/add-database.tsx
+++ b/apps/dokploy/components/dashboard/project/add-database.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { AlertTriangle, Database, HelpCircle } from "lucide-react";
import { useState } from "react";
import { useForm } from "react-hook-form";
@@ -52,7 +52,7 @@ import {
import { slugify } from "@/lib/slug";
import { api } from "@/utils/api";
-type DbType = typeof mySchema._type.type;
+type DbType = z.infer["type"];
const dockerImageDefaultPlaceholder: Record = {
mongo: "mongo:7",
@@ -196,7 +196,7 @@ export const AddDatabase = ({ environmentId, projectName }: Props) => {
// Self-hosted: show only if there are remote servers (Dokploy is default, hide if no remote servers)
const shouldShowServerDropdown = hasServers;
- const form = useForm({
+ const form = useForm({
defaultValues: {
type: "postgres",
dockerImage: "",
diff --git a/apps/dokploy/components/dashboard/project/add-template.tsx b/apps/dokploy/components/dashboard/project/add-template.tsx
index 72c42da49..ef9a88e6f 100644
--- a/apps/dokploy/components/dashboard/project/add-template.tsx
+++ b/apps/dokploy/components/dashboard/project/add-template.tsx
@@ -116,7 +116,7 @@ export const AddTemplate = ({ environmentId, baseUrl }: Props) => {
);
const { data: isCloud } = api.settings.isCloud.useQuery();
const { data: servers } = api.server.withSSHKey.useQuery();
- const { data: tags, isLoading: isLoadingTags } = api.compose.getTags.useQuery(
+ const { data: tags, isPending: isLoadingTags } = api.compose.getTags.useQuery(
{ baseUrl: customBaseUrl },
{
enabled: open,
@@ -125,7 +125,7 @@ export const AddTemplate = ({ environmentId, baseUrl }: Props) => {
const utils = api.useUtils();
const [serverId, setServerId] = useState(undefined);
- const { mutateAsync, isLoading, error, isError } =
+ const { mutateAsync, isPending, error, isError } =
api.compose.deployTemplate.useMutation();
const templates =
@@ -512,7 +512,7 @@ export const AddTemplate = ({ environmentId, baseUrl }: Props) => {
Cancel
{
const promise = mutateAsync({
serverId:
diff --git a/apps/dokploy/components/dashboard/project/advanced-environment-selector.tsx b/apps/dokploy/components/dashboard/project/advanced-environment-selector.tsx
index 678928990..3e28a248b 100644
--- a/apps/dokploy/components/dashboard/project/advanced-environment-selector.tsx
+++ b/apps/dokploy/components/dashboard/project/advanced-environment-selector.tsx
@@ -93,7 +93,7 @@ export const AdvancedEnvironmentSelector = ({
await createEnvironment.mutateAsync({
projectId,
name: name.trim(),
- description: description.trim() || null,
+ description: description.trim() || undefined,
});
toast.success("Environment created successfully");
@@ -115,7 +115,7 @@ export const AdvancedEnvironmentSelector = ({
await updateEnvironment.mutateAsync({
environmentId: selectedEnvironment.environmentId,
name: name.trim(),
- description: description.trim() || null,
+ description: description.trim() || undefined,
});
toast.success("Environment updated successfully");
@@ -168,7 +168,7 @@ export const AdvancedEnvironmentSelector = ({
const result = await duplicateEnvironment.mutateAsync({
environmentId: environment.environmentId,
name: `${environment.name}-copy`,
- description: environment.description,
+ description: environment.description || undefined,
});
toast.success("Environment duplicated successfully");
@@ -334,9 +334,9 @@ export const AdvancedEnvironmentSelector = ({
- {createEnvironment.isLoading ? "Creating..." : "Create"}
+ {createEnvironment.isPending ? "Creating..." : "Create"}
@@ -387,9 +387,9 @@ export const AdvancedEnvironmentSelector = ({
- {updateEnvironment.isLoading ? "Updating..." : "Update"}
+ {updateEnvironment.isPending ? "Updating..." : "Update"}
@@ -427,12 +427,12 @@ export const AdvancedEnvironmentSelector = ({
variant="destructive"
onClick={handleDeleteEnvironment}
disabled={
- deleteEnvironment.isLoading ||
+ deleteEnvironment.isPending ||
haveServices ||
!selectedEnvironment
}
>
- {deleteEnvironment.isLoading ? "Deleting..." : "Delete"}
+ {deleteEnvironment.isPending ? "Deleting..." : "Delete"}
diff --git a/apps/dokploy/components/dashboard/project/ai/step-two.tsx b/apps/dokploy/components/dashboard/project/ai/step-two.tsx
index 09484bc57..e13ff40ad 100644
--- a/apps/dokploy/components/dashboard/project/ai/step-two.tsx
+++ b/apps/dokploy/components/dashboard/project/ai/step-two.tsx
@@ -28,7 +28,7 @@ export const StepTwo = ({ templateInfo, setTemplateInfo }: StepProps) => {
const suggestions = templateInfo.suggestions || [];
const selectedVariant = templateInfo.details;
- const { mutateAsync, isLoading, error, isError } =
+ const { mutateAsync, isPending, error, isError } =
api.ai.suggest.useMutation();
useEffect(() => {
@@ -184,7 +184,7 @@ export const StepTwo = ({ templateInfo, setTemplateInfo }: StepProps) => {
);
}
- if (isLoading) {
+ if (isPending) {
return (
diff --git a/apps/dokploy/components/dashboard/project/duplicate-project.tsx b/apps/dokploy/components/dashboard/project/duplicate-project.tsx
index 3455f34cf..f84cf35dd 100644
--- a/apps/dokploy/components/dashboard/project/duplicate-project.tsx
+++ b/apps/dokploy/components/dashboard/project/duplicate-project.tsx
@@ -76,7 +76,7 @@ export const DuplicateProject = ({
selectedServiceIds.includes(service.id),
);
- const { mutateAsync: duplicateProject, isLoading } =
+ const { mutateAsync: duplicateProject, isPending } =
api.project.duplicate.useMutation({
onSuccess: async (newProject) => {
await utils.project.all.invalidate();
@@ -321,20 +321,20 @@ export const DuplicateProject = ({
setOpen(false)}
- disabled={isLoading}
+ disabled={isPending}
>
Cancel
- {isLoading ? (
+ {isPending ? (
<>
{duplicateType === "new-project"
diff --git a/apps/dokploy/components/dashboard/project/environment-variables.tsx b/apps/dokploy/components/dashboard/project/environment-variables.tsx
index e833fa779..13ca99448 100644
--- a/apps/dokploy/components/dashboard/project/environment-variables.tsx
+++ b/apps/dokploy/components/dashboard/project/environment-variables.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { Terminal } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -41,7 +41,7 @@ interface Props {
export const EnvironmentVariables = ({ environmentId, children }: Props) => {
const [isOpen, setIsOpen] = useState(false);
const utils = api.useUtils();
- const { mutateAsync, error, isError, isLoading } =
+ const { mutateAsync, error, isError, isPending } =
api.environment.update.useMutation();
const { data } = api.environment.one.useQuery(
{
@@ -85,7 +85,7 @@ export const EnvironmentVariables = ({ environmentId, children }: Props) => {
// Add keyboard shortcut for Ctrl+S/Cmd+S
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
- if ((e.ctrlKey || e.metaKey) && e.key === "s" && !isLoading && isOpen) {
+ if ((e.ctrlKey || e.metaKey) && e.key === "s" && !isPending && isOpen) {
e.preventDefault();
form.handleSubmit(onSubmit)();
}
@@ -95,7 +95,7 @@ export const EnvironmentVariables = ({ environmentId, children }: Props) => {
return () => {
document.removeEventListener("keydown", handleKeyDown);
};
- }, [form, onSubmit, isLoading, isOpen]);
+ }, [form, onSubmit, isPending, isOpen]);
return (
- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/redis/general/show-external-redis-credentials.tsx b/apps/dokploy/components/dashboard/redis/general/show-external-redis-credentials.tsx
index 9511af628..ebc01200a 100644
--- a/apps/dokploy/components/dashboard/redis/general/show-external-redis-credentials.tsx
+++ b/apps/dokploy/components/dashboard/redis/general/show-external-redis-credentials.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import Link from "next/link";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -48,11 +48,11 @@ interface Props {
export const ShowExternalRedisCredentials = ({ redisId }: Props) => {
const { data: ip } = api.settings.getIp.useQuery();
const { data, refetch } = api.redis.one.useQuery({ redisId });
- const { mutateAsync, isLoading } = api.redis.saveExternalPort.useMutation();
+ const { mutateAsync, isPending } = api.redis.saveExternalPort.useMutation();
const [connectionUrl, setConnectionUrl] = useState("");
const getIp = data?.server?.ipAddress || ip;
- const form = useForm
({
+ const form = useForm({
defaultValues: {},
resolver: zodResolver(DockerProviderSchema),
});
@@ -134,7 +134,7 @@ export const ShowExternalRedisCredentials = ({ redisId }: Props) => {
@@ -154,7 +154,7 @@ export const ShowExternalRedisCredentials = ({ redisId }: Props) => {
)}
-
+
Save
diff --git a/apps/dokploy/components/dashboard/redis/general/show-general-redis.tsx b/apps/dokploy/components/dashboard/redis/general/show-general-redis.tsx
index de70cc558..4300f9af3 100644
--- a/apps/dokploy/components/dashboard/redis/general/show-general-redis.tsx
+++ b/apps/dokploy/components/dashboard/redis/general/show-general-redis.tsx
@@ -28,12 +28,12 @@ export const ShowGeneralRedis = ({ redisId }: Props) => {
{ enabled: !!redisId },
);
- const { mutateAsync: reload, isLoading: isReloading } =
+ const { mutateAsync: reload, isPending: isReloading } =
api.redis.reload.useMutation();
- const { mutateAsync: start, isLoading: isStarting } =
+ const { mutateAsync: start, isPending: isStarting } =
api.redis.start.useMutation();
- const { mutateAsync: stop, isLoading: isStopping } =
+ const { mutateAsync: stop, isPending: isStopping } =
api.redis.stop.useMutation();
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
diff --git a/apps/dokploy/components/dashboard/redis/update-redis.tsx b/apps/dokploy/components/dashboard/redis/update-redis.tsx
index 7d17552fa..20375d017 100644
--- a/apps/dokploy/components/dashboard/redis/update-redis.tsx
+++ b/apps/dokploy/components/dashboard/redis/update-redis.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon } from "lucide-react";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
@@ -42,7 +42,7 @@ interface Props {
export const UpdateRedis = ({ redisId }: Props) => {
const utils = api.useUtils();
- const { mutateAsync, error, isError, isLoading } =
+ const { mutateAsync, error, isError, isPending } =
api.redis.update.useMutation();
const { data } = api.redis.one.useQuery(
{
@@ -146,7 +146,7 @@ export const UpdateRedis = ({ redisId }: Props) => {
/>
diff --git a/apps/dokploy/components/dashboard/settings/ai-form.tsx b/apps/dokploy/components/dashboard/settings/ai-form.tsx
index f7f81c9cf..c3518fdcc 100644
--- a/apps/dokploy/components/dashboard/settings/ai-form.tsx
+++ b/apps/dokploy/components/dashboard/settings/ai-form.tsx
@@ -15,8 +15,8 @@ import { api } from "@/utils/api";
import { HandleAi } from "./handle-ai";
export const AiForm = () => {
- const { data: aiConfigs, refetch, isLoading } = api.ai.getAll.useQuery();
- const { mutateAsync, isLoading: isRemoving } = api.ai.delete.useMutation();
+ const { data: aiConfigs, refetch, isPending } = api.ai.getAll.useQuery();
+ const { mutateAsync, isPending: isRemoving } = api.ai.delete.useMutation();
return (
@@ -33,7 +33,7 @@ export const AiForm = () => {
{aiConfigs && aiConfigs?.length > 0 &&
}
- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx b/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx
index 15c7ed6e0..c6db49b5d 100644
--- a/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx
+++ b/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import copy from "copy-to-clipboard";
import { useState } from "react";
import { useForm } from "react-hook-form";
diff --git a/apps/dokploy/components/dashboard/settings/api/show-api-keys.tsx b/apps/dokploy/components/dashboard/settings/api/show-api-keys.tsx
index efa68929f..2e90a9bb6 100644
--- a/apps/dokploy/components/dashboard/settings/api/show-api-keys.tsx
+++ b/apps/dokploy/components/dashboard/settings/api/show-api-keys.tsx
@@ -17,7 +17,7 @@ import { AddApiKey } from "./add-api-key";
export const ShowApiKeys = () => {
const { data, refetch } = api.user.get.useQuery();
- const { mutateAsync: deleteApiKey, isLoading: isLoadingDelete } =
+ const { mutateAsync: deleteApiKey, isPending: isLoadingDelete } =
api.user.deleteApiKey.useMutation();
return (
diff --git a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
index 740c5179c..6e56bdd70 100644
--- a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
+++ b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
@@ -81,7 +81,7 @@ export const ShowBilling = () => {
const router = useRouter();
const { data: servers } = api.server.count.useQuery();
const { data: admin } = api.user.get.useQuery();
- const { data, isLoading } = api.stripe.getProducts.useQuery();
+ const { data, isPending } = api.stripe.getProducts.useQuery();
const { mutateAsync: createCheckoutSession } =
api.stripe.createCheckoutSession.useMutation();
@@ -643,7 +643,7 @@ export const ShowBilling = () => {
- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/settings/billing/show-invoices.tsx b/apps/dokploy/components/dashboard/settings/billing/show-invoices.tsx
index 73cc82efc..b10e09596 100644
--- a/apps/dokploy/components/dashboard/settings/billing/show-invoices.tsx
+++ b/apps/dokploy/components/dashboard/settings/billing/show-invoices.tsx
@@ -53,11 +53,11 @@ const getStatusBadge = (status: Stripe.Invoice.Status | null) => {
};
export const ShowInvoices = () => {
- const { data: invoices, isLoading } = api.stripe.getInvoices.useQuery();
+ const { data: invoices, isPending } = api.stripe.getInvoices.useQuery();
return (
- {isLoading ? (
+ {isPending ? (
Loading invoices...
diff --git a/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx
index f87ca58c7..ca1407d7e 100644
--- a/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx
+++ b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx
@@ -12,7 +12,7 @@ export const ShowWelcomeDokploy = () => {
const { data } = api.user.get.useQuery();
const [open, setOpen] = useState(false);
- const { data: isCloud, isLoading } = api.settings.isCloud.useQuery();
+ const { data: isCloud, isPending } = api.settings.isCloud.useQuery();
if (!isCloud || data?.role !== "admin") {
return null;
@@ -20,14 +20,14 @@ export const ShowWelcomeDokploy = () => {
useEffect(() => {
if (
- !isLoading &&
+ !isPending &&
isCloud &&
!localStorage.getItem("hasSeenCloudWelcomeModal") &&
data?.role === "owner"
) {
setOpen(true);
}
- }, [isCloud, isLoading]);
+ }, [isCloud, isPending]);
const handleClose = (isOpen: boolean) => {
if (data?.role === "owner") {
diff --git a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx
index 6f7ef6821..bc29a4c95 100644
--- a/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx
+++ b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { HelpCircle, PlusIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -62,7 +62,7 @@ export const AddCertificate = () => {
const utils = api.useUtils();
const { data: isCloud } = api.settings.isCloud.useQuery();
- const { mutateAsync, isError, error, isLoading } =
+ const { mutateAsync, isError, error, isPending } =
api.certificates.create.useMutation();
const { data: servers } = api.server.withSSHKey.useQuery();
const hasServers = servers && servers.length > 0;
@@ -247,7 +247,7 @@ export const AddCertificate = () => {
diff --git a/apps/dokploy/components/dashboard/settings/certificates/show-certificates.tsx b/apps/dokploy/components/dashboard/settings/certificates/show-certificates.tsx
index 8356d89c6..e861c9027 100644
--- a/apps/dokploy/components/dashboard/settings/certificates/show-certificates.tsx
+++ b/apps/dokploy/components/dashboard/settings/certificates/show-certificates.tsx
@@ -15,9 +15,9 @@ import { AddCertificate } from "./add-certificate";
import { getCertificateChainInfo, getExpirationStatus } from "./utils";
export const ShowCertificates = () => {
- const { mutateAsync, isLoading: isRemoving } =
+ const { mutateAsync, isPending: isRemoving } =
api.certificates.remove.useMutation();
- const { data, isLoading, refetch } = api.certificates.all.useQuery();
+ const { data, isPending, refetch } = api.certificates.all.useQuery();
return (
@@ -40,7 +40,7 @@ export const ShowCertificates = () => {
- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/manager/add-manager.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/manager/add-manager.tsx
index 36dda311c..a24e4dc2f 100644
--- a/apps/dokploy/components/dashboard/settings/cluster/nodes/manager/add-manager.tsx
+++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/manager/add-manager.tsx
@@ -15,7 +15,7 @@ interface Props {
}
export const AddManager = ({ serverId }: Props) => {
- const { data, isLoading, error, isError } = api.cluster.addManager.useQuery({
+ const { data, isPending, error, isError } = api.cluster.addManager.useQuery({
serverId,
});
@@ -27,7 +27,7 @@ export const AddManager = ({ serverId }: Props) => {
Add a new manager
{isError &&
{error?.message}}
- {isLoading ? (
+ {isPending ? (
) : (
<>
diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes.tsx
index b88fdd8e8..c7f580caa 100644
--- a/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes.tsx
+++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes.tsx
@@ -48,7 +48,7 @@ interface Props {
}
export const ShowNodes = ({ serverId }: Props) => {
- const { data, isLoading, refetch } = api.cluster.getNodes.useQuery({
+ const { data, isPending, refetch } = api.cluster.getNodes.useQuery({
serverId,
});
const { data: registry } = api.registry.all.useQuery();
@@ -75,7 +75,7 @@ export const ShowNodes = ({ serverId }: Props) => {
)}
- {isLoading ? (
+ {isPending ? (
diff --git a/apps/dokploy/components/dashboard/settings/cluster/nodes/workers/add-worker.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/workers/add-worker.tsx
index c73e458ef..40a673265 100644
--- a/apps/dokploy/components/dashboard/settings/cluster/nodes/workers/add-worker.tsx
+++ b/apps/dokploy/components/dashboard/settings/cluster/nodes/workers/add-worker.tsx
@@ -15,7 +15,7 @@ interface Props {
}
export const AddWorker = ({ serverId }: Props) => {
- const { data, isLoading, error, isError } = api.cluster.addWorker.useQuery({
+ const { data, isPending, error, isError } = api.cluster.addWorker.useQuery({
serverId,
});
@@ -26,7 +26,7 @@ export const AddWorker = ({ serverId }: Props) => {
Add a new worker
{isError && {error?.message}}
- {isLoading ? (
+ {isPending ? (
) : (
<>
diff --git a/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx
index 979276995..e22285c73 100644
--- a/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx
+++ b/apps/dokploy/components/dashboard/settings/cluster/registry/handle-registry.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { AlertTriangle, PenBoxIcon, PlusIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -105,13 +105,13 @@ export const HandleRegistry = ({ registryId }: Props) => {
const servers = [...(deployServers || []), ...(buildServers || [])];
const {
mutateAsync: testRegistry,
- isLoading,
+ isPending,
error: testRegistryError,
isError: testRegistryIsError,
} = api.registry.testRegistry.useMutation();
const {
mutateAsync: testRegistryById,
- isLoading: isLoadingById,
+ isPending: isPendingById,
error: testRegistryByIdError,
isError: testRegistryByIdIsError,
} = api.registry.testRegistryById.useMutation();
@@ -451,7 +451,7 @@ export const HandleRegistry = ({ registryId }: Props) => {
{
// When editing with empty password, use the existing password from DB
if (registryId && (!password || password.length === 0)) {
diff --git a/apps/dokploy/components/dashboard/settings/cluster/registry/show-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/show-registry.tsx
index c5dd60622..cbaf5de2f 100644
--- a/apps/dokploy/components/dashboard/settings/cluster/registry/show-registry.tsx
+++ b/apps/dokploy/components/dashboard/settings/cluster/registry/show-registry.tsx
@@ -13,9 +13,9 @@ import { api } from "@/utils/api";
import { HandleRegistry } from "./handle-registry";
export const ShowRegistry = () => {
- const { mutateAsync, isLoading: isRemoving } =
+ const { mutateAsync, isPending: isRemoving } =
api.registry.remove.useMutation();
- const { data, isLoading, refetch } = api.registry.all.useQuery();
+ const { data, isPending, refetch } = api.registry.all.useQuery();
return (
@@ -31,7 +31,7 @@ export const ShowRegistry = () => {
- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx
index dae069e91..966c8e5f5 100644
--- a/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx
+++ b/apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon, PlusIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -60,7 +60,7 @@ export const HandleDestinations = ({ destinationId }: Props) => {
const { data: servers } = api.server.withSSHKey.useQuery();
const { data: isCloud } = api.settings.isCloud.useQuery();
- const { mutateAsync, isError, error, isLoading } = destinationId
+ const { mutateAsync, isError, error, isPending } = destinationId
? api.destination.update.useMutation()
: api.destination.create.useMutation();
@@ -75,7 +75,7 @@ export const HandleDestinations = ({ destinationId }: Props) => {
);
const {
mutateAsync: testConnection,
- isLoading: isLoadingConnection,
+ isPending: isPendingConnection,
error: connectionError,
isError: isErrorConnection,
} = api.destination.testConnection.useMutation();
@@ -410,7 +410,7 @@ export const HandleDestinations = ({ destinationId }: Props) => {
{
await handleTestConnection(form.getValues("serverId"));
}}
@@ -420,7 +420,7 @@ export const HandleDestinations = ({ destinationId }: Props) => {
) : (
{
@@ -432,7 +432,7 @@ export const HandleDestinations = ({ destinationId }: Props) => {
)}
diff --git a/apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx b/apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx
index f0ad39807..3cb29d54a 100644
--- a/apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx
+++ b/apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx
@@ -13,8 +13,8 @@ import { api } from "@/utils/api";
import { HandleDestinations } from "./handle-destinations";
export const ShowDestinations = () => {
- const { data, isLoading, refetch } = api.destination.all.useQuery();
- const { mutateAsync, isLoading: isRemoving } =
+ const { data, isPending, refetch } = api.destination.all.useQuery();
+ const { mutateAsync, isPending: isRemoving } =
api.destination.remove.useMutation();
return (
@@ -31,7 +31,7 @@ export const ShowDestinations = () => {
- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx b/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx
index c933a0b8c..51a2291c1 100644
--- a/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/bitbucket/add-bitbucket-provider.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { ExternalLink } from "lucide-react";
import Link from "next/link";
import { useEffect, useState } from "react";
diff --git a/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx b/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx
index 3cccdff71..045b0196f 100644
--- a/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/bitbucket/edit-bitbucket-provider.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -58,7 +58,7 @@ export const EditBitbucketProvider = ({ bitbucketId }: Props) => {
const utils = api.useUtils();
const [isOpen, setIsOpen] = useState(false);
const { mutateAsync, error, isError } = api.bitbucket.update.useMutation();
- const { mutateAsync: testConnection, isLoading } =
+ const { mutateAsync: testConnection, isPending } =
api.bitbucket.testConnection.useMutation();
const form = useForm
({
defaultValues: {
@@ -257,7 +257,7 @@ export const EditBitbucketProvider = ({ bitbucketId }: Props) => {
{
await testConnection({
bitbucketId,
diff --git a/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx b/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx
index f474c376d..89307b1ce 100644
--- a/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/gitea/add-gitea-provider.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { ExternalLink } from "lucide-react";
import Link from "next/link";
import { useEffect, useState } from "react";
@@ -19,9 +19,9 @@ import {
import {
Form,
FormControl,
+ FormDescription,
FormField,
FormItem,
- FormDescription,
FormLabel,
FormMessage,
} from "@/components/ui/form";
@@ -68,7 +68,7 @@ export const AddGiteaProvider = () => {
const { mutateAsync, error, isError } = api.gitea.create.useMutation();
const webhookUrl = `${baseUrl}/api/providers/gitea/callback`;
- const form = useForm({
+ const form = useForm({
defaultValues: {
clientId: "",
clientSecret: "",
diff --git a/apps/dokploy/components/dashboard/settings/git/gitea/edit-gitea-provider.tsx b/apps/dokploy/components/dashboard/settings/git/gitea/edit-gitea-provider.tsx
index fe578acce..b59687004 100644
--- a/apps/dokploy/components/dashboard/settings/git/gitea/edit-gitea-provider.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/gitea/edit-gitea-provider.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon } from "lucide-react";
import { useRouter } from "next/router";
import { useEffect, useState } from "react";
@@ -17,9 +17,9 @@ import {
import {
Form,
FormControl,
+ FormDescription,
FormField,
FormItem,
- FormDescription,
FormLabel,
FormMessage,
} from "@/components/ui/form";
@@ -51,8 +51,8 @@ export const EditGiteaProvider = ({ giteaId }: Props) => {
isLoading,
refetch,
} = api.gitea.one.useQuery({ giteaId });
- const { mutateAsync, isLoading: isUpdating } = api.gitea.update.useMutation();
- const { mutateAsync: testConnection, isLoading: isTesting } =
+ const { mutateAsync, isPending: isUpdating } = api.gitea.update.useMutation();
+ const { mutateAsync: testConnection, isPending: isTesting } =
api.gitea.testConnection.useMutation();
const url = useUrl();
const utils = api.useUtils();
@@ -94,7 +94,7 @@ export const EditGiteaProvider = ({ giteaId }: Props) => {
}
}, [router.query, router.isReady, refetch]);
- const form = useForm>({
+ const form = useForm({
resolver: zodResolver(formSchema),
defaultValues: {
name: "",
diff --git a/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx b/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx
index 62463d0dc..7aeb565c1 100644
--- a/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/github/edit-github-provider.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -53,7 +53,7 @@ export const EditGithubProvider = ({ githubId }: Props) => {
const utils = api.useUtils();
const [isOpen, setIsOpen] = useState(false);
const { mutateAsync, error, isError } = api.github.update.useMutation();
- const { mutateAsync: testConnection, isLoading } =
+ const { mutateAsync: testConnection, isPending } =
api.github.testConnection.useMutation();
const form = useForm({
defaultValues: {
@@ -151,7 +151,7 @@ export const EditGithubProvider = ({ githubId }: Props) => {
{
await testConnection({
githubId,
diff --git a/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx b/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx
index 69d926194..7c637f5ef 100644
--- a/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/gitlab/add-gitlab-provider.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { ExternalLink } from "lucide-react";
import Link from "next/link";
import { useEffect, useState } from "react";
@@ -19,9 +19,9 @@ import {
import {
Form,
FormControl,
+ FormDescription,
FormField,
FormItem,
- FormDescription,
FormLabel,
FormMessage,
} from "@/components/ui/form";
@@ -63,7 +63,7 @@ export const AddGitlabProvider = () => {
const { mutateAsync, error, isError } = api.gitlab.create.useMutation();
const webhookUrl = `${url}/api/providers/gitlab/callback`;
- const form = useForm({
+ const form = useForm({
defaultValues: {
applicationId: "",
applicationSecret: "",
diff --git a/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx b/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx
index 394e25281..e48df084b 100644
--- a/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/gitlab/edit-gitlab-provider.tsx
@@ -1,4 +1,4 @@
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { PenBoxIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -18,9 +18,9 @@ import {
import {
Form,
FormControl,
+ FormDescription,
FormField,
FormItem,
- FormDescription,
FormLabel,
FormMessage,
} from "@/components/ui/form";
@@ -59,9 +59,9 @@ export const EditGitlabProvider = ({ gitlabId }: Props) => {
const utils = api.useUtils();
const [isOpen, setIsOpen] = useState(false);
const { mutateAsync, error, isError } = api.gitlab.update.useMutation();
- const { mutateAsync: testConnection, isLoading } =
+ const { mutateAsync: testConnection, isPending } =
api.gitlab.testConnection.useMutation();
- const form = useForm({
+ const form = useForm({
defaultValues: {
groupName: "",
name: "",
@@ -205,7 +205,7 @@ export const EditGitlabProvider = ({ gitlabId }: Props) => {
{
await testConnection({
gitlabId,
diff --git a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx
index 5e4c12696..a96bcf26c 100644
--- a/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx
+++ b/apps/dokploy/components/dashboard/settings/git/show-git-providers.tsx
@@ -36,8 +36,8 @@ import { AddGitlabProvider } from "./gitlab/add-gitlab-provider";
import { EditGitlabProvider } from "./gitlab/edit-gitlab-provider";
export const ShowGitProviders = () => {
- const { data, isLoading, refetch } = api.gitProvider.getAll.useQuery();
- const { mutateAsync, isLoading: isRemoving } =
+ const { data, isPending, refetch } = api.gitProvider.getAll.useQuery();
+ const { mutateAsync, isPending: isRemoving } =
api.gitProvider.remove.useMutation();
const url = useUrl();
@@ -66,7 +66,7 @@ export const ShowGitProviders = () => {
- {isLoading ? (
+ {isPending ? (
Loading...
diff --git a/apps/dokploy/components/dashboard/settings/handle-ai.tsx b/apps/dokploy/components/dashboard/settings/handle-ai.tsx
index b5a0d51d8..d600d3a8e 100644
--- a/apps/dokploy/components/dashboard/settings/handle-ai.tsx
+++ b/apps/dokploy/components/dashboard/settings/handle-ai.tsx
@@ -1,5 +1,5 @@
"use client";
-import { zodResolver } from "@hookform/resolvers/zod";
+import { standardSchemaResolver as zodResolver } from "@hookform/resolvers/standard-schema";
import { Check, ChevronDown, PenBoxIcon, PlusIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
@@ -57,7 +57,6 @@ interface Props {
export const HandleAi = ({ aiId }: Props) => {
const utils = api.useUtils();
- const [error, setError] = useState
(null);
const [open, setOpen] = useState(false);
const [modelPopoverOpen, setModelPopoverOpen] = useState(false);
const [modelSearch, setModelSearch] = useState("");
@@ -69,7 +68,7 @@ export const HandleAi = ({ aiId }: Props) => {
enabled: !!aiId,
},
);
- const { mutateAsync, isLoading } = aiId
+ const { mutateAsync, isPending } = aiId
? api.ai.update.useMutation()
: api.ai.create.useMutation();
@@ -102,19 +101,19 @@ export const HandleAi = ({ aiId }: Props) => {
const apiKey = form.watch("apiKey");
const isOllama = apiUrl.includes(":11434") || apiUrl.includes("ollama");
- const { data: models, isLoading: isLoadingServerModels } =
- api.ai.getModels.useQuery(
- {
- apiUrl: apiUrl ?? "",
- apiKey: apiKey ?? "",
- },
- {
- enabled: !!apiUrl && (isOllama || !!apiKey),
- onError: (error) => {
- setError(`Failed to fetch models: ${error.message}`);
- },
- },
- );
+ const {
+ data: models,
+ isPending: isLoadingServerModels,
+ error: modelsError,
+ } = api.ai.getModels.useQuery(
+ {
+ apiUrl: apiUrl ?? "",
+ apiKey: apiKey ?? "",
+ },
+ {
+ enabled: !!apiUrl && (isOllama || !!apiKey),
+ },
+ );
const onSubmit = async (data: Schema) => {
try {
@@ -169,7 +168,9 @@ export const HandleAi = ({ aiId }: Props) => {