aboutsummaryrefslogtreecommitdiff
path: root/modern/src/store/devices.js
diff options
context:
space:
mode:
Diffstat (limited to 'modern/src/store/devices.js')
-rw-r--r--modern/src/store/devices.js18
1 files changed, 17 insertions, 1 deletions
diff --git a/modern/src/store/devices.js b/modern/src/store/devices.js
index cca23cb..f63602a 100644
--- a/modern/src/store/devices.js
+++ b/modern/src/store/devices.js
@@ -1,9 +1,11 @@
-import { createSlice } from '@reduxjs/toolkit';
+import { createSlice, current } from '@reduxjs/toolkit';
const { reducer, actions } = createSlice({
name: 'devices',
initialState: {
items: {},
+ filterTerm: '',
+ filteredItems: {},
selectedId: null,
},
reducers: {
@@ -17,6 +19,20 @@ const { reducer, actions } = createSlice({
select(state, action) {
state.selectedId = action.payload.id;
},
+ unselect(state, action) {
+ state.selectedId = null;
+ },
+ setFilter(state, action) {
+ state.filterTerm = action.payload;
+ const items = Object.entries(current(state).items);
+ state.filteredItems = Object.fromEntries(items.filter(([k, v]) => {
+ return v.name.toLowerCase().includes(action.payload.toLowerCase());
+ }));
+ },
+ clearFilter(state, action) {
+ state.filterTerm = '';
+ state.filteredItems = {};
+ },
remove(state, action) {
delete state.items[action.payload];
},