feat: overhaul FlipTok and garage interfaces

This commit is contained in:
Leon.Schmidt
2026-08-16 21:51:04 +02:00
parent a97d09a6b2
commit 1bcf04d021
13 changed files with 994 additions and 408 deletions
-21
View File
@@ -7,7 +7,6 @@ import type {
FlipTokPage,
FlipTokProfile,
FlipTokProfilePage,
FlipTokReport,
FlipTokVideo,
} from '@/types/fliptok'
import { nuiCall, type NuiResponse } from '@/utils/nui'
@@ -19,13 +18,11 @@ export const useFlipTokStore = defineStore('fliptok', {
comments: [] as FlipTokComment[],
connections: [] as FlipTokProfile[],
feed: [] as FlipTokVideo[],
isAdmin: false,
loading: false,
musicTracks: [] as FlipTokMusicTrack[],
mode: 'for-you' as 'for-you' | 'following',
profile: null as FlipTokProfile | null,
profileVideos: [] as FlipTokVideo[],
reports: [] as FlipTokReport[],
searchResults: [] as FlipTokVideo[],
viewedProfile: null as FlipTokProfile | null,
}),
@@ -65,7 +62,6 @@ export const useFlipTokStore = defineStore('fliptok', {
const response = await nuiCall<{
authenticated: boolean
feed?: FlipTokPage
isAdmin?: boolean
musicTracks: FlipTokMusicTrack[]
profile?: FlipTokProfile
}>('fliptok:bootstrap')
@@ -74,7 +70,6 @@ export const useFlipTokStore = defineStore('fliptok', {
this.authenticated = response.data.authenticated === true
this.profile = response.data.profile ?? null
this.feed = response.data.feed?.items ?? []
this.isAdmin = response.data.isAdmin === true
this.musicTracks = response.data.musicTracks ?? []
return true
},
@@ -247,21 +242,5 @@ export const useFlipTokStore = defineStore('fliptok', {
this.activities = response.success && response.data ? response.data : []
if (response.success) await nuiCall('fliptok:mark-activities')
},
async loadReports(): Promise<boolean> {
const response = await nuiCall<FlipTokReport[]>('fliptok:admin-reports')
this.reports = response.success && response.data ? response.data : []
return response.success
},
async resolveReport(
id: string,
action: 'dismiss' | 'remove',
): Promise<boolean> {
const response = await nuiCall('fliptok:admin-resolve-report', {
action,
id,
})
if (response.success) await this.loadReports()
return response.success
},
},
})