import {create} from 'zustand' import {Bucket, Connection, S3File} from "../interfaces/connection"; import {Dial} from "../api"; interface StoreFile { file_active: string | null, file_set: (key: string) => Promise, prefix: string; filter: string; files_list: S3File[]; files_get: (conn: Connection, bucket: Bucket, prefix?: string, filter?: string) => void; } export const useStoreFile = create()((set) => ({ file_active: null, file_set: async (key: string) => { set((state) => { return {file_active: key} }) }, prefix: "", filter: "", 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, filter: filter} }) } }))