Skip to content

Commit 043bc23

Browse files
authored
Merge pull request #218 from buggregator/issue/#74-unused-event-types
Issue/#74 unused event types
2 parents bc2f486 + 4da4150 commit 043bc23

File tree

6 files changed

+28
-7
lines changed

6 files changed

+28
-7
lines changed

src/shared/lib/use-events/normalize-unknown-event.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { ServerEvent, NormalizedEvent } from "../../types";
33
export const normalizeUnknownEvent = (event: ServerEvent<unknown>): NormalizedEvent<unknown> => ({
44
id: event.uuid,
55
type: 'unknown',
6-
labels: [event.type],
6+
labels: [String(event.type)],
77
origin: null,
88
serverName: "",
99
date: event.timestamp ? new Date(event.timestamp * 1000) : null,

src/shared/stores/events/events-store.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {PAGE_TYPES} from "../../constants";
33
import {useSettings} from "../../lib/use-settings";
44
import type {EventId, EventType, ServerEvent, TEventsGroup, TProjects} from '../../types';
55
import {EVENT_TYPES} from "../../types";
6+
import {useSettingsStore} from "../settings";
67
import {
78
getStoredLockedIds,
89
setStoredCachedIds,
@@ -84,13 +85,20 @@ export const useEventsStore = defineStore("eventsStore", {
8485
},
8586
// events
8687
initializeEvents (events: ServerEvent<unknown>[]): void {
87-
this.events = events.slice(0, MAX_EVENTS_COUNT);
88+
const { availableEvents } = useSettingsStore();
89+
90+
this.events = events
91+
.filter((el) => availableEvents.includes(el.type as EventType))
92+
.slice(0, MAX_EVENTS_COUNT);
8893

8994
this.syncCachedWithActive(events.map(({ uuid }) => uuid));
9095
this.initActiveProjectKey();
9196
},
9297
addList(events: ServerEvent<unknown>[]): void {
93-
events.forEach((event) => {
98+
const { availableEvents } = useSettingsStore();
99+
events
100+
.filter((el) => availableEvents.includes(el.type as EventType))
101+
.forEach((event) => {
94102
const isExistedEvent: boolean = this.events.some((el): boolean => el.uuid === event.uuid);
95103
if (!isExistedEvent) {
96104
this.events.unshift(event)

src/shared/stores/settings/settings-store.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {defineStore} from "pinia";
22
import {REST_API_URL} from "../../lib/io/constants";
3-
import type { TSettings } from "../../types";
3+
import {EVENT_TYPES, type EventType, type TSettings} from "../../types";
44
import {THEME_MODES} from "./constants";
55
import {
66
getStoredEventsCountVisibility,
@@ -23,6 +23,7 @@ export const useSettingsStore = defineStore("settingsStore", {
2323
themeType: getStoredActiveTheme(),
2424
isFixedHeader: getStoredFixedHeader(),
2525
isVisibleEventCounts: getStoredEventsCountVisibility(),
26+
availableEvents: [] as EventType[],
2627
}),
2728
actions: {
2829
async fetchSettings() {
@@ -44,6 +45,9 @@ export const useSettingsStore = defineStore("settingsStore", {
4445
this.authLogicUrl = settings.auth.login_url;
4546
}
4647

48+
// TODO: meed to move to the events store
49+
this.availableEvents = settings?.client?.events ?? Object.values(EVENT_TYPES);
50+
4751
this.isFetched = true
4852

4953
return settings

src/shared/types/events.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export type EventType = OneOfValues<typeof EVENT_TYPES>;
2121

2222
export interface ServerEvent<T> {
2323
uuid: EventId,
24-
type: EventType | string,
24+
type: EventType | unknown,
2525
payload: T,
2626
project: string | null,
2727
timestamp: number // unavailable for some ray dump events

src/shared/types/settings.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {type EventType} from "./events";
2+
13
export type TProfile = {
24
username: string,
35
email: string,
@@ -10,6 +12,9 @@ export type TSettings = {
1012
login_url: string,
1113
},
1214
version: string,
15+
client: {
16+
events: EventType[],
17+
}
1318
}
1419

1520

src/widgets/ui/layout-sidebar/layout-sidebar.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const logout = () => {
104104
105105
const path = computed(() => useRoute().path);
106106
107-
const { apiVersion } = storeToRefs(useSettingsStore());
107+
const { apiVersion, availableEvents } = storeToRefs(useSettingsStore());
108108
109109
const clientVersion = ref(
110110
!version || version === "0.0.1" ? "@dev" : `v${version}`,
@@ -122,6 +122,10 @@ const setProject = (projectKey: string) => {
122122
isVisibleProjects.value = false;
123123
};
124124
125+
const filteredNavOrder = computed(() =>
126+
EVENTS_NAV_ORDER.filter((type) => availableEvents.value.includes(type)),
127+
);
128+
125129
const makeShortTitle = (title: string) => (title || "").substring(0, 2);
126130
const generateRadialGradient = (input: string) =>
127131
`linear-gradient(to right, ${textToColors(input || "").join(", ")})`;
@@ -170,7 +174,7 @@ const generateRadialGradient = (input: string) =>
170174
</NuxtLink>
171175
</template>
172176

173-
<template v-for="type in EVENTS_NAV_ORDER" :key="type">
177+
<template v-for="type in filteredNavOrder" :key="type">
174178
<NuxtLink
175179
:to="EVENTS_LINKS_MAP[type].path"
176180
:title="EVENTS_LINKS_MAP[type].title"

0 commit comments

Comments
 (0)