mirror of
https://github.com/rustmailer/bichon.git
synced 2026-08-03 07:48:34 +02:00
feat: Saving user's page size choices #171
This commit is contained in:
@@ -71,6 +71,7 @@ export function DataTablePagination<TData>({
|
|||||||
<Select
|
<Select
|
||||||
value={`${table.getState().pagination.pageSize}`}
|
value={`${table.getState().pagination.pageSize}`}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
|
localStorage.setItem('bichon_accounts_page_size', value);
|
||||||
table.setPageSize(Number(value))
|
table.setPageSize(Number(value))
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -78,7 +79,7 @@ export function DataTablePagination<TData>({
|
|||||||
<SelectValue placeholder={table.getState().pagination.pageSize} />
|
<SelectValue placeholder={table.getState().pagination.pageSize} />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent side='top'>
|
<SelectContent side='top'>
|
||||||
{[10, 20, 30, 40, 50].map((pageSize) => (
|
{[10, 20, 30, 40, 50, 100, 150].map((pageSize) => (
|
||||||
<SelectItem key={pageSize} value={`${pageSize}`}>
|
<SelectItem key={pageSize} value={`${pageSize}`}>
|
||||||
{pageSize}
|
{pageSize}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
|
|||||||
@@ -75,6 +75,12 @@ export function AccountTable({ columns, data }: DataTableProps) {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
columnFilters,
|
columnFilters,
|
||||||
},
|
},
|
||||||
|
initialState: {
|
||||||
|
pagination: {
|
||||||
|
pageIndex: 0,
|
||||||
|
pageSize: Number(localStorage.getItem('bichon_accounts_page_size')) || 10
|
||||||
|
}
|
||||||
|
},
|
||||||
enableRowSelection: true,
|
enableRowSelection: true,
|
||||||
onRowSelectionChange: setRowSelection,
|
onRowSelectionChange: setRowSelection,
|
||||||
onSortingChange: setSorting,
|
onSortingChange: setSorting,
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ export function DataTablePagination<TData>({
|
|||||||
<Select
|
<Select
|
||||||
value={`${table.getState().pagination.pageSize}`}
|
value={`${table.getState().pagination.pageSize}`}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
|
localStorage.setItem('bichon_oauth2_page_size', value);
|
||||||
table.setPageSize(Number(value))
|
table.setPageSize(Number(value))
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -74,6 +74,12 @@ export function Oauth2Table({ columns, data }: DataTableProps) {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
columnFilters,
|
columnFilters,
|
||||||
},
|
},
|
||||||
|
initialState: {
|
||||||
|
pagination: {
|
||||||
|
pageIndex: 0,
|
||||||
|
pageSize: Number(localStorage.getItem('bichon_oauth2_page_size')) || 10
|
||||||
|
}
|
||||||
|
},
|
||||||
enableRowSelection: true,
|
enableRowSelection: true,
|
||||||
onRowSelectionChange: setRowSelection,
|
onRowSelectionChange: setRowSelection,
|
||||||
onSortingChange: setSorting,
|
onSortingChange: setSorting,
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export default function Search() {
|
|||||||
page,
|
page,
|
||||||
pageSize,
|
pageSize,
|
||||||
setPage,
|
setPage,
|
||||||
setPageSize,
|
setSearchPageSize,
|
||||||
setSortBy,
|
setSortBy,
|
||||||
setSortOrder,
|
setSortOrder,
|
||||||
filter,
|
filter,
|
||||||
@@ -60,7 +60,7 @@ export default function Search() {
|
|||||||
|
|
||||||
const handleSetPageSize = (pageSize: number) => {
|
const handleSetPageSize = (pageSize: number) => {
|
||||||
setPage(1);
|
setPage(1);
|
||||||
setPageSize(pageSize)
|
setSearchPageSize(pageSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleTagToggle = (tag: string) => {
|
const handleTagToggle = (tag: string) => {
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ export function DataTablePagination<TData>({
|
|||||||
<Select
|
<Select
|
||||||
value={`${table.getState().pagination.pageSize}`}
|
value={`${table.getState().pagination.pageSize}`}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
|
localStorage.setItem('bichon_proxy_page_size', value);
|
||||||
table.setPageSize(Number(value))
|
table.setPageSize(Number(value))
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -76,6 +76,12 @@ export function ProxyTable({ columns, data }: DataTableProps) {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
columnFilters,
|
columnFilters,
|
||||||
},
|
},
|
||||||
|
initialState: {
|
||||||
|
pagination: {
|
||||||
|
pageIndex: 0,
|
||||||
|
pageSize: Number(localStorage.getItem('bichon_proxy_page_size')) || 10
|
||||||
|
}
|
||||||
|
},
|
||||||
enableRowSelection: true,
|
enableRowSelection: true,
|
||||||
onRowSelectionChange: setRowSelection,
|
onRowSelectionChange: setRowSelection,
|
||||||
onSortingChange: setSorting,
|
onSortingChange: setSorting,
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ export function DataTablePagination<TData>({
|
|||||||
<Select
|
<Select
|
||||||
value={`${table.getState().pagination.pageSize}`}
|
value={`${table.getState().pagination.pageSize}`}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
|
localStorage.setItem('bichon_apitoken_page_size', value);
|
||||||
table.setPageSize(Number(value))
|
table.setPageSize(Number(value))
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -75,6 +75,12 @@ export function ApiTokensTable({ columns, data }: DataTableProps) {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
columnFilters,
|
columnFilters,
|
||||||
},
|
},
|
||||||
|
initialState: {
|
||||||
|
pagination: {
|
||||||
|
pageIndex: 0,
|
||||||
|
pageSize: Number(localStorage.getItem('bichon_apitoken_page_size')) || 10
|
||||||
|
}
|
||||||
|
},
|
||||||
enableRowSelection: true,
|
enableRowSelection: true,
|
||||||
onRowSelectionChange: setRowSelection,
|
onRowSelectionChange: setRowSelection,
|
||||||
onSortingChange: setSorting,
|
onSortingChange: setSorting,
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ export function DataTablePagination<TData>({
|
|||||||
<Select
|
<Select
|
||||||
value={`${table.getState().pagination.pageSize}`}
|
value={`${table.getState().pagination.pageSize}`}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
|
localStorage.setItem('bichon_roles_page_size', value);
|
||||||
table.setPageSize(Number(value))
|
table.setPageSize(Number(value))
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -78,7 +79,7 @@ export function DataTablePagination<TData>({
|
|||||||
<SelectValue placeholder={table.getState().pagination.pageSize} />
|
<SelectValue placeholder={table.getState().pagination.pageSize} />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent side='top'>
|
<SelectContent side='top'>
|
||||||
{[10, 20, 30, 40, 50].map((pageSize) => (
|
{[10, 20, 30, 40, 50, 100].map((pageSize) => (
|
||||||
<SelectItem key={pageSize} value={`${pageSize}`}>
|
<SelectItem key={pageSize} value={`${pageSize}`}>
|
||||||
{pageSize}
|
{pageSize}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
|
|||||||
@@ -75,6 +75,12 @@ export function RolesTable({ columns, data }: DataTableProps) {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
columnFilters,
|
columnFilters,
|
||||||
},
|
},
|
||||||
|
initialState: {
|
||||||
|
pagination: {
|
||||||
|
pageIndex: 0,
|
||||||
|
pageSize: Number(localStorage.getItem('bichon_roles_page_size')) || 10
|
||||||
|
}
|
||||||
|
},
|
||||||
enableRowSelection: true,
|
enableRowSelection: true,
|
||||||
onRowSelectionChange: setRowSelection,
|
onRowSelectionChange: setRowSelection,
|
||||||
onSortingChange: setSorting,
|
onSortingChange: setSorting,
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export function DataTablePagination<TData>({
|
|||||||
<Select
|
<Select
|
||||||
value={`${table.getState().pagination.pageSize}`}
|
value={`${table.getState().pagination.pageSize}`}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
|
localStorage.setItem('bichon_users_page_size', value);
|
||||||
table.setPageSize(Number(value))
|
table.setPageSize(Number(value))
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -76,7 +77,7 @@ export function DataTablePagination<TData>({
|
|||||||
<SelectValue placeholder={table.getState().pagination.pageSize} />
|
<SelectValue placeholder={table.getState().pagination.pageSize} />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent side='top'>
|
<SelectContent side='top'>
|
||||||
{[10, 20, 30, 40, 50].map((pageSize) => (
|
{[10, 20, 30, 40, 50, 100].map((pageSize) => (
|
||||||
<SelectItem key={pageSize} value={`${pageSize}`}>
|
<SelectItem key={pageSize} value={`${pageSize}`}>
|
||||||
{pageSize}
|
{pageSize}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
|
|||||||
@@ -75,6 +75,12 @@ export function UsersTable({ columns, data }: DataTableProps) {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
columnFilters,
|
columnFilters,
|
||||||
},
|
},
|
||||||
|
initialState: {
|
||||||
|
pagination: {
|
||||||
|
pageIndex: 0,
|
||||||
|
pageSize: Number(localStorage.getItem('bichon_users_page_size')) || 10
|
||||||
|
}
|
||||||
|
},
|
||||||
enableRowSelection: true,
|
enableRowSelection: true,
|
||||||
onRowSelectionChange: setRowSelection,
|
onRowSelectionChange: setRowSelection,
|
||||||
onSortingChange: setSorting,
|
onSortingChange: setSorting,
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export function useSearchMessages() {
|
|||||||
// const queryClient = useQueryClient();
|
// const queryClient = useQueryClient();
|
||||||
const [filter, _setFilter] = useState<Record<string, any>>({});
|
const [filter, _setFilter] = useState<Record<string, any>>({});
|
||||||
const [page, setPage] = useState(1);
|
const [page, setPage] = useState(1);
|
||||||
const [pageSize, setPageSize] = useState(30);
|
const [pageSize, setPageSize] = useState(Number(localStorage.getItem('bichon_search_page_size')) || 30);
|
||||||
const [sortBy, setSortBy] = useState<"DATE" | "SIZE">("DATE");
|
const [sortBy, setSortBy] = useState<"DATE" | "SIZE">("DATE");
|
||||||
const [sortOrder, setSortOrder] = useState<"desc" | "asc">("desc");
|
const [sortOrder, setSortOrder] = useState<"desc" | "asc">("desc");
|
||||||
|
|
||||||
@@ -38,6 +38,12 @@ export function useSearchMessages() {
|
|||||||
setPage(1);
|
setPage(1);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|
||||||
|
const setSearchPageSize = (value: number) => {
|
||||||
|
localStorage.setItem('bichon_search_page_size', value.toString());
|
||||||
|
setPageSize(value);
|
||||||
|
}
|
||||||
|
|
||||||
const onSubmit = (cleaned: Record<string, any>) => {
|
const onSubmit = (cleaned: Record<string, any>) => {
|
||||||
if ('has_attachment' in cleaned && cleaned.has_attachment === false) {
|
if ('has_attachment' in cleaned && cleaned.has_attachment === false) {
|
||||||
delete cleaned.has_attachment;
|
delete cleaned.has_attachment;
|
||||||
@@ -84,7 +90,7 @@ export function useSearchMessages() {
|
|||||||
total: data?.total_items ?? 0,
|
total: data?.total_items ?? 0,
|
||||||
totalPages: data?.total_pages ?? 1,
|
totalPages: data?.total_pages ?? 1,
|
||||||
pageSize: data?.page_size ?? pageSize,
|
pageSize: data?.page_size ?? pageSize,
|
||||||
setPageSize,
|
setSearchPageSize,
|
||||||
sortBy,
|
sortBy,
|
||||||
setSortBy,
|
setSortBy,
|
||||||
sortOrder,
|
sortOrder,
|
||||||
|
|||||||
Reference in New Issue
Block a user