diff --git a/src/components/user/VideoPreview.vue b/src/components/user/VideoPreview.vue
new file mode 100644
index 0000000..adbc5b5
--- /dev/null
+++ b/src/components/user/VideoPreview.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
{{ new Date(data.duration * 1000).toISOString().slice(11, 19) }}
+
{{ abbreviate(data.views) }} {{ $t("main.views") }}
+
+
+
+
+
+
+
+
{{ data.title }}
+
+
{{ data.streamer.name }}
+
{{ data.game.displayName || data.game.name }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/user/VideoTab.vue b/src/components/user/VideoTab.vue
new file mode 100644
index 0000000..82e6d1e
--- /dev/null
+++ b/src/components/user/VideoTab.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+ Videos
+
+
+
Error getting videos
+
+
+
+
+
{{ shelve.title }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/types/VOD.ts b/src/types/VOD.ts
new file mode 100644
index 0000000..0e48937
--- /dev/null
+++ b/src/types/VOD.ts
@@ -0,0 +1,30 @@
+
+export interface MinifiedCategory {
+ image: string
+ id: string
+ name: string
+ displayName: string
+}
+
+export interface MinifiedStreamer {
+ name: string
+ login: string
+ pfp: string
+ colorHex: string
+}
+
+export interface Video {
+ preview: string
+ game: MinifiedCategory
+ duration: number
+ title: string
+ publishedAt: string
+ views: number
+ tag: string[]
+ streamer: MinifiedStreamer
+}
+
+export interface Shelve {
+ title: string
+ videos: Video[]
+}
\ No newline at end of file
diff --git a/src/views/UserView.vue b/src/views/UserView.vue
index 68f6483..18ea196 100644
--- a/src/views/UserView.vue
+++ b/src/views/UserView.vue
@@ -7,6 +7,7 @@ import TwitchChat from '@/components/TwitchChat.vue'
import ErrorMessage from '@/components/ErrorMessage.vue'
import FollowButton from '@/components/FollowButton.vue'
import LoadingScreen from '@/components/LoadingScreen.vue'
+import VideoTab from '@/components/user/VideoTab.vue'
import type { StreamerData, ApiResponse } from '@/types'
import { truncate, abbreviate, getEndpoint } from '@/mixins'
@@ -53,7 +54,8 @@ export default {
TwitchChat,
ErrorMessage,
FollowButton,
- LoadingScreen
+ LoadingScreen,
+ VideoTab
},
methods: {
truncate, abbreviate
@@ -134,6 +136,10 @@ export default {
+
+
+
+
{{ $t("streamer.about") }}