Fix event propagation in sidebar

This commit is contained in:
Dries Augustyns
2025-12-04 21:20:40 +01:00
parent b4b7cc78f1
commit 8c348d3580
2 changed files with 41 additions and 9 deletions
+11 -1
View File
@@ -1,4 +1,5 @@
import {zodResolver} from '@hookform/resolvers/zod';
import type {Project} from '@plunk/db';
import {ProjectSchemas} from '@plunk/shared';
import {
Button,
@@ -21,11 +22,13 @@ import React, {useState} from 'react';
import {useForm} from 'react-hook-form';
import type {z} from 'zod';
import {useActiveProject} from '../../lib/contexts/ActiveProjectProvider';
import {useProjects} from '../../lib/hooks/useProject';
import {network} from '../../lib/network';
export default function CreateProject() {
const {mutate: projectsMutate} = useProjects();
const {setActiveProject} = useActiveProject();
const router = useRouter();
const form = useForm<z.infer<typeof ProjectSchemas.create>>({
@@ -39,11 +42,18 @@ export default function CreateProject() {
async function onSubmit(values: z.infer<typeof ProjectSchemas.create>) {
try {
await network.fetch<{success: boolean}, typeof ProjectSchemas.create>('POST', '/users/@me/projects', values);
const newProject = await network.fetch<Project, typeof ProjectSchemas.create>(
'POST',
'/users/@me/projects',
values,
);
// Refresh the projects list
await projectsMutate();
// Set the newly created project as active
setActiveProject(newProject);
// Redirect to dashboard
await router.push('/');
} catch (error) {