68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
import { writable } from 'svelte/store';
|
||
import { getTrashItems, restoreFromTrash, deleteFromTrash } from '../utils/api';
|
||
|
||
export const trashItems = writable([]);
|
||
export const trashCount = writable(0);
|
||
|
||
// Çöp öğelerini API'den al
|
||
export async function fetchTrashItems() {
|
||
try {
|
||
const items = await getTrashItems();
|
||
|
||
const processedItems = Array.isArray(items)
|
||
? items.map((item) => {
|
||
const segments = String(item.name || "")
|
||
.split(/[\\/]/)
|
||
.filter(Boolean);
|
||
const displayName =
|
||
segments.length > 0 ? segments[segments.length - 1] : item.name;
|
||
const parentPath =
|
||
segments.length > 1 ? segments.slice(0, -1).join("/") : "";
|
||
return {
|
||
...item,
|
||
displayName,
|
||
parentPath
|
||
};
|
||
})
|
||
: [];
|
||
|
||
trashItems.set(processedItems);
|
||
trashCount.set(processedItems.length);
|
||
return processedItems;
|
||
} catch (error) {
|
||
console.error('Çöp öğeleri alınırken hata:', error);
|
||
trashCount.set(0);
|
||
}
|
||
return [];
|
||
}
|
||
|
||
// Çöpten geri yükle
|
||
export async function restoreItem(trashName) {
|
||
try {
|
||
const result = await restoreFromTrash(trashName);
|
||
if (result.success) {
|
||
// Listeyi yenile
|
||
await fetchTrashItems();
|
||
}
|
||
return result;
|
||
} catch (error) {
|
||
console.error('Öğe geri yüklenirken hata:', error);
|
||
throw error;
|
||
}
|
||
}
|
||
|
||
// Çöpten tamamen sil
|
||
export async function deleteItemPermanently(trashName) {
|
||
try {
|
||
const result = await deleteFromTrash(trashName);
|
||
if (result.success) {
|
||
// Listeyi yenile
|
||
await fetchTrashItems();
|
||
}
|
||
return result;
|
||
} catch (error) {
|
||
console.error('Öğe silinirken hata:', error);
|
||
throw error;
|
||
}
|
||
}
|