@@ -105,7 +105,14 @@ export default function TunnelsPage() {
105105 const [ filterValue , setFilterValue ] = useState ( "" ) ;
106106 const [ statusFilter , setStatusFilter ] = useState ( "all" ) ;
107107 const [ endpointFilter , setEndpointFilter ] = useState ( "all" ) ;
108- const [ rowsPerPage , setRowsPerPage ] = useState ( 10 ) ;
108+ const [ rowsPerPage , setRowsPerPage ] = useState ( ( ) => {
109+ // 从 localStorage 读取保存的每页显示数量,默认为 10
110+ if ( typeof window !== 'undefined' ) {
111+ const saved = localStorage . getItem ( 'tunnels-rows-per-page' ) ;
112+ return saved ? parseInt ( saved , 10 ) : 10 ;
113+ }
114+ return 10 ;
115+ } ) ;
109116 const [ page , setPage ] = useState ( 1 ) ;
110117 const [ deleteModalTunnel , setDeleteModalTunnel ] = useState < Tunnel | null > ( null ) ;
111118 const { isOpen, onOpen, onOpenChange } = useDisclosure ( ) ;
@@ -1532,8 +1539,13 @@ export default function TunnelsPage() {
15321539 selectedKeys = { [ String ( rowsPerPage ) ] }
15331540 onSelectionChange = { ( keys ) => {
15341541 const value = Array . from ( keys ) [ 0 ] as string ;
1535- setRowsPerPage ( Number ( value ) ) ;
1542+ const newRowsPerPage = Number ( value ) ;
1543+ setRowsPerPage ( newRowsPerPage ) ;
15361544 setPage ( 1 ) ;
1545+ // 保存到 localStorage
1546+ if ( typeof window !== 'undefined' ) {
1547+ localStorage . setItem ( 'tunnels-rows-per-page' , String ( newRowsPerPage ) ) ;
1548+ }
15371549 } }
15381550 >
15391551 < SelectItem key = "10" > 10</ SelectItem >
0 commit comments