mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 07:04:52 +09:00
Type UsersTable columns instead of any
UsersTable declared its columns as any[], which masked a few type mismatches. Type them as ColumnType<lib.UserDetails>[] (matching InstanceList) and fix what surfaced: the Roles column and onFilterUser value types (antd keys include bigint) and useUserFilter's filterDropdown prop type (FilterDropdownProps instead of a hand-written string[] shape). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
82629a57c6
commit
4e94092730
2 files changed
+6
-10
No files matched your search
@@ -79,7 +79,7 @@ function matchesTriState(value: boolean, filter?: boolean) {
|
||||
}
|
||||
|
||||
export function onFilterUser(
|
||||
value: string | number | boolean,
|
||||
value: boolean | React.Key,
|
||||
record: UserDetails
|
||||
) {
|
||||
const filter = decodeFilter(String(value));
|
||||
@@ -126,14 +126,9 @@ export function useUserFilter(withStatus?: boolean) {
|
||||
setSelectedKeys,
|
||||
confirm,
|
||||
clearFilters,
|
||||
}: {
|
||||
selectedKeys: string[];
|
||||
setSelectedKeys: (keys: string[]) => void;
|
||||
confirm: FilterDropdownProps["confirm"];
|
||||
clearFilters: FilterDropdownProps["clearFilters"];
|
||||
}) {
|
||||
}: FilterDropdownProps) {
|
||||
const filter: UserFilter = selectedKeys[0]
|
||||
? decodeFilter(selectedKeys[0])
|
||||
? decodeFilter(String(selectedKeys[0]))
|
||||
: {};
|
||||
|
||||
function update(next: Partial<UserFilter>) {
|
||||
|
||||
@@ -2,6 +2,7 @@ import React from "react";
|
||||
import { Table, Tag } from "antd";
|
||||
import { SearchOutlined } from "@ant-design/icons";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import type { ColumnType } from "antd/es/table/interface";
|
||||
|
||||
import * as lib from "@clusterio/lib";
|
||||
|
||||
@@ -91,7 +92,7 @@ export default function UsersTable(
|
||||
}
|
||||
}
|
||||
|
||||
const columns: any[] = [
|
||||
const columns: ColumnType<lib.UserDetails>[] = [
|
||||
{
|
||||
title: "Name",
|
||||
key: "name",
|
||||
@@ -112,7 +113,7 @@ export default function UsersTable(
|
||||
key: "roles",
|
||||
filters: roleFilters,
|
||||
filterMultiple: true,
|
||||
onFilter: (value: string | number | boolean, record: lib.UserDetails) => (
|
||||
onFilter: (value: boolean | React.Key, record: lib.UserDetails) => (
|
||||
record.roleIds.has(Number(value))
|
||||
),
|
||||
render: (_: any, user: lib.UserDetails) => (
|
||||
|
||||
Reference in new issue
Block a user