diff --git a/src/app/(admin)/dashboard/create/page.tsx b/src/app/(admin)/dashboard/create/page.tsx
index c1d94b2..a410564 100644
--- a/src/app/(admin)/dashboard/create/page.tsx
+++ b/src/app/(admin)/dashboard/create/page.tsx
@@ -5,7 +5,6 @@ export default function DashboardCreatePage() {
Create Short Link
-
Create a new short link with advanced configuration options.
diff --git a/src/components/dashboard/advanced-url-form-card.tsx b/src/components/dashboard/advanced-url-form-card.tsx
index 91aab53..56dd39d 100644
--- a/src/components/dashboard/advanced-url-form-card.tsx
+++ b/src/components/dashboard/advanced-url-form-card.tsx
@@ -20,9 +20,9 @@ export function AdvancedUrlFormCard() {
resolver: zodResolver(advancedUrlSchema),
defaultValues: {
url: "",
- slug: undefined,
- title: undefined,
- maxVisits: undefined,
+ slug: "",
+ title: "",
+ maxVisits: 0,
expDate: undefined,
forwardQueryParams: true,
crawlable: false
diff --git a/src/components/dashboard/url-form-card.tsx b/src/components/dashboard/url-form-card.tsx
index c6c37ac..6327b30 100644
--- a/src/components/dashboard/url-form-card.tsx
+++ b/src/components/dashboard/url-form-card.tsx
@@ -18,7 +18,7 @@ export function UrlFormCard() {
resolver: zodResolver(urlFormSchema),
defaultValues: {
url: "",
- slug: undefined
+ slug: ""
}
})
diff --git a/src/lib/actions/url.ts b/src/lib/actions/url.ts
index d56c511..6c5b842 100644
--- a/src/lib/actions/url.ts
+++ b/src/lib/actions/url.ts
@@ -5,6 +5,7 @@ import { getSession } from "../auth/session"
import { insertUrl } from "../db/urls"
import { advancedUrlSchema, urlFormSchema } from "../schema/url"
import { deleteUrl as deleteUrlDb } from "../db/urls"
+import { revalidatePath } from "next/cache"
type Response = {
error: boolean
@@ -30,7 +31,12 @@ export async function addUrl(unsafeData: unknown): Promise {
}
}
- await insertUrl(data)
+ await insertUrl({
+ ...data,
+ slug: data.slug.length === 0 ? undefined : data.slug,
+ })
+
+ revalidatePath("/dashboard")
return {
error: false,
@@ -57,7 +63,12 @@ export async function createAdvanceUrl(unsafeData: unknown): Promise {
}
}
- await insertUrl(data)
+ await insertUrl({
+ ...data,
+ slug: data.slug?.length === 0 ? undefined : data.slug,
+ title: data.title?.length === 0 ? undefined : data.title,
+ maxVisits: data.maxVisits > 0 ? data.maxVisits : undefined,
+ })
return {
error: false,
diff --git a/src/lib/schema/url.ts b/src/lib/schema/url.ts
index b398297..d379d00 100644
--- a/src/lib/schema/url.ts
+++ b/src/lib/schema/url.ts
@@ -2,14 +2,14 @@ import { z } from "zod";
export const urlFormSchema = z.object({
url: z.string().url("Please enter a valid URL"),
- slug: z.string().max(10, "Slug must be 10 characters or less").optional()
+ slug: z.string().max(10, "Slug must be 10 characters or less")
})
export const advancedUrlSchema = z.object({
url: z.string().url("Please enter a valid URL"),
- slug: z.string().max(10, "Slug must be 10 characters or less").optional(),
- title: z.string().max(100, "Title must be 100 characters or less").optional(),
- maxVisits: z.number().int().min(1, "Max visits must be at least 1").optional(),
+ slug: z.string().max(10, "Slug must be 10 characters or less"),
+ title: z.string().max(100, "Title must be 100 characters or less"),
+ maxVisits: z.number().int(),
expDate: z.date().optional(),
forwardQueryParams: z.boolean(),
crawlable: z.boolean(),