useAuth.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { defineStore } from 'pinia'
  2. import { Resources } from '../../api'
  3. export const useFileStore = defineStore('files', {
  4. state: () => ({
  5. sharedFiles: [],
  6. totalPages: 1,
  7. currentPage: 1,
  8. }),
  9. actions: {
  10. async fetchSharedFiles(page = 1, search = '') {
  11. try {
  12. const response = await Resources.getSharedResources({ page, search })
  13. this.sharedFiles = response.data.resources
  14. this.totalPages = response.data.totalPages
  15. this.currentPage = page
  16. } catch (error) {
  17. console.error('Failed to fetch shared files:', error)
  18. }
  19. },
  20. async uploadFile(fileData) {
  21. try {
  22. await Resources.uploadResource(fileData)
  23. // Refresh the file list after upload
  24. await this.fetchSharedFiles(this.currentPage)
  25. } catch (error) {
  26. console.error('Failed to upload file:', error)
  27. }
  28. },
  29. async deleteFile(id) {
  30. try {
  31. await Resources.deleteResource(id)
  32. // Refresh the file list after deletion
  33. await this.fetchSharedFiles(this.currentPage)
  34. } catch (error) {
  35. console.error('Failed to delete file:', error)
  36. }
  37. },
  38. },
  39. })