diff --git a/app/web/src/components/ProjectCell/ProjectCell.tsx b/app/web/src/components/ProjectCell/ProjectCell.tsx
index 30a2b36..75fc19b 100644
--- a/app/web/src/components/ProjectCell/ProjectCell.tsx
+++ b/app/web/src/components/ProjectCell/ProjectCell.tsx
@@ -2,6 +2,8 @@ import { useMutation } from '@redwoodjs/web'
import { toast } from '@redwoodjs/web/toast'
import { navigate, routes } from '@redwoodjs/router'
import { useAuth } from '@redwoodjs/auth'
+import { useIdeState } from 'src/helpers/hooks/useIdeState'
+import { IdeContext } from 'src/helpers/hooks/useIdeContext'
import ProjectProfile from 'src/components/ProjectProfile/ProjectProfile'
import { QUERY as PROJECT_REACTION_QUERY } from 'src/components/ProjectReactionsCell'
@@ -120,26 +122,20 @@ export const Empty = () =>
Empty
export const Failure = ({ error }) =>
Error: {error.message}
-export const Success = ({
- userProject,
- variables: { isEditable },
- refetch,
-}) => {
+export const Success = ({ userProject, refetch }) => {
const { currentUser } = useAuth()
- const [updateProject, { loading, error }] = useMutation(
- UPDATE_PROJECT_MUTATION,
- {
- onCompleted: ({ updateProject }) => {
- navigate(
- routes.project({
- userName: updateProject.user.userName,
- projectTitle: updateProject.title,
- })
- )
- toast.success('Project updated.')
- },
- }
- )
+ const [state, thunkDispatch] = useIdeState()
+ const [updateProject] = useMutation(UPDATE_PROJECT_MUTATION, {
+ onCompleted: ({ updateProject }) => {
+ navigate(
+ routes.project({
+ userName: updateProject.user.userName,
+ projectTitle: updateProject.title,
+ })
+ )
+ toast.success('Project updated.')
+ },
+ })
const [createProject] = useMutation(CREATE_PROJECT_MUTATION, {
onCompleted: ({ createProject }) => {
navigate(
@@ -160,7 +156,7 @@ export const Success = ({
refetch()
}
const [deleteProject] = useMutation(DELETE_PROJECT_MUTATION, {
- onCompleted: ({ deleteProject }) => {
+ onCompleted: () => {
navigate(routes.home())
toast.success('Project deleted.')
},
@@ -206,15 +202,27 @@ export const Success = ({
})
return (
-
+
+
+
)
}
diff --git a/app/web/src/components/ProjectProfile/ProjectProfile.tsx b/app/web/src/components/ProjectProfile/ProjectProfile.tsx
index b5bf735..9fe52dd 100644
--- a/app/web/src/components/ProjectProfile/ProjectProfile.tsx
+++ b/app/web/src/components/ProjectProfile/ProjectProfile.tsx
@@ -10,6 +10,7 @@ import Button from 'src/components/Button/Button'
import ProjectReactionsCell from '../ProjectReactionsCell'
import { countEmotes } from 'src/helpers/emote'
import { getActiveClasses } from 'get-active-classes'
+import TopNav from 'src/components/TopNav/TopNav'
import IdeHeader from 'src/components/IdeHeader/IdeHeader'
import CadPackage from 'src/components/CadPackage/CadPackage'
import Gravatar from 'src/components/Gravatar/Gravatar'
@@ -50,7 +51,7 @@ const ProjectProfile = ({
projectTitle: project?.title,
})
)
- }, [currentUser])
+ }, [currentUser, project?.title, userProject.userName])
useIdeInit(project?.cadPackage, project?.code, 'viewer')
const [newDescription, setNewDescription] = useState(project?.description)
const onDescriptionChange = (description) => setNewDescription(description())
@@ -70,14 +71,9 @@ const ProjectProfile = ({
<>
- {}}
- projectOwner={userProject?.userName}
- projectOwnerImage={userProject?.image}
- projectOwnerId={userProject?.id}
- projectTitle={project?.title}
- projectId={project?.id}
- />
+
+
+
diff --git a/app/web/src/components/TopNav/TopNav.tsx b/app/web/src/components/TopNav/TopNav.tsx
new file mode 100644
index 0000000..0f015eb
--- /dev/null
+++ b/app/web/src/components/TopNav/TopNav.tsx
@@ -0,0 +1,31 @@
+import { Link, routes } from '@redwoodjs/router'
+import Svg from 'src/components/Svg/Svg'
+import NavPlusButton from 'src/components/NavPlusButton'
+import ProfileSlashLogin from 'src/components/ProfileSlashLogin'
+import { ReactNode } from 'react'
+interface IdeHeaderProps {
+ children: ReactNode
+}
+
+const TopNav = ({ children }: IdeHeaderProps) => {
+ return (
+
+ )
+}
+
+export default TopNav
diff --git a/app/web/src/components/UserProfile/UserProfile.tsx b/app/web/src/components/UserProfile/UserProfile.tsx
index ae6cfb2..0ffe9b5 100644
--- a/app/web/src/components/UserProfile/UserProfile.tsx
+++ b/app/web/src/components/UserProfile/UserProfile.tsx
@@ -1,9 +1,8 @@
import { useEffect, useReducer } from 'react'
import { useAuth } from '@redwoodjs/auth'
-import { Link, navigate, routes } from '@redwoodjs/router'
+import { navigate, routes } from '@redwoodjs/router'
import ProjectsOfUser from 'src/components/ProjectsOfUserCell'
-import IdeHeader from 'src/components/IdeHeader/IdeHeader'
-import Svg from 'src/components/Svg/Svg'
+import TopNav from 'src/components/TopNav/TopNav'
import {
fieldComponents,
fieldReducer,
@@ -27,13 +26,7 @@ function buildFieldsConfig(fieldsConfig, user, hasPermissionToEdit) {
)
}
-const UserProfile = ({
- user,
- isEditing,
- loading,
- onSave,
- error,
-}: UserProfileType) => {
+const UserProfile = ({ user, isEditing, onSave }: UserProfileType) => {
const { currentUser } = useAuth()
const hasPermissionToEdit = currentUser?.sub === user.id
useEffect(() => {
@@ -60,14 +53,14 @@ const UserProfile = ({
<>
- {}}
projectOwner={user?.userName}
projectOwnerImage={user?.image}
projectOwnerId={user?.id}
>
-
+
diff --git a/app/web/src/pages/DevIdePage/DevIdePage.tsx b/app/web/src/pages/DevIdePage/DevIdePage.tsx
index 0c98170..a39195f 100644
--- a/app/web/src/pages/DevIdePage/DevIdePage.tsx
+++ b/app/web/src/pages/DevIdePage/DevIdePage.tsx
@@ -4,6 +4,7 @@ import { Toaster } from '@redwoodjs/web/toast'
import { useIdeState } from 'src/helpers/hooks/useIdeState'
import type { Project } from 'src/components/IdeProjectCell/IdeProjectCell'
import { IdeContext } from 'src/helpers/hooks/useIdeContext'
+import type { CadPackageType } from 'src/components/CadPackage/CadPackage'
interface Props {
cadPackage: string
@@ -21,7 +22,9 @@ const DevIdePage = ({ cadPackage, project }: Props) => {
/>
-
+
)
diff --git a/app/web/src/pages/ProjectPage/ProjectPage.tsx b/app/web/src/pages/ProjectPage/ProjectPage.tsx
index 4bd6c23..3110a8f 100644
--- a/app/web/src/pages/ProjectPage/ProjectPage.tsx
+++ b/app/web/src/pages/ProjectPage/ProjectPage.tsx
@@ -2,14 +2,11 @@ import { useAuth } from '@redwoodjs/auth'
import ProjectCell from 'src/components/ProjectCell'
import Seo from 'src/components/Seo/Seo'
-import { useIdeState } from 'src/helpers/hooks/useIdeState'
-import { IdeContext } from 'src/helpers/hooks/useIdeContext'
import { Toaster } from '@redwoodjs/web/toast'
import { makeSocialPublicId } from 'src/helpers/hooks/useUpdateProjectImages'
const ProjectPage = ({ userName, projectTitle }) => {
const { currentUser } = useAuth()
- const [state, thunkDispatch] = useIdeState()
const socialImageUrl = `http://res.cloudinary.com/irevdev/image/upload/c_scale,w_1200/v1/CadHub/${makeSocialPublicId(
userName,
projectTitle
@@ -23,13 +20,11 @@ const ProjectPage = ({ userName, projectTitle }) => {
lang="en-US"
/>
-
-
-
+
>
)
}