From bb2f39517bf4b8187d01747cb0c6ca14d9f65119 Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Fri, 31 Jan 2025 11:58:01 +0100 Subject: [PATCH] ui: fixing the layout --- .../DataManagement/Activity/ColumnsModal.tsx | 9 ++++- .../DataManagement/Activity/Page.tsx | 13 ++++--- .../DataManagement/UsersEvents/ListPage.tsx | 37 +++++++++++++++++-- 3 files changed, 48 insertions(+), 11 deletions(-) diff --git a/frontend/app/components/DataManagement/Activity/ColumnsModal.tsx b/frontend/app/components/DataManagement/Activity/ColumnsModal.tsx index 7048aed55..2f2c3eac1 100644 --- a/frontend/app/components/DataManagement/Activity/ColumnsModal.tsx +++ b/frontend/app/components/DataManagement/Activity/ColumnsModal.tsx @@ -1,14 +1,17 @@ import React from 'react'; import { Input, Checkbox, Button } from 'antd'; +import cn from 'classnames' function ColumnsModal({ columns, onSelect, hiddenCols, + topOffset = 'top-28' }: { columns: { title: string; key: string }[]; onSelect: (col: string[]) => void; hiddenCols: string[]; + topOffset?: string; }) { const [query, setQuery] = React.useState(''); const [selected, setSelected] = React.useState( @@ -28,7 +31,11 @@ function ColumnsModal({ const searchRe = new RegExp(query, 'ig'); const filteredList = columns.filter((col) => searchRe.test(col.title)); return ( -
+
Show/Hide Columns
Select columns to display. Rearrange them in the table view. diff --git a/frontend/app/components/DataManagement/Activity/Page.tsx b/frontend/app/components/DataManagement/Activity/Page.tsx index 571a9efc0..12647e97c 100644 --- a/frontend/app/components/DataManagement/Activity/Page.tsx +++ b/frontend/app/components/DataManagement/Activity/Page.tsx @@ -4,8 +4,8 @@ import { Table, Dropdown } from 'antd'; import { MoreOutlined } from '@ant-design/icons'; import { numberWithCommas } from 'App/utils'; import { Pagination } from 'UI'; -import OutsideClickDetectingDiv from '../../shared/OutsideClickDetectingDiv'; -import ColumnsModal from './ColumnsModal'; +import OutsideClickDetectingDiv from 'Shared/OutsideClickDetectingDiv'; +import ColumnsModal from 'Components/DataManagement/Activity/ColumnsModal'; import Event from './data/Event'; import { useModal } from 'App/components/Modal'; import EventDetailsModal from './EventDetailsModal'; @@ -164,10 +164,7 @@ function ActivityPage() { }, ]; - const shownCols = columns.map((col) => ({ - ...col, - hidden: hiddenCols.includes(col.key), - })); + const onPageChange = (page: number) => { setPage(page); @@ -180,6 +177,10 @@ function ActivityPage() { }); }; + const shownCols = columns.map((col) => ({ + ...col, + hidden: hiddenCols.includes(col.key), + })); const onUpdateVisibleCols = (cols: string[]) => { setHiddenCols((_) => { return columns diff --git a/frontend/app/components/DataManagement/UsersEvents/ListPage.tsx b/frontend/app/components/DataManagement/UsersEvents/ListPage.tsx index 588a6a371..7872e30f1 100644 --- a/frontend/app/components/DataManagement/UsersEvents/ListPage.tsx +++ b/frontend/app/components/DataManagement/UsersEvents/ListPage.tsx @@ -11,6 +11,8 @@ import { observer } from 'mobx-react-lite'; import { withSiteId, dataManagement } from "App/routes"; import { Filter, Album } from "lucide-react"; import { list } from '../Activity/Page' +import OutsideClickDetectingDiv from 'Shared/OutsideClickDetectingDiv'; +import ColumnsModal from 'Components/DataManagement/Activity/ColumnsModal'; const customTabBar: TabsProps['renderTabBar'] = (props, DefaultTabBar) => ( @@ -36,8 +38,8 @@ function ListPage() { }, ]; return ( -
-
+
+
void }) { const [editCols, setEditCols] = React.useState(false); + const [hiddenCols, setHiddenCols] = React.useState([]); const testUsers = [ new User({ name: 'test123', @@ -211,9 +214,23 @@ function UsersList({ toUser }: { toUser: (id: string) => void }) { const excludeFilterKeys = [] const excludeCategory = [] + const shownCols = columns.map((col) => ({ + ...col, + hidden: hiddenCols.includes(col.key), + })); + const onUpdateVisibleCols = (cols: string[]) => { + setHiddenCols((_) => { + return columns + .map((col) => + cols.includes(col.key) || col.key === '$__opts__$' ? null : col.key + ) + .filter(Boolean); + }); + setEditCols(false); + }; return (
-
+
{/* 1.23 -- Show by*/} {/* void }) {
+
+ {editCols ? ( + setEditCols(false)}> + col.key !== '$__opts__$')} + onSelect={onUpdateVisibleCols} + hiddenCols={hiddenCols} + topOffset={'top-24 -mt-4'} + /> + + ) : null} ({ onClick: () => toUser(record.userId), @@ -248,8 +276,9 @@ function UsersList({ toUser }: { toUser: (id: string) => void }) { pagination={false} rowClassName={'cursor-pointer'} dataSource={testUsers} - columns={columns} + columns={shownCols} /> +
{'Showing '}