Skip to content

Commit

Permalink
fix: make reload + cache folder more robust
Browse files Browse the repository at this point in the history
  • Loading branch information
havard-hoiby-adsk committed Nov 8, 2023
1 parent 544987f commit d92cdf8
Showing 1 changed file with 44 additions and 34 deletions.
78 changes: 44 additions & 34 deletions analyses/dynamo/src/floatingpanel/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ import { useDynamoConnector } from "./DynamoConnector.ts";
import { TemplatesAndLibrary } from "./pages/components/TemplatesAndLibrary.tsx";
import { StatusBlock } from "./pages/components/StatusBlock.tsx";

let dynamoFolder = "";
try {
dynamoFolder = localStorage.getItem("dynamo-folder") || "";
} catch (e) {
console.error(e);
}

function LoadingScriptList() {
return (
<div style={{ width: "100%" }}>
Expand Down Expand Up @@ -62,40 +55,57 @@ function ScriptListItem({ name, code, setScript }: any) {
function ScriptList({ setScript, dynamoHandler }: any) {
const [programs, setPrograms] = useState({});
const [error, setError] = useState<string | null>(null);
const [folder, setFolder] = useState(dynamoFolder);
const [folder, setFolder] = useState<undefined | string>();
const [isLoading, setIsLoading] = useState(false);

const reload = useCallback(() => {
(async function () {
if (!folder) return;
setIsLoading(true);
try {
setError(null);
setPrograms([]);
const localFiles = await dynamoHandler("getFolderInfo", {
path: folder,
});
localStorage.setItem("dynamo-folder", folder);
const localPrograms = Object.fromEntries(
localFiles.map((file: any) => [file.name, file]),
);
setPrograms(localPrograms);
setIsLoading(false);
} catch (e) {
setIsLoading(false);
setError(
"Could not load files. Please check the folder name and try to load again.",
);
useEffect(() => {
if (!folder) {
const dynamoFolder = localStorage.getItem("dynamo-folder");
if (dynamoFolder) {
setFolder(dynamoFolder);
reload(dynamoFolder);
}
})();
}, [folder]);
}
}, []);

useEffect(reload, []);
const reload = useCallback(
(folder: string | undefined) => {
(async function () {
if (!folder) return;
setIsLoading(true);
try {
setError(null);
setPrograms([]);
const localFiles = await dynamoHandler("getFolderInfo", {
path: folder,
});
localStorage.setItem("dynamo-folder", folder);
const localPrograms = Object.fromEntries(
localFiles.map((file: any) => [file.name, file])
);
setPrograms(localPrograms);
setIsLoading(false);
} catch (e) {
setIsLoading(false);
setError(
"Could not load files. Please check the folder name and try to load again."
);
}
})();
},
[folder]
);

return (
<div>
<TemplatesAndLibrary />
<div style={{ width: "100%", height: "1px", backgroundColor: "var(--divider-lightweight)" }} />
<div
style={{
width: "100%",
height: "1px",
backgroundColor: "var(--divider-lightweight)",
}}
/>
<br />
<div
style={{
Expand All @@ -120,7 +130,7 @@ function ScriptList({ setScript, dynamoHandler }: any) {
}}
></weave-input>

<weave-button variant="solid" onClick={reload}>
<weave-button variant="solid" onClick={() => reload(folder)}>
Load
</weave-button>
</div>
Expand Down

0 comments on commit d92cdf8

Please sign in to comment.