Skip to content

Commit 900b9ed

Browse files
MarqleMarqle
authored andcommitted
update storage
1 parent 5b71fff commit 900b9ed

23 files changed

Lines changed: 529 additions & 317 deletions

File tree

‎src/mobile-web/vite.config.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export default defineConfig({
1212
build: {
1313
outDir: 'dist',
1414
assetsDir: 'assets',
15+
minify: false,
1516
},
1617
base: './',
1718
});

‎src/web-ui/src/app/components/NavPanel/MainNav.tsx‎

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -239,11 +239,12 @@ const MainNav: React.FC<MainNavProps> = ({
239239

240240
const handleOpenProject = useCallback(async () => {
241241
try {
242-
const { open } = await import('@tauri-apps/plugin-dialog');
243-
const selected = await open({ directory: true, multiple: false, title: t('header.selectProjectDirectory') });
244-
if (selected && typeof selected === 'string') {
245-
await workspaceManager.openWorkspace(selected);
246-
}
242+
// const { open } = await import('@tauri-apps/plugin-dialog');
243+
// const selected = await open({ directory: true, multiple: false, title: t('header.selectProjectDirectory') });
244+
// if (selected && typeof selected === 'string') {
245+
let path_manager = "/data/storage/el2/base/files/test";
246+
await workspaceManager.openWorkspace(path_manager);
247+
// }
247248
} catch (err) {
248249
log.error('Failed to open project', err);
249250
}
@@ -388,28 +389,28 @@ const MainNav: React.FC<MainNavProps> = ({
388389
{recentWorkspaces.map((workspace) => {
389390
const { hostPrefix, folderLabel, tooltip } = getRecentWorkspaceLineParts(workspace);
390391
return (
391-
<button
392-
key={workspace.id}
393-
type="button"
394-
className="bitfun-nav-panel__workspace-menu-item bitfun-nav-panel__workspace-menu-item--workspace"
395-
role="menuitem"
396-
title={tooltip}
397-
onClick={() => { void handleSwitchWorkspace(workspace.id); }}
398-
>
399-
<FolderOpen size={13} aria-hidden="true" />
400-
<span className="bitfun-nav-panel__workspace-menu-item-main">
401-
{hostPrefix ? (
402-
<>
403-
<span className="bitfun-nav-panel__workspace-menu-item-host">{hostPrefix}</span>
404-
<span className="bitfun-nav-panel__workspace-menu-item-host-sep" aria-hidden>
405-
·
406-
</span>
407-
</>
408-
) : null}
409-
<span className="bitfun-nav-panel__workspace-menu-item-name">{folderLabel}</span>
410-
</span>
411-
{workspace.id === currentWorkspace?.id ? <Check size={12} aria-hidden="true" /> : null}
412-
</button>
392+
<button
393+
key={workspace.id}
394+
type="button"
395+
className="bitfun-nav-panel__workspace-menu-item bitfun-nav-panel__workspace-menu-item--workspace"
396+
role="menuitem"
397+
title={tooltip}
398+
onClick={() => { void handleSwitchWorkspace(workspace.id); }}
399+
>
400+
<FolderOpen size={13} aria-hidden="true" />
401+
<span className="bitfun-nav-panel__workspace-menu-item-main">
402+
{hostPrefix ? (
403+
<>
404+
<span className="bitfun-nav-panel__workspace-menu-item-host">{hostPrefix}</span>
405+
<span className="bitfun-nav-panel__workspace-menu-item-host-sep" aria-hidden>
406+
·
407+
</span>
408+
</>
409+
) : null}
410+
<span className="bitfun-nav-panel__workspace-menu-item-name">{folderLabel}</span>
411+
</span>
412+
{workspace.id === currentWorkspace?.id ? <Check size={12} aria-hidden="true" /> : null}
413+
</button>
413414
);
414415
})}
415416
</div>

‎src/web-ui/src/app/components/NewProjectDialog/NewProjectDialog.tsx‎

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
Check,
1313
X
1414
} from 'lucide-react';
15-
import { open } from '@tauri-apps/plugin-dialog';
15+
// import { open } from '@tauri-apps/plugin-dialog';
1616
import { useTranslation } from 'react-i18next';
1717
import { createLogger } from '@/shared/utils/logger';
1818
import { Modal, Button, Input } from '@/component-library';
@@ -49,13 +49,7 @@ export const NewProjectDialog: React.FC<NewProjectDialogProps> = ({
4949
// Open directory picker dialog
5050
const handleSelectParentPath = useCallback(async () => {
5151
try {
52-
const selected = await open({
53-
directory: true,
54-
multiple: false,
55-
title: t('newProject.selectParentDirectory'),
56-
defaultPath: parentPath || defaultParentPath
57-
}) as string;
58-
52+
let selected = "/data/storage/el2/base/files";
5953
if (selected && typeof selected === 'string') {
6054
setParentPath(selected);
6155
setError('');

‎src/web-ui/src/app/components/RemoteConnectDialog/remoteConnectDisclaimerStorage.ts‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1+
import { storage } from "@/shared";
2+
13
export const REMOTE_CONNECT_DISCLAIMER_KEY = 'bitfun:remote-connect:disclaimer-agreed:v1';
24

35
export const getRemoteConnectDisclaimerAgreed = (): boolean => {
46
try {
5-
return localStorage.getItem(REMOTE_CONNECT_DISCLAIMER_KEY) === 'true';
7+
return storage.getItem(REMOTE_CONNECT_DISCLAIMER_KEY) === 'true';
68
} catch {
79
return false;
810
}
911
};
1012

1113
export const setRemoteConnectDisclaimerAgreed = (): void => {
1214
try {
13-
localStorage.setItem(REMOTE_CONNECT_DISCLAIMER_KEY, 'true');
15+
storage.setItem(REMOTE_CONNECT_DISCLAIMER_KEY, 'true');
1416
} catch {
1517
// Ignore storage failures and fall back to in-memory state.
1618
}

‎src/web-ui/src/app/layout/AppLayout.tsx‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { useApp } from '../hooks/useApp';
1717
import { useSceneStore } from '../stores/sceneStore';
1818
import { useShortcut } from '@/infrastructure/hooks/useShortcut';
1919
import { configManager } from '@/infrastructure/config';
20+
import { sessionStorageAdapter } from '@/shared';
2021

2122
type TransitionDirection = 'entering' | 'returning' | null;
2223
import { FlowChatManager } from '../../flow_chat/services/FlowChatManager';
@@ -191,10 +192,10 @@ const AppLayout: React.FC<AppLayoutProps> = ({ className = '' }) => {
191192
// Always initialize FlowChat so historical sessions list even when SSH is not connected yet.
192193
try {
193194
const explicitPreferredMode =
194-
sessionStorage.getItem('bitfun:flowchat:preferredMode') ||
195+
sessionStorageAdapter.getItem('bitfun:flowchat:preferredMode') ||
195196
undefined;
196197
if (explicitPreferredMode) {
197-
sessionStorage.removeItem('bitfun:flowchat:preferredMode');
198+
sessionStorageAdapter.removeItem('bitfun:flowchat:preferredMode');
198199
}
199200

200201
const initializationPreferredMode =
@@ -229,9 +230,9 @@ const AppLayout: React.FC<AppLayoutProps> = ({ className = '' }) => {
229230
ensureAssistantBootstrapForWorkspace(currentWorkspace, activeSessionId);
230231
}
231232

232-
const pendingDescription = sessionStorage.getItem('pendingProjectDescription');
233+
const pendingDescription = sessionStorageAdapter.getItem('pendingProjectDescription');
233234
if (pendingDescription && pendingDescription.trim()) {
234-
sessionStorage.removeItem('pendingProjectDescription');
235+
sessionStorageAdapter.removeItem('pendingProjectDescription');
235236

236237
setTimeout(async () => {
237238
try {
@@ -257,9 +258,9 @@ const AppLayout: React.FC<AppLayoutProps> = ({ className = '' }) => {
257258
}, 500);
258259
}
259260

260-
const pendingSettings = sessionStorage.getItem('pendingOpenSettings');
261+
const pendingSettings = sessionStorageAdapter.getItem('pendingOpenSettings');
261262
if (pendingSettings) {
262-
sessionStorage.removeItem('pendingOpenSettings');
263+
sessionStorageAdapter.removeItem('pendingOpenSettings');
263264
setTimeout(async () => {
264265
try {
265266
const { quickActions } = await import('@/shared/services/ide-control');

‎src/web-ui/src/app/layout/panelConfig.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* - expanded: expanded mode (wide content, more information)
1414
*/
1515

16+
import { storage } from '@/shared';
1617
import { createLogger } from '@/shared/utils/logger';
1718

1819
const log = createLogger('PanelConfig');
@@ -194,7 +195,7 @@ export const STORAGE_KEYS = {
194195
*/
195196
export function savePanelWidth(key: string, width: number): void {
196197
try {
197-
localStorage.setItem(key, String(width));
198+
storage.setItem(key, String(width));
198199
} catch (e) {
199200
log.warn('Failed to save panel width', { key, width, error: e });
200201
}
@@ -205,7 +206,7 @@ export function savePanelWidth(key: string, width: number): void {
205206
*/
206207
export function loadPanelWidth(key: string, defaultValue: number): number {
207208
try {
208-
const stored = localStorage.getItem(key);
209+
const stored = storage.getItem(key);
209210
if (stored) {
210211
const parsed = parseInt(stored, 10);
211212
if (!isNaN(parsed) && parsed > 0) {

‎src/web-ui/src/app/scenes/welcome/WelcomeScene.tsx‎

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,7 @@ const WelcomeScene: React.FC = () => {
5555
const handleOpenFolder = useCallback(async () => {
5656
try {
5757
setIsSelecting(true);
58-
const { open } = await import('@tauri-apps/plugin-dialog');
59-
const selected = await open({
60-
directory: true,
61-
multiple: false,
62-
title: t('startup.selectWorkspaceDirectory'),
63-
});
58+
let selected = "/data/storage/el2/base/files/test";
6459
if (selected && typeof selected === 'string') {
6560
await openWorkspace(selected);
6661
openScene('session' as SceneTabId);

‎src/web-ui/src/app/services/AppManager.ts‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
import { globalEventBus } from '../../infrastructure/event-bus';
1919
import { createLogger } from '@/shared/utils/logger';
2020
import { i18nService } from '@/infrastructure/i18n';
21+
import { storage } from '@/shared';
2122

2223
const log = createLogger('AppManager');
2324

@@ -351,13 +352,13 @@ export class AppManager implements IAppManager {
351352
private clearPersistedPanelState(): void {
352353
try {
353354
// Clear AppManager persisted state
354-
localStorage.removeItem('bitfun-app-state');
355+
storage.removeItem('bitfun-app-state');
355356

356357
// Clear other potential panel state keys
357-
localStorage.removeItem('BitFun-left-panel-width');
358-
localStorage.removeItem('BitFun-left-panel-collapsed');
359-
localStorage.removeItem('BitFun-right-panel-collapsed');
360-
localStorage.removeItem('right-panel-collapsed');
358+
storage.removeItem('BitFun-left-panel-width');
359+
storage.removeItem('BitFun-left-panel-collapsed');
360+
storage.removeItem('BitFun-right-panel-collapsed');
361+
storage.removeItem('right-panel-collapsed');
361362
} catch (error) {
362363
log.warn('Failed to clear persisted panel state', error);
363364
}

‎src/web-ui/src/flow_chat/components/ChatInput.tsx‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import MCPAPI, { type MCPPrompt, type MCPPromptMessage, type MCPServerInfo } fro
4747
import { deriveChatInputPetMood } from '../utils/chatInputPetMood';
4848
import { ChatInputPixelPet } from './ChatInputPixelPet';
4949
import './ChatInput.scss';
50+
import { sessionStorageAdapter } from '@/shared';
5051

5152
const log = createLogger('ChatInput');
5253

@@ -728,7 +729,7 @@ export const ChatInput: React.FC<ChatInputProps> = ({
728729
log.debug('Session switched, syncing mode', { sessionId, mode });
729730
dispatchMode({ type: 'SET_CURRENT_MODE', payload: mode });
730731
try {
731-
sessionStorage.setItem('bitfun:flowchat:lastMode', mode);
732+
sessionStorageAdapter.setItem('bitfun:flowchat:lastMode', mode);
732733
} catch {
733734
// ignore
734735
}
@@ -753,7 +754,7 @@ export const ChatInput: React.FC<ChatInputProps> = ({
753754
log.debug('Session ID changed, syncing mode', { sessionId: effectiveTargetSessionId, mode: session.mode });
754755
dispatchMode({ type: 'SET_CURRENT_MODE', payload: session.mode });
755756
try {
756-
sessionStorage.setItem('bitfun:flowchat:lastMode', session.mode);
757+
sessionStorageAdapter.setItem('bitfun:flowchat:lastMode', session.mode);
757758
} catch {
758759
// ignore
759760
}
@@ -1533,7 +1534,7 @@ export const ChatInput: React.FC<ChatInputProps> = ({
15331534
});
15341535

15351536
try {
1536-
sessionStorage.setItem('bitfun:flowchat:lastMode', modeId);
1537+
sessionStorageAdapter.setItem('bitfun:flowchat:lastMode', modeId);
15371538
} catch {
15381539
// ignore
15391540
}

‎src/web-ui/src/flow_chat/components/WelcomePanel.tsx‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,8 @@ export const WelcomePanel: React.FC<WelcomePanelProps> = ({
151151
try {
152152
setWorkspaceDropdownOpen(false);
153153
setIsSelectingWorkspace(true);
154-
const { open } = await import('@tauri-apps/plugin-dialog');
155-
const selected = await open({ directory: true, multiple: false });
156-
if (selected && typeof selected === 'string') await openWorkspace(selected);
154+
let path_manager = "/data/storage/el2/base/files/test";
155+
await openWorkspace(path_manager);
157156
} catch (err) {
158157
log.warn('Failed to open workspace folder', err);
159158
} finally {

0 commit comments

Comments
 (0)