{channel ? `In ${channelMap[channel].name}` : `Channel`}
@@ -87,17 +126,40 @@ export default function Filter({ filter, updateFilter }) {
+
}
>
-
+
{type ? FileTypes[type].title : "Type"}
+
+ }
+ >
+
+
{date ? Dates[date].title : "Date"}
+
+
+
);
}
diff --git a/src/routes/resources/Search.js b/src/routes/resources/Search.js
index 2100430f..5ae4d1d9 100644
--- a/src/routes/resources/Search.js
+++ b/src/routes/resources/Search.js
@@ -29,13 +29,15 @@ export default function Search({
embed = false,
}) {
const handleChange = (evt) => {
- updateSearchValue(evt.target.value);
+ if (updateSearchValue) {
+ updateSearchValue(evt.target.value);
+ }
};
return (
diff --git a/src/routes/resources/View.js b/src/routes/resources/View.js
index 91121559..0e91a062 100644
--- a/src/routes/resources/View.js
+++ b/src/routes/resources/View.js
@@ -1,5 +1,8 @@
// import React from 'react'
import styled from "styled-components";
+import { useDispatch } from "react-redux";
+import { updateFileListView } from "../../app/slices/ui";
+import { Views } from "../../app/config";
import IconList from "../../assets/icons/file.list.svg";
import IconGrid from "../../assets/icons/file.grid.svg";
const Styled = styled.ul`
@@ -27,15 +30,13 @@ const Styled = styled.ul`
}
}
`;
-export const Views = {
- item: "item",
- grid: "grid",
-};
-export default function View({ view = Views.item, toggleView }) {
+
+export default function View({ view = Views.item }) {
+ const dispatch = useDispatch();
const handleChangeView = (evt) => {
const { view: clickView } = evt.currentTarget.dataset;
if (clickView == view) return;
- toggleView();
+ dispatch(updateFileListView(view == Views.item ? Views.grid : Views.item));
};
return (
diff --git a/src/routes/resources/index.js b/src/routes/resources/index.js
index f222d6e5..0ed0e77d 100644
--- a/src/routes/resources/index.js
+++ b/src/routes/resources/index.js
@@ -3,7 +3,8 @@ import Styled from "./styled";
import { useSelector } from "react-redux";
import Masonry from "masonry-layout";
// import waterfall from "waterfall.js/src/waterfall";
-import View, { Views } from "./View";
+import { Views } from "../../app/config";
+import View from "./View";
import Search from "./Search";
import Filter from "./Filter";
import FileBox from "../../common/component/FileBox";
@@ -11,14 +12,14 @@ let msnry = null;
export default function ResourceManagement() {
const listContainerRef = useRef(null);
const [filter, setFilter] = useState({});
- const [view, setView] = useState(Views.item);
- const { fileMessages, message } = useSelector((store) => {
- return { message: store.message, fileMessages: store.fileMessage };
+ const { fileMessages, message, view } = useSelector((store) => {
+ return {
+ message: store.message,
+ fileMessages: store.fileMessage,
+ view: store.ui.fileListView,
+ };
});
- const toggleView = () => {
- setView((prev) => (prev == Views.item ? Views.grid : Views.item));
- };
const updateFilter = (data) => {
setFilter((prev) => {
return { ...prev, ...data };
@@ -50,7 +51,7 @@ export default function ResourceManagement() {
-
+
{fileMessages.map((id) => {