From df1040cecd1b0f17de6669bc0bb33e546a32179e Mon Sep 17 00:00:00 2001 From: Dmytro Svyrydenko Date: Wed, 27 Sep 2023 23:17:15 +0300 Subject: [PATCH 01/19] fix: categories page layout issues --- src/pages/settings/subpages/categories/index.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/settings/subpages/categories/index.vue b/src/pages/settings/subpages/categories/index.vue index bafd8b84..9d806e73 100644 --- a/src/pages/settings/subpages/categories/index.vue +++ b/src/pages/settings/subpages/categories/index.vue @@ -283,8 +283,7 @@ const deleteCategory = async () => { } } .categories-page__category-info { - display: grid; - grid-template-columns: min-content 1fr; + display: flex; align-items: center; gap: 8px; } From a6f7ef39a0144f69e302a3d9e9227149d9d1e51e Mon Sep 17 00:00:00 2001 From: Dmytro Svyrydenko Date: Wed, 27 Sep 2023 23:18:13 +0300 Subject: [PATCH 02/19] chore: Get rid of event bus --- src/js/utils/error-handler.util.ts | 6 +- src/js/utils/event-bus.test.ts | 109 ------------------ src/js/utils/event-bus.ts | 44 ------- src/js/utils/index.ts | 1 - .../dashboard/accounts-list/accounts-list.vue | 12 +- src/stores/root.ts | 8 +- 6 files changed, 9 insertions(+), 171 deletions(-) delete mode 100644 src/js/utils/event-bus.test.ts delete mode 100644 src/js/utils/event-bus.ts diff --git a/src/js/utils/error-handler.util.ts b/src/js/utils/error-handler.util.ts index 2d76432b..64e1ff7d 100644 --- a/src/js/utils/error-handler.util.ts +++ b/src/js/utils/error-handler.util.ts @@ -1,12 +1,8 @@ import log from 'loglevel'; import * as errors from '@/js/errors'; -import { eventBus } from './event-bus'; export class ErrorHandler { - static process(error: Error, message = ''): void { - const msgTrId = message || ErrorHandler._getMessage(error); - eventBus.error(msgTrId); - + static process(error: Error): void { ErrorHandler.processWithoutFeedback(error); } diff --git a/src/js/utils/event-bus.test.ts b/src/js/utils/event-bus.test.ts deleted file mode 100644 index 21c7ab0c..00000000 --- a/src/js/utils/event-bus.test.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { eventBus, BUS_EVENTS } from './event-bus'; - -describe('js/utils/event-bus', () => { - beforeEach(() => { - eventBus.reset(); - }); - - test('listens for emitted events with no passed args', () => { - const spy = vi.fn(); - const spy2 = vi.fn(); - - eventBus.on(BUS_EVENTS.error, spy); - eventBus.on(BUS_EVENTS.error, spy2); - - eventBus.emit(BUS_EVENTS.error); - - expect(spy).toHaveBeenCalledTimes(1); - expect(spy2).toHaveBeenCalledTimes(1); - expect(spy).toHaveBeenCalledWith(undefined); - expect(spy2).toHaveBeenCalledWith(undefined); - }); - - test('listens for emitted events with passed args', () => { - const spy = vi.fn(); - const spy2 = vi.fn(); - const payload = 'test string'; - - eventBus.on(BUS_EVENTS.error, spy); - eventBus.on(BUS_EVENTS.error, spy2); - - eventBus.emit(BUS_EVENTS.error, payload); - - expect(spy).toHaveBeenCalledTimes(1); - expect(spy).toHaveBeenCalledWith(payload); - expect(spy2).toHaveBeenCalledTimes(1); - expect(spy2).toHaveBeenCalledWith(payload); - }); - - test('multiple calls work fine', () => { - const spy = vi.fn(); - const payload1 = 'test string'; - const payload2 = 'test string 2'; - - eventBus.on(BUS_EVENTS.error, spy); - - eventBus.emit(BUS_EVENTS.error); - eventBus.emit(BUS_EVENTS.error, payload1); - eventBus.emit(BUS_EVENTS.error, payload2); - - expect(spy).toHaveBeenCalledTimes(3); - expect(spy).toHaveBeenNthCalledWith(1, undefined); - expect(spy).toHaveBeenNthCalledWith(2, payload1); - expect(spy).toHaveBeenNthCalledWith(3, payload2); - }); - - test('unsubscribe works fine', () => { - const spy1 = vi.fn(); - const spy2 = vi.fn(); - - eventBus.on(BUS_EVENTS.error, spy1); - eventBus.on(BUS_EVENTS.error, spy2); - - eventBus.emit(BUS_EVENTS.error, 'first'); - - eventBus.off(BUS_EVENTS.error, spy1); - - eventBus.emit(BUS_EVENTS.error, 'second'); - - expect(spy1).toHaveBeenCalledTimes(1); - expect(spy1).toHaveBeenNthCalledWith(1, 'first'); - - expect(spy2).toHaveBeenCalledTimes(2); - expect(spy2).toHaveBeenNthCalledWith(1, 'first'); - expect(spy2).toHaveBeenNthCalledWith(2, 'second'); - }); - - test('reset works correctly', () => { - const spy1 = vi.fn(); - const spy2 = vi.fn(); - - eventBus.on(BUS_EVENTS.error, spy1); - eventBus.on(BUS_EVENTS.error, spy2); - - eventBus.emit(BUS_EVENTS.error, 'first'); - - eventBus.off(BUS_EVENTS.error, spy1); - eventBus.reset(); - - eventBus.emit(BUS_EVENTS.error, 'second'); - - expect(spy1).toHaveBeenCalledTimes(1); - expect(spy1).toHaveBeenNthCalledWith(1, 'first'); - - expect(spy2).toHaveBeenCalledTimes(1); - expect(spy2).toHaveBeenNthCalledWith(1, 'first'); - }); - - test('"error" event is fired', () => { - const spy = vi.fn(); - const payload = 'error message'; - - eventBus.on(BUS_EVENTS.error, spy); - - eventBus.error(payload); - - expect(spy).toHaveBeenCalledTimes(1); - expect(spy).toHaveBeenNthCalledWith(1, payload); - }); -}); diff --git a/src/js/utils/event-bus.ts b/src/js/utils/event-bus.ts deleted file mode 100644 index 4248591e..00000000 --- a/src/js/utils/event-bus.ts +++ /dev/null @@ -1,44 +0,0 @@ -export enum BUS_EVENTS { - transactionChange = 'transaction-change', - error = 'error', -} - -class EventBus { - events: Record void)[]>; - - constructor() { - this.events = {}; - } - - on(eventName: BUS_EVENTS, fn: () => void) { - this.events[eventName] = this.events[eventName] || []; - this.events[eventName].push(fn); - } - - emit(eventName: BUS_EVENTS, data?: unknown) { - if (this.events[eventName]) { - this.events[eventName].forEach((fn) => { - fn(data); - }); - } - } - - off(eventName: BUS_EVENTS, fn: () => void) { - if (this.events[eventName]) { - for (let i = 0; i < this.events[eventName].length; i++) { - if (this.events[eventName][i] === fn) { - this.events[eventName].splice(i, 1); - break; - } - } - } - } - - reset() { - this.events = {}; - } - - error(payload: unknown) { this.emit(BUS_EVENTS.error, payload); } -} - -export const eventBus = new EventBus(); diff --git a/src/js/utils/index.ts b/src/js/utils/index.ts index 33b871b5..05ed337f 100644 --- a/src/js/utils/index.ts +++ b/src/js/utils/index.ts @@ -1,2 +1 @@ export { ErrorHandler } from './error-handler.util'; -export * from './event-bus'; diff --git a/src/pages/dashboard/accounts-list/accounts-list.vue b/src/pages/dashboard/accounts-list/accounts-list.vue index 358d545f..497493bb 100644 --- a/src/pages/dashboard/accounts-list/accounts-list.vue +++ b/src/pages/dashboard/accounts-list/accounts-list.vue @@ -13,14 +13,13 @@ diff --git a/src/components/modals/modify-record/index.vue b/src/components/modals/modify-record/index.vue index 5d3665de..4ace3629 100644 --- a/src/components/modals/modify-record/index.vue +++ b/src/components/modals/modify-record/index.vue @@ -37,13 +37,13 @@ @@ -65,6 +65,7 @@ :disabled="isTargetAmountFieldDisabled" only-positive label="Target amount" + placeholder="Target amount" type="number" >