mirror of
https://github.com/lordmathis/lemma.git
synced 2025-11-05 15:44:21 +00:00
Fix file list loading
This commit is contained in:
@@ -82,7 +82,7 @@ func (fs *FileSystem) walkDirectory(dir, prefix string) ([]FileNode, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var nodes []FileNode
|
||||
nodes := make([]FileNode, 0)
|
||||
for _, entry := range entries {
|
||||
name := entry.Name()
|
||||
path := filepath.Join(prefix, name)
|
||||
|
||||
@@ -7,9 +7,10 @@ import React, {
|
||||
} from 'react';
|
||||
import { useMantineColorScheme } from '@mantine/core';
|
||||
import {
|
||||
fetchLastWorkspace,
|
||||
fetchLastWorkspaceId,
|
||||
fetchWorkspaceSettings,
|
||||
saveWorkspaceSettings,
|
||||
getWorkspace,
|
||||
} from '../services/api';
|
||||
import { DEFAULT_SETTINGS } from '../utils/constants';
|
||||
|
||||
@@ -22,25 +23,30 @@ export const WorkspaceProvider = ({ children }) => {
|
||||
const { colorScheme, setColorScheme } = useMantineColorScheme();
|
||||
|
||||
useEffect(() => {
|
||||
const loadWorkspaceAndSettings = async () => {
|
||||
const loadWorkspace = async () => {
|
||||
try {
|
||||
const workspace = await fetchLastWorkspace();
|
||||
setCurrentWorkspace(workspace);
|
||||
|
||||
if (workspace) {
|
||||
const workspaceSettings = await fetchWorkspaceSettings(workspace.id);
|
||||
const { lastWorkspaceId } = await fetchLastWorkspaceId();
|
||||
if (lastWorkspaceId) {
|
||||
const workspace = await getWorkspace(lastWorkspaceId);
|
||||
console.log('Workspace: ', workspace);
|
||||
setCurrentWorkspace(workspace);
|
||||
const workspaceSettings = await fetchWorkspaceSettings(
|
||||
lastWorkspaceId
|
||||
);
|
||||
setSettings(workspaceSettings.settings);
|
||||
setColorScheme(workspaceSettings.settings.theme);
|
||||
} else {
|
||||
console.warn('No last workspace found');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to load workspace or settings:', error);
|
||||
console.error('Failed to initialize workspace:', error);
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
loadWorkspaceAndSettings();
|
||||
}, [setColorScheme]);
|
||||
loadWorkspace();
|
||||
}, []);
|
||||
|
||||
const updateSettings = useCallback(
|
||||
async (newSettings) => {
|
||||
@@ -68,12 +74,11 @@ export const WorkspaceProvider = ({ children }) => {
|
||||
|
||||
const value = {
|
||||
currentWorkspace,
|
||||
setCurrentWorkspace,
|
||||
settings,
|
||||
updateSettings,
|
||||
toggleColorScheme,
|
||||
loading,
|
||||
colorScheme,
|
||||
toggleColorScheme,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { useState, useCallback } from 'react';
|
||||
import { useState, useCallback, useEffect } from 'react';
|
||||
import { fetchFileList } from '../services/api';
|
||||
import { useWorkspace } from '../contexts/WorkspaceContext';
|
||||
|
||||
export const useFileList = () => {
|
||||
const [files, setFiles] = useState([]);
|
||||
const { currentWorkspace } = useWorkspace();
|
||||
const { currentWorkspace, loading: workspaceLoading } = useWorkspace();
|
||||
|
||||
const loadFileList = useCallback(async () => {
|
||||
if (!currentWorkspace) return;
|
||||
if (!currentWorkspace || workspaceLoading) return;
|
||||
|
||||
try {
|
||||
const fileList = await fetchFileList(currentWorkspace.id);
|
||||
@@ -18,8 +18,9 @@ export const useFileList = () => {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to load file list:', error);
|
||||
setFiles([]);
|
||||
}
|
||||
}, [currentWorkspace]);
|
||||
}, [currentWorkspace, workspaceLoading]);
|
||||
|
||||
return { files, loadFileList };
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user