Fix file list loading

This commit is contained in:
2024-10-22 00:11:03 +02:00
parent ffe82b335a
commit 1c59f8da4f
3 changed files with 23 additions and 17 deletions

View File

@@ -82,7 +82,7 @@ func (fs *FileSystem) walkDirectory(dir, prefix string) ([]FileNode, error) {
return nil, err return nil, err
} }
var nodes []FileNode nodes := make([]FileNode, 0)
for _, entry := range entries { for _, entry := range entries {
name := entry.Name() name := entry.Name()
path := filepath.Join(prefix, name) path := filepath.Join(prefix, name)

View File

@@ -7,9 +7,10 @@ import React, {
} from 'react'; } from 'react';
import { useMantineColorScheme } from '@mantine/core'; import { useMantineColorScheme } from '@mantine/core';
import { import {
fetchLastWorkspace, fetchLastWorkspaceId,
fetchWorkspaceSettings, fetchWorkspaceSettings,
saveWorkspaceSettings, saveWorkspaceSettings,
getWorkspace,
} from '../services/api'; } from '../services/api';
import { DEFAULT_SETTINGS } from '../utils/constants'; import { DEFAULT_SETTINGS } from '../utils/constants';
@@ -22,25 +23,30 @@ export const WorkspaceProvider = ({ children }) => {
const { colorScheme, setColorScheme } = useMantineColorScheme(); const { colorScheme, setColorScheme } = useMantineColorScheme();
useEffect(() => { useEffect(() => {
const loadWorkspaceAndSettings = async () => { const loadWorkspace = async () => {
try { try {
const workspace = await fetchLastWorkspace(); const { lastWorkspaceId } = await fetchLastWorkspaceId();
setCurrentWorkspace(workspace); if (lastWorkspaceId) {
const workspace = await getWorkspace(lastWorkspaceId);
if (workspace) { console.log('Workspace: ', workspace);
const workspaceSettings = await fetchWorkspaceSettings(workspace.id); setCurrentWorkspace(workspace);
const workspaceSettings = await fetchWorkspaceSettings(
lastWorkspaceId
);
setSettings(workspaceSettings.settings); setSettings(workspaceSettings.settings);
setColorScheme(workspaceSettings.settings.theme); setColorScheme(workspaceSettings.settings.theme);
} else {
console.warn('No last workspace found');
} }
} catch (error) { } catch (error) {
console.error('Failed to load workspace or settings:', error); console.error('Failed to initialize workspace:', error);
} finally { } finally {
setLoading(false); setLoading(false);
} }
}; };
loadWorkspaceAndSettings(); loadWorkspace();
}, [setColorScheme]); }, []);
const updateSettings = useCallback( const updateSettings = useCallback(
async (newSettings) => { async (newSettings) => {
@@ -68,12 +74,11 @@ export const WorkspaceProvider = ({ children }) => {
const value = { const value = {
currentWorkspace, currentWorkspace,
setCurrentWorkspace,
settings, settings,
updateSettings, updateSettings,
toggleColorScheme,
loading, loading,
colorScheme, colorScheme,
toggleColorScheme,
}; };
return ( return (

View File

@@ -1,13 +1,13 @@
import { useState, useCallback } from 'react'; import { useState, useCallback, useEffect } from 'react';
import { fetchFileList } from '../services/api'; import { fetchFileList } from '../services/api';
import { useWorkspace } from '../contexts/WorkspaceContext'; import { useWorkspace } from '../contexts/WorkspaceContext';
export const useFileList = () => { export const useFileList = () => {
const [files, setFiles] = useState([]); const [files, setFiles] = useState([]);
const { currentWorkspace } = useWorkspace(); const { currentWorkspace, loading: workspaceLoading } = useWorkspace();
const loadFileList = useCallback(async () => { const loadFileList = useCallback(async () => {
if (!currentWorkspace) return; if (!currentWorkspace || workspaceLoading) return;
try { try {
const fileList = await fetchFileList(currentWorkspace.id); const fileList = await fetchFileList(currentWorkspace.id);
@@ -18,8 +18,9 @@ export const useFileList = () => {
} }
} catch (error) { } catch (error) {
console.error('Failed to load file list:', error); console.error('Failed to load file list:', error);
setFiles([]);
} }
}, [currentWorkspace]); }, [currentWorkspace, workspaceLoading]);
return { files, loadFileList }; return { files, loadFileList };
}; };