parent
afe0b88808
commit
0c08a4d942
|
|
@ -1,52 +0,0 @@
|
|||
import { useState } from 'react';
|
||||
|
||||
export const useDashboardList = (initialItems = []) => {
|
||||
const [selectedItem, setSelectedItem] = useState(null);
|
||||
const [searchQuery, setSearchQuery] = useState('');
|
||||
const [items, setItems] = useState(initialItems);
|
||||
const [isFormVisible, setIsFormVisible] = useState(false);
|
||||
const [formMode, setFormMode] = useState('create');
|
||||
const [message, setMessage] = useState({ type: '', text: '' });
|
||||
|
||||
const handleSearch = (query) => {
|
||||
setSearchQuery(query);
|
||||
// Implementacja wyszukiwania w zależności od typu elementów
|
||||
const filteredItems = initialItems.filter(item =>
|
||||
Object.values(item).some(value =>
|
||||
String(value).toLowerCase().includes(query.toLowerCase())
|
||||
)
|
||||
);
|
||||
setItems(filteredItems);
|
||||
};
|
||||
|
||||
const handleItemSelect = (item) => {
|
||||
setSelectedItem(item);
|
||||
};
|
||||
|
||||
const handleFormToggle = (mode = 'create', item = null) => {
|
||||
setFormMode(mode);
|
||||
setSelectedItem(item);
|
||||
setIsFormVisible(!isFormVisible);
|
||||
};
|
||||
|
||||
const handleMessage = (type, text) => {
|
||||
setMessage({ type, text });
|
||||
setTimeout(() => {
|
||||
setMessage({ type: '', text: '' });
|
||||
}, 3000);
|
||||
};
|
||||
|
||||
return {
|
||||
selectedItem,
|
||||
searchQuery,
|
||||
items,
|
||||
isFormVisible,
|
||||
formMode,
|
||||
message,
|
||||
handleSearch,
|
||||
handleItemSelect,
|
||||
handleFormToggle,
|
||||
handleMessage,
|
||||
setItems
|
||||
};
|
||||
};
|
||||
Loading…
Reference in New Issue