mirror of
https://github.com/modrinth/code.git
synced 2026-08-25 17:14:50 +00:00
* refactor: migrate to common eslint+prettier configs
* fix: prettier frontend
* feat: config changes
* fix: lint issues
* fix: lint
* fix: type imports
* fix: cyclical import issue
* fix: lockfile
* fix: missing dep
* fix: switch to tabs
* fix: continue switch to tabs
* fix: rustfmt parity
* fix: moderation lint issue
* fix: lint issues
* fix: ui intl
* fix: lint issues
* Revert "fix: rustfmt parity"
This reverts commit cb99d2376c.
* feat: revert last rs
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import {
|
|
AbstractWebNotificationManager,
|
|
type NotificationPanelLocation,
|
|
type WebNotification,
|
|
} from '@modrinth/ui'
|
|
|
|
import { useState } from '#app'
|
|
|
|
export class FrontendNotificationManager extends AbstractWebNotificationManager {
|
|
private readonly state: Ref<WebNotification[]>
|
|
private readonly locationState: Ref<NotificationPanelLocation>
|
|
|
|
public constructor() {
|
|
super()
|
|
this.state = useState<WebNotification[]>('notifications', () => [])
|
|
this.locationState = useState<NotificationPanelLocation>(
|
|
'notifications.location',
|
|
() => 'right',
|
|
)
|
|
}
|
|
|
|
public getNotificationLocation(): NotificationPanelLocation {
|
|
return this.locationState.value
|
|
}
|
|
|
|
public setNotificationLocation(location: NotificationPanelLocation): void {
|
|
this.locationState.value = location
|
|
}
|
|
|
|
public getNotifications(): WebNotification[] {
|
|
return this.state.value
|
|
}
|
|
|
|
protected addNotificationToStorage(notification: WebNotification): void {
|
|
this.state.value.push(notification)
|
|
}
|
|
|
|
protected removeNotificationFromStorage(id: string | number): void {
|
|
const index = this.state.value.findIndex((n) => n.id === id)
|
|
if (index > -1) {
|
|
this.state.value.splice(index, 1)
|
|
}
|
|
}
|
|
|
|
protected removeNotificationFromStorageByIndex(index: number): void {
|
|
this.state.value.splice(index, 1)
|
|
}
|
|
|
|
protected clearAllNotificationsFromStorage(): void {
|
|
this.state.value.splice(0)
|
|
}
|
|
}
|