mirror of
https://github.com/lordmathis/lemma.git
synced 2025-11-06 16:04:23 +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
|
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)
|
||||||
|
|||||||
@@ -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();
|
||||||
|
if (lastWorkspaceId) {
|
||||||
|
const workspace = await getWorkspace(lastWorkspaceId);
|
||||||
|
console.log('Workspace: ', workspace);
|
||||||
setCurrentWorkspace(workspace);
|
setCurrentWorkspace(workspace);
|
||||||
|
const workspaceSettings = await fetchWorkspaceSettings(
|
||||||
if (workspace) {
|
lastWorkspaceId
|
||||||
const workspaceSettings = await fetchWorkspaceSettings(workspace.id);
|
);
|
||||||
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 (
|
||||||
|
|||||||
@@ -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 };
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user