diff --git a/app/api/src/services/projects/projects.ts b/app/api/src/services/projects/projects.ts index 94b3121..ece8a60 100644 --- a/app/api/src/services/projects/projects.ts +++ b/app/api/src/services/projects/projects.ts @@ -90,14 +90,16 @@ export const forkProject = async ({ input }) => { title = await generateUniqueString(title, isUniqueCallback) const { code, description, cadPackage } = projectData + const data = foreignKeyReplacement({ + ...input, + title, + code, + description, + cadPackage, + }) + console.log('forking data', data) return db.project.create({ - data: foreignKeyReplacement({ - ...input, - title, - code, - description, - cadPackage, - }), + data }) } diff --git a/app/web/src/components/IdeHeader/IdeHeader.tsx b/app/web/src/components/IdeHeader/IdeHeader.tsx index 02e3a91..24d33b9 100644 --- a/app/web/src/components/IdeHeader/IdeHeader.tsx +++ b/app/web/src/components/IdeHeader/IdeHeader.tsx @@ -12,6 +12,7 @@ import { useMutation } from '@redwoodjs/web' import Gravatar from 'src/components/Gravatar/Gravatar' import EditableProjectTitle from 'src/components/EditableProjecTitle/EditableProjecTitle' import CaptureButton from 'src/components/CaptureButton/CaptureButton' +import { toast } from '@redwoodjs/web/toast' import { ReactNode } from 'react' @@ -20,8 +21,10 @@ const FORK_PROJECT_MUTATION = gql` forkProject(input: $input) { id title - description - code + user { + id + userName + } } } ` @@ -144,7 +147,14 @@ function DefaultTopButtons({ }) { const { currentUser } = useAuth() const [createFork] = useMutation(FORK_PROJECT_MUTATION, { - onCompleted: () => {}, + onCompleted: ({ forkProject }) => { + navigate( + routes.ide({ + userName: forkProject?.user?.userName, + projectTitle: forkProject?.title, + }) + ) + }, }) const handleFork = () => { const prom = createFork({ @@ -155,11 +165,11 @@ function DefaultTopButtons({ }, }, }) - // toast.promise(prom, { - // loading: 'Saving Image/s', - // success: Image/s saved!, - // error: Problem saving., - // }) + toast.promise(prom, { + loading: 'Forking...', + success: Forked successfully!, + error: Problem forking., + }) } return ( @@ -244,7 +254,7 @@ function DefaultTopButtons({ ) }} - {currentUser?.id && ( + {currentUser?.sub && ( emote) useEffect(() => { @@ -145,6 +147,9 @@ const ProjectProfile = ({ {new Date(project?.updatedAt).toDateString()} + { project.forkedFrom && + { project.forkedFrom.title } by { project.forkedFrom.user.userName } + }