diff --git a/src/components/App/component.tsx b/src/components/App/component.tsx index 5c1d4f4..c9b93e8 100644 --- a/src/components/App/component.tsx +++ b/src/components/App/component.tsx @@ -44,39 +44,42 @@ const App = () => { const [projectId] = useLocalStorage("patchProjectId", "new"); const { loadProject } = useProjectActions(projectId); const onVmInit = () => { - loadProject(); + loadProject(); } useInitializedVm(onVmInit); useThreadAutoSave(patchVM, saveTargetThreads, editorTab); useMonitorProjectChange(setProjectChanged, [targetIds]) - + return ( - - - - - - + {!patchVM ? + + : + + + + + + { justifyContent: "space-between", }}> - }/> - }/> - }/> - }/> + } /> + } /> + } /> + } /> - + - - - + + + + - - + + } + ); } diff --git a/src/components/SpritePane/SpriteCard.tsx b/src/components/SpritePane/SpriteCard.tsx index ea0cc10..bcfc71f 100644 --- a/src/components/SpritePane/SpriteCard.tsx +++ b/src/components/SpritePane/SpriteCard.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import React, { useContext, useEffect, useState } from 'react'; import { ItemCard } from '../ItemCard'; import getCostumeUrl from '../../util/get-costume-url'; import { Target } from '../EditorPane/types'; @@ -13,21 +13,50 @@ type SpriteCardProps = { export function SpriteCard({ target }: SpriteCardProps) { const [editingTarget, setEditingTarget] = useEditingTarget(); - + let inputName = '' + + // Upon a name change, re-render the sprite's card in a local variable. + // useEffect(() => { + // if ((target?.sprite?.name).length > 16) { + // inputName = (target?.sprite?.name).substring(0, 13) + '...' + // } + // else { + // inputName = target?.sprite?.name + // } + + // }, [target?.sprite?.name]) + const onClick = () => { setEditingTarget(target.id); } - return( - - - + return ( + <> + {target?.sprite?.name.length > 13 ? + + + + : + + + + } + + + ); } \ No newline at end of file diff --git a/src/components/SpritePane/SpriteName.tsx b/src/components/SpritePane/SpriteName.tsx index 7e0f2dd..f430d0c 100644 --- a/src/components/SpritePane/SpriteName.tsx +++ b/src/components/SpritePane/SpriteName.tsx @@ -37,17 +37,21 @@ export function SpriteName() { setName(editingTarget.sprite.name); }, [editingTarget]); - return( - - { + console.log("user is typing") + }, [name]) + + return ( + + - } color="success" onClick={handleSave} disabled={nameSaved || !patchVM.editingTarget.isSprite()} sx={{height: '40px'}} /> + } color="success" onClick={handleSave} disabled={nameSaved || !patchVM.editingTarget.isSprite()} sx={{ height: '40px' }} /> ); } \ No newline at end of file diff --git a/src/components/TopBar/FileDropDown/component.tsx b/src/components/TopBar/FileDropDown/component.tsx index 6235ab4..090c835 100644 --- a/src/components/TopBar/FileDropDown/component.tsx +++ b/src/components/TopBar/FileDropDown/component.tsx @@ -52,7 +52,7 @@ export const FileDropDown = ({ cloudEnabled }: FielDropDownProps) => { } const authenticatedOptions = [ - { label: "New", onClick: handleNew}, + { label: "New Blank Project", onClick: handleNew}, { label: "Save Now", onClick: handleSaveNow}, { label: "Save As A Copy", onClick: handleSaveCopy}, { label: "Load From Your Computer", onClick: handleUpload}, diff --git a/src/components/TopBar/component.tsx b/src/components/TopBar/component.tsx index 3936790..2006b4b 100644 --- a/src/components/TopBar/component.tsx +++ b/src/components/TopBar/component.tsx @@ -76,6 +76,7 @@ const SaveButton = () => { const { saveProject } = useProjectActions(); const handleSaveNow = async () => { + console.log("Pressed save") await saveAllThreads(); if (user) { saveProject(projectName); diff --git a/src/hooks/useProjectActions.ts b/src/hooks/useProjectActions.ts index 22a3cf8..648c9fa 100644 --- a/src/hooks/useProjectActions.ts +++ b/src/hooks/useProjectActions.ts @@ -56,6 +56,7 @@ export const useProjectActions = (defaultProjectId?: string) => { if (!projectSnapshot.exists() || loadFailed) { console.warn("Project does not exist. Creating default project."); setNewProject(true); + // TODO: debug this when new project is loaded. const vmStateJson = defaultPatchProject as unknown; await loadSerializedProject(vmStateJson as VmState, true); }