Skip to content

Commit c99eb4e

Browse files
committed
fix: filter data value doesn't match desktop
1 parent 47e09d2 commit c99eb4e

File tree

2 files changed

+47
-9
lines changed

2 files changed

+47
-9
lines changed

src/application/database-yjs/database.type.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ export enum SortCondition {
4242
}
4343

4444
export enum FilterType {
45-
Data = 0,
46-
And = 1,
47-
Or = 2,
45+
And = 0,
46+
Or = 1,
47+
Data = 2,
4848
}
4949

5050
export interface Filter {

src/application/database-yjs/dispatch.ts

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { useCallback, useMemo } from 'react';
55
import { v4 as uuidv4 } from 'uuid';
66
import * as Y from 'yjs';
77

8-
import { Log } from '@/utils/log';
98
import {
109
useCreateRow,
1110
useDatabase,
@@ -76,8 +75,9 @@ import {
7675
YSharedRoot,
7776
} from '@/application/types';
7877
import { DefaultTimeSetting } from '@/application/user-metadata';
79-
import { applyYDoc } from '@/application/ydoc/apply';
8078
import { isDatabaseContainer } from '@/application/view-utils';
79+
import { applyYDoc } from '@/application/ydoc/apply';
80+
import { Log } from '@/utils/log';
8181

8282
export function useResizeColumnWidthDispatch() {
8383
const database = useDatabase();
@@ -3455,18 +3455,40 @@ export function useAddFilter() {
34553455

34563456
return useCallback(
34573457
(fieldId: string) => {
3458-
if (!view) return;
3458+
Log.debug('[useAddFilter] Creating filter', { fieldId });
3459+
3460+
// Guard: Don't create filter if fieldId is missing or empty
3461+
if (!view || !fieldId || fieldId.trim() === '') {
3462+
Log.warn('[useAddFilter] Skipping filter creation: view or fieldId is missing', {
3463+
hasView: !!view,
3464+
fieldId,
3465+
});
3466+
return;
3467+
}
3468+
34593469
const id = `${nanoid(6)}`;
34603470

3471+
Log.debug('[useAddFilter] Generated filter id', { filterId: id, fieldId });
3472+
34613473
executeOperations(
34623474
sharedRoot,
34633475
[
34643476
() => {
34653477
const field = fields.get(fieldId);
3478+
3479+
if (!field) {
3480+
Log.warn('[useAddFilter] Field not found for fieldId:', fieldId);
3481+
return;
3482+
}
3483+
34663484
const fieldType = Number(field.get(YjsDatabaseKey.type));
3485+
3486+
Log.debug('[useAddFilter] Field info', { fieldId, fieldType });
3487+
34673488
let filters = view.get(YjsDatabaseKey.filters);
34683489

34693490
if (!filters) {
3491+
Log.debug('[useAddFilter] Creating new filters array');
34703492
filters = new Y.Array() as YDatabaseFilters;
34713493
view.set(YjsDatabaseKey.filters, filters);
34723494
}
@@ -3477,7 +3499,18 @@ export function useAddFilter() {
34773499
filter.set(YjsDatabaseKey.field_id, fieldId);
34783500
const conditionData = getDefaultFilterCondition(fieldType);
34793501

3480-
if (!conditionData) return;
3502+
if (!conditionData) {
3503+
Log.warn('[useAddFilter] No default condition for fieldType:', fieldType);
3504+
return;
3505+
}
3506+
3507+
Log.debug('[useAddFilter] Setting filter data', {
3508+
filterId: id,
3509+
fieldId,
3510+
fieldType,
3511+
condition: conditionData.condition,
3512+
content: conditionData.content,
3513+
});
34813514

34823515
filter.set(YjsDatabaseKey.condition, conditionData.condition);
34833516
if (conditionData.content !== undefined) {
@@ -3488,6 +3521,8 @@ export function useAddFilter() {
34883521
filter.set(YjsDatabaseKey.filter_type, FilterType.Data);
34893522

34903523
filters.push([filter]);
3524+
3525+
Log.debug('[useAddFilter] Filter created successfully', { filterId: id, filter: filter.toJSON() });
34913526
},
34923527
],
34933528
'addFilter'
@@ -3565,10 +3600,13 @@ export function useUpdateFilter() {
35653600
return;
35663601
}
35673602

3568-
if (fieldId) {
3569-
filter.set(YjsDatabaseKey.field_id, fieldId);
3603+
if (!fieldId) {
3604+
Log.warn('[useUpdateFilter] FieldId is missing');
3605+
return;
35703606
}
35713607

3608+
filter.set(YjsDatabaseKey.field_id, fieldId);
3609+
35723610
if (condition !== undefined) {
35733611
filter.set(YjsDatabaseKey.condition, condition);
35743612
}

0 commit comments

Comments
 (0)