Trash eklendi

This commit is contained in:
2025-11-02 00:15:06 +03:00
parent 90009d9fbe
commit 3e07e2a270
8 changed files with 2670 additions and 135 deletions

View File

@@ -0,0 +1,67 @@
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;
}
}