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);
}