diff --git a/src/components/shortener/createRedirectionForm.tsx b/src/components/shortener/createRedirectionForm.tsx
index 9a64627..afc3075 100644
--- a/src/components/shortener/createRedirectionForm.tsx
+++ b/src/components/shortener/createRedirectionForm.tsx
@@ -1,10 +1,18 @@
-import { useConnectMutation } from "~/integrations/connect-query/solid";
-import { createURLRedirection } from "~/gen/proto/shorten/v1/shorten-ShortenService_connectquery";
+import {
+ useConnectMutation,
+ getConnectQueryKey,
+} from "~/integrations/connect-query/solid";
+import {
+ createURLRedirection,
+ listURLRedirections,
+} from "~/gen/proto/shorten/v1/shorten-ShortenService_connectquery";
import useAppForm from "../form/appform";
import { Button } from "../ui/button";
+import { useQueryClient } from "@tanstack/solid-query";
const CreateRedirectionForm = () => {
const mutation = useConnectMutation(createURLRedirection);
+ const queryClient = useQueryClient();
const form = useAppForm(() => ({
defaultValues: {
@@ -16,6 +24,10 @@ const CreateRedirectionForm = () => {
url: values.value.url,
shortCode: values.value.slug,
});
+ queryClient.invalidateQueries({
+ queryKey: getConnectQueryKey(listURLRedirections),
+ });
+ form.reset();
},
}));
return (
@@ -36,7 +48,7 @@ const CreateRedirectionForm = () => {
)}
diff --git a/src/integrations/connect-query/solid.tsx b/src/integrations/connect-query/solid.tsx
index b62580f..b35207c 100644
--- a/src/integrations/connect-query/solid.tsx
+++ b/src/integrations/connect-query/solid.tsx
@@ -88,3 +88,20 @@ export function useConnectMutation<
};
});
}
+
+export function getConnectQueryKey<
+ I extends DescMessage,
+ O extends DescMessage
+>(
+ schema: DescMethodUnary,
+ input?: MessageInitShape,
+): [string, { serviceName: string; methodName: string; input?: MessageInitShape }] {
+ return [
+ "connect-query",
+ {
+ serviceName: schema.parent.typeName,
+ methodName: schema.name,
+ ...(input !== undefined ? { input } : {}),
+ },
+ ];
+}