🎉 开始项目
feat: 完成基础界面; 列表展示 todo: uplevel button function todo: download/upload
This commit is contained in:
29
frontend/src/store/file.tsx
Normal file
29
frontend/src/store/file.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
import {create} from 'zustand'
|
||||
import {Bucket, Connection, S3File} from "../interfaces/connection";
|
||||
import {Dial} from "../api";
|
||||
|
||||
interface StoreFile {
|
||||
prefix: string;
|
||||
files_list: S3File[];
|
||||
files_get: (conn: Connection, bucket: Bucket, prefix?: string, filter?: string) => void;
|
||||
}
|
||||
|
||||
export const useStoreFile = create<StoreFile>()((set) => ({
|
||||
prefix: "",
|
||||
files_list: [],
|
||||
files_get: async (conn: Connection, bucket: Bucket, prefix = '', filter = '') => {
|
||||
const res = await Dial<{ list: S3File[] }>('/api/bucket/files', {
|
||||
conn_id: conn.id,
|
||||
bucket: bucket.name,
|
||||
prefix: prefix + filter,
|
||||
})
|
||||
|
||||
if (res.status !== 200) {
|
||||
return
|
||||
}
|
||||
|
||||
set((state) => {
|
||||
return {files_list: res.data.list, prefix: prefix}
|
||||
})
|
||||
}
|
||||
}))
|
||||
Reference in New Issue
Block a user