fix: filter notification with id

This commit is contained in:
nathan 2023-03-01 19:05:56 +08:00
parent fd135fb664
commit f58c91fb3f
3 changed files with 14 additions and 8 deletions

View File

@ -26,7 +26,7 @@ export const TestCreateGrid = () => {
},
onRowsChanged: async (rows) => {
if (rows.length !== 3) {
throw Error('Expected number of rows is 3, but receive ' + rows.length);
throw Error('Expected number of rows is 3, but receive ' + rows.length + view.id);
}
},
onFieldsChanged: (fields) => {
@ -36,6 +36,7 @@ export const TestCreateGrid = () => {
},
});
await databaseController.open().then((result) => result.unwrap());
await databaseController.dispose();
}
return TestButton('Test create build-in grid', createBuildInGrid);

View File

@ -15,7 +15,6 @@ export class CellCache {
remove = (key: CellCacheKey) => {
const cellDataByRowId = this.cellDataByFieldId.get(key.fieldId);
if (cellDataByRowId !== undefined) {
console.log('cellDataByRowId', cellDataByRowId);
cellDataByRowId.delete(key.rowId);
}
};

View File

@ -1,6 +1,6 @@
import { listen, UnlistenFn } from '@tauri-apps/api/event';
import { SubscribeObject } from '../models/flowy-notification';
import { NotificationParser } from './parser';
import { listen, UnlistenFn } from "@tauri-apps/api/event";
import { SubscribeObject } from "../models/flowy-notification";
import { NotificationParser } from "./parser";
export abstract class AFNotificationObserver<T> {
parser?: NotificationParser<T> | null;
@ -11,9 +11,15 @@ export abstract class AFNotificationObserver<T> {
}
async start() {
this._listener = await listen('af-notification', (notification) => {
const object = SubscribeObject.fromObject(notification.payload as {});
this.parser?.parse(object);
this._listener = await listen("af-notification", (notification) => {
const object: SubscribeObject = SubscribeObject.fromObject(notification.payload as {});
if (this.parser?.id !== undefined) {
if (object.id === this.parser.id) {
this.parser?.parse(object);
}
} else {
this.parser?.parse(object);
}
});
}