37 lines
862 B
TypeScript
37 lines
862 B
TypeScript
import { defineStore } from 'pinia';
|
|
|
|
interface FocusedFile {
|
|
size: number;
|
|
content: string;
|
|
}
|
|
|
|
interface FocusState {
|
|
focusedFiles: Record<string, FocusedFile>;
|
|
}
|
|
|
|
export const useFocusStore = defineStore('focus', {
|
|
state: (): FocusState => ({
|
|
focusedFiles: {}
|
|
}),
|
|
actions: {
|
|
async fetchFocusedFiles() {
|
|
try {
|
|
const response = await fetch('/api/focused');
|
|
if (!response.ok) {
|
|
throw new Error(response.statusText || '请求失败');
|
|
}
|
|
const data = await response.json();
|
|
this.focusedFiles = data || {};
|
|
} catch (error) {
|
|
console.error('获取聚焦文件失败:', error);
|
|
}
|
|
},
|
|
setFocusedFiles(payload: Record<string, FocusedFile> | null) {
|
|
this.focusedFiles = payload || {};
|
|
},
|
|
clearFocusedFiles() {
|
|
this.focusedFiles = {};
|
|
}
|
|
}
|
|
});
|