Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Resolve type exception in updateTableFilterInfo function #503

Merged
merged 1 commit into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useTranslation } from 'react-i18next';
import { BasicTag, BasicToolTips } from '@actiontech/shared';
import { formatTime } from '@actiontech/shared/lib/utils/Common';
import { Space, Tag, Typography } from 'antd';
import { Space, Typography } from 'antd';
import { ListDBServiceLastConnectionTestStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';

type Props = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const useCustomFilter = () => {
F extends Record<string, any>
>(
meta: ActiontechTableFilterContainerMeta<T, F>[0],
updateTableFilterInfo: UpdateTableFilterInfoType,
updateTableFilterInfo: UpdateTableFilterInfoType<F>,
filterCustomProps?: Map<keyof T, FilterCustomProps<'input'>>
) => {
const props = filterCustomProps?.get(meta.dataIndex);
Expand Down Expand Up @@ -49,7 +49,7 @@ const useCustomFilter = () => {
F extends Record<string, any>
>(
meta: ActiontechTableFilterContainerMeta<T, F>[0],
updateTableFilterInfo: UpdateTableFilterInfoType,
updateTableFilterInfo: UpdateTableFilterInfoType<F>,
filterCustomProps?: Map<keyof T, FilterCustomProps<'search-input'>>
) => {
const props = filterCustomProps?.get(meta.dataIndex);
Expand Down Expand Up @@ -89,7 +89,7 @@ const useCustomFilter = () => {
F extends Record<string, any>
>(
meta: ActiontechTableFilterContainerMeta<T, F>[0],
updateTableFilterInfo: UpdateTableFilterInfoType,
updateTableFilterInfo: UpdateTableFilterInfoType<F>,
filterCustomProps?: Map<keyof T, FilterCustomProps<'select'>>
) => {
const props = filterCustomProps?.get(meta.dataIndex);
Expand Down Expand Up @@ -130,7 +130,7 @@ const useCustomFilter = () => {
F extends Record<string, any>
>(
meta: ActiontechTableFilterContainerMeta<T, F>[0],
updateTableFilterInfo: UpdateTableFilterInfoType,
updateTableFilterInfo: UpdateTableFilterInfoType<F>,
filterCustomProps?: Map<keyof T, FilterCustomProps<'date-range'>>
) => {
const disabledDate: RangePickerProps['disabledDate'] = (current) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ const useTableFilterContainer = <
OtherKeys extends string = ''
>(
columns: ActiontechTableColumn<T, F, OtherKeys>,
updateTableFilterInfo: UpdateTableFilterInfoType,
updateTableFilterInfo: UpdateTableFilterInfoType<F>,
extraFilterMeta?: ActiontechTableFilterMeta<T, F>
) => {
const [filterButtonMeta, setFilterButtonMeta] = useState<
Expand Down Expand Up @@ -109,7 +109,7 @@ const useTableFilterContainer = <

const updateAllSelectedFilterItem = useCallback(
(checked: boolean) => {
updateTableFilterInfo((_: F) => ({}));
updateTableFilterInfo((_: F) => ({} as F));
setFilterButtonMeta((meta) => {
meta.forEach((value, key) => {
meta.set(key, { ...value, checked });
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import { TableProps } from 'antd';
import { useCallback, useState } from 'react';
import { TablePagination, UseTableRequestParamsOptions } from '../index.type';
import {
TablePagination,
UpdateTableFilterInfoType,
UseTableRequestParamsOptions
} from '../index.type';
import { SorterResult } from 'antd/es/table/interface';
import { isEmpty, isEqual } from 'lodash';

Expand Down Expand Up @@ -29,9 +33,14 @@ const useTableRequestParams = <
page_size: defaultPageSize
});

const updateTableFilterInfo = (filterInfo: F) => {
const filterInfoData =
typeof filterInfo === 'function' ? filterInfo() : filterInfo;
const isFilterInfoUpdaterFunction = (
filterInfo: unknown
): filterInfo is (prevFilterInfo: F) => F => typeof filterInfo === 'function';

const updateTableFilterInfo: UpdateTableFilterInfoType<F> = (filterInfo) => {
const filterInfoData = isFilterInfoUpdaterFunction(filterInfo)
? filterInfo(tableFilterInfo)
: filterInfo;
if (
JSON.stringify(filterInfoData) === '{}' &&
JSON.stringify(tableFilterInfo) === '{}'
Expand Down
4 changes: 2 additions & 2 deletions packages/shared/lib/components/ActiontechTable/index.type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export type ICustomSearchInputProps = ICustomInputProps;
* 更新表格筛选数据的方法, 一般为 useTableRequestParams 导出的 updateTableFilterInfo
*/
export type UpdateTableFilterInfoType<F = Record<string, any>> = (
params: F
params: F | ((prevParams: F) => F)
) => void;

/**
Expand Down Expand Up @@ -102,7 +102,7 @@ export type TableFilterContainerProps<
/**
* 更新表格筛选数据
*/
updateTableFilterInfo: UpdateTableFilterInfoType;
updateTableFilterInfo: UpdateTableFilterInfoType<F>;

/**
* 表格筛选项的输入组件类型的 props, 目前只有 select 以及 date-range, 可以处理一些 onChange 等事件.
Expand Down
7 changes: 4 additions & 3 deletions packages/sqle/src/page/PluginAudit/List/columns.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ export type PluginAuditListTableFilterParamType = PageInfoWithoutIndexAndSize<

export const PluginAuditListColumns: (
onOpenDrawer: (record: ISqlDEVRecord) => void
) => ActiontechTableColumn<ISqlDEVRecord, IGetSqlDEVRecordListParams> = (
onOpenDrawer
) => {
) => ActiontechTableColumn<
ISqlDEVRecord,
PluginAuditListTableFilterParamType
> = (onOpenDrawer) => {
return [
{
dataIndex: 'sql_fingerprint',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export type SqlManagementExceptionTableFilterParamType =

export const SqlManagementExceptionListColumns: () => ActiontechTableColumn<
IBlacklistResV1,
IGetBlacklistV1Params
SqlManagementExceptionTableFilterParamType
> = () => {
return [
{
Expand Down
7 changes: 4 additions & 3 deletions packages/sqle/src/page/VersionManagement/List/column.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ export type VersionManagementTableFilterParamType = PageInfoWithoutIndexAndSize<

export const VersionManagementTableColumns: (
projectID: string
) => ActiontechTableColumn<ISqlVersionResV1, IGetSqlVersionListV1Params> = (
projectID
) => {
) => ActiontechTableColumn<
ISqlVersionResV1,
VersionManagementTableFilterParamType
> = (projectID) => {
return [
{
dataIndex: 'version',
Expand Down
Loading