Files
dupe/client/src/stores/trashStore.js
2025-11-02 00:15:06 +03:00

68 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
}
}