diff --git a/app/web/src/components/CaptureButton/CaptureButton.tsx b/app/web/src/components/CaptureButton/CaptureButton.tsx index c0b66ce..213bb6d 100644 --- a/app/web/src/components/CaptureButton/CaptureButton.tsx +++ b/app/web/src/components/CaptureButton/CaptureButton.tsx @@ -60,7 +60,6 @@ const CaptureButton = ({ canEdit, TheButton, shouldUpdateImage }) => { }) updateCanvasSize(oldSize) } else { - console.log(project?.title) imgBlob = state.objectData.data } const config = { diff --git a/app/web/src/components/EditableProjecTitle/EditableProjecTitle.tsx b/app/web/src/components/EditableProjecTitle/EditableProjecTitle.tsx index ace7a3c..1f6e42d 100644 --- a/app/web/src/components/EditableProjecTitle/EditableProjecTitle.tsx +++ b/app/web/src/components/EditableProjecTitle/EditableProjecTitle.tsx @@ -36,8 +36,12 @@ const EditableProjectTitle = ({ toast.success('Project updated.') }, }) - const onTitleChange = ({ target }) => - setNewTitle(target.value.replace(/([^a-zA-Z\d_:])/g, '-')) + const onTitleChange = ({ target }) => { + if (target.value.length > 25) { + toast.error('Titles must be 25 or less characters') + } + setNewTitle(target.value.replace(/([^a-zA-Z\d_:])/g, '-').slice(0, 25)) + } return ( <> {!inEditMode && ( @@ -68,7 +72,7 @@ const EditableProjectTitle = ({ / ) -const BigLoadingPing = () => ( +export const BigLoadingPing = (
diff --git a/app/web/src/components/IdeViewer/IdeViewer.tsx b/app/web/src/components/IdeViewer/IdeViewer.tsx index 305c2f4..85675b6 100644 --- a/app/web/src/components/IdeViewer/IdeViewer.tsx +++ b/app/web/src/components/IdeViewer/IdeViewer.tsx @@ -36,14 +36,13 @@ function Controls({ onCameraChange, onDragStart, onInit }) { const { camera, gl } = threeInstance useEffect(() => { onInit(threeInstance) - }, []) - useEffect(() => { // init camera position camera.position.x = 200 camera.position.y = 140 camera.position.z = 20 camera.far = 10000 camera.fov = 22.5 // matches default openscad fov + camera.updateProjectionMatrix() // Order matters with Euler rotations // We want it to rotate around the z or vertical axis first then the x axis to match openscad @@ -163,7 +162,7 @@ const IdeViewer = ({ Loading }) => { const indigo900 = '#312E81' return (
- {state.isLoading && } + {state.isLoading && Loading} {image && (
{ if (!!error !== nowError) { setNowError(!!error) } - if (project?.user?.id !== currentUser?.sub) { + if (!currentUser || project?.user?.id !== currentUser?.sub) { return () => console.log('not your project') } return (input: Prisma.ProjectUpdateInput) => { diff --git a/app/web/src/components/ProfileSlashLogin/ProfileSlashLogin.tsx b/app/web/src/components/ProfileSlashLogin/ProfileSlashLogin.tsx index afd3d9a..eec73a6 100644 --- a/app/web/src/components/ProfileSlashLogin/ProfileSlashLogin.tsx +++ b/app/web/src/components/ProfileSlashLogin/ProfileSlashLogin.tsx @@ -7,6 +7,7 @@ import Popover from '@material-ui/core/Popover' import useUser from 'src/helpers/hooks/useUser' import ImageUploader from 'src/components/ImageUploader' import LoginModal from 'src/components/LoginModal' +import Gravatar from 'src/components//Gravatar/Gravatar' const ProfileSlashLogin = () => { const { logOut, isAuthenticated, currentUser, client } = useAuth() @@ -43,21 +44,14 @@ const ProfileSlashLogin = () => {
{isAuthenticated ? (
) : ( diff --git a/app/web/src/components/ProfileViewer/ProfileViewer.tsx b/app/web/src/components/ProfileViewer/ProfileViewer.tsx index 87ede95..4caa79f 100644 --- a/app/web/src/components/ProfileViewer/ProfileViewer.tsx +++ b/app/web/src/components/ProfileViewer/ProfileViewer.tsx @@ -1,12 +1,7 @@ import { lazy, Suspense } from 'react' const IdeViewer = lazy(() => import('src/components/IdeViewer/IdeViewer')) import { use3dViewerResize } from 'src/helpers/hooks/use3dViewerResize' - -const BigLoadingPing = () => ( -
-
-
-) +import { BigLoadingPing } from 'src/components/IdeContainer/IdeContainer' const ProfileViewer = () => { const { viewerDomRef } = use3dViewerResize() diff --git a/app/web/src/helpers/hooks/useUpdateProject.ts b/app/web/src/helpers/hooks/useUpdateProject.ts index f398f06..63cc073 100644 --- a/app/web/src/helpers/hooks/useUpdateProject.ts +++ b/app/web/src/helpers/hooks/useUpdateProject.ts @@ -6,7 +6,10 @@ const UPDATE_PROJECT_MUTATION_HOOK = gql` $input: UpdateProjectInput! ) { updateProject: updateProject(id: $id, input: $input) { - id + title + user { + userName + } } } ` diff --git a/app/web/src/pages/DevIdePage/DevIdePage.tsx b/app/web/src/pages/DevIdePage/DevIdePage.tsx index 399acee..19b70f4 100644 --- a/app/web/src/pages/DevIdePage/DevIdePage.tsx +++ b/app/web/src/pages/DevIdePage/DevIdePage.tsx @@ -21,7 +21,7 @@ const DevIdePage = ({ cadPackage, project }: Props) => { /> - +
) diff --git a/app/web/src/pages/ProjectPage/ProjectPage.tsx b/app/web/src/pages/ProjectPage/ProjectPage.tsx index d674ff2..7e401ca 100644 --- a/app/web/src/pages/ProjectPage/ProjectPage.tsx +++ b/app/web/src/pages/ProjectPage/ProjectPage.tsx @@ -4,6 +4,7 @@ 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' const ProjectPage = ({ userName, projectTitle }) => { const { currentUser } = useAuth() @@ -11,6 +12,7 @@ const ProjectPage = ({ userName, projectTitle }) => { return ( <> +