diff --git a/package-lock.json b/package-lock.json index 62f452d..0bf9597 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@intlify/vite-plugin-vue-i18n": "^3.3.1", - "@quasar/app-vite": "^1.8.0", + "@quasar/app-vite": "^1.8.5", "@quasar/cli": "^2.4.0", "@types/node": "^12.20.21", "@typescript-eslint/eslint-plugin": "^5.10.0", diff --git a/src/App.vue b/src/App.vue index 7e6cda0..31388fe 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,16 +1,18 @@ - + - diff --git a/src/components/MessageComponent.vue b/src/components/MessageComponent.vue new file mode 100644 index 0000000..ee8b378 --- /dev/null +++ b/src/components/MessageComponent.vue @@ -0,0 +1,47 @@ + + + + + {{props.message}} + + {{props.url}} + + + {{props.timestamp}} + + + + + diff --git a/src/components/ProfileCardComponent.vue b/src/components/ProfileCardComponent.vue new file mode 100644 index 0000000..ae08e36 --- /dev/null +++ b/src/components/ProfileCardComponent.vue @@ -0,0 +1,49 @@ + + + + + + + + {{props.displayName}} + @{{props.username}} + + + {{ props.status }} + + + + + diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 08eb52d..a1f7679 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -1,47 +1,5 @@ - - - - - - Quasar App - - - Quasar v{{ $q.version }} - - - - - - - Essential Links - - - - - - - - - - diff --git a/src/models.ts b/src/models.ts index 3357866..6c37bd5 100644 --- a/src/models.ts +++ b/src/models.ts @@ -26,9 +26,36 @@ export interface user{ chats: chat[]; } -export interface message{ +export interface message { id: number; chat: chat; - sender: user; + sender:user; content: string; + timestamp: string; + isOwn: boolean; + gif: boolean; + link: boolean; +} + +export interface tenorGif { + url: string, + duration: number, + preview: string, + dims: Array, + size: number, +} + +export interface testType { + nanogif: tenorGif, + mediumgif: tenorGif, +} + +export interface tenorResponseElement { + id: string, + title: string, + media_formats: testType, +} + +export interface tenorResponse { + results: Array, } diff --git a/src/pages/IndexPage.vue b/src/pages/IndexPage.vue index a2b3a2c..9cf4e30 100644 --- a/src/pages/IndexPage.vue +++ b/src/pages/IndexPage.vue @@ -1,25 +1,280 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gib einen Nutzername ein, um die Suche zu beginnen + + + + Hier werden dann die Chats angezeigt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + diff --git a/src/pages/TestPage.vue b/src/pages/TestPage.vue deleted file mode 100644 index 7cbb38b..0000000 --- a/src/pages/TestPage.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - Hallloooooooooo - - - - diff --git a/src/router/routes.ts b/src/router/routes.ts index e174e01..2d34fc1 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -6,10 +6,6 @@ const routes: RouteRecordRaw[] = [ component: () => import('layouts/MainLayout.vue'), children: [{ path: '', component: () => import('pages/IndexPage.vue') }], }, - { - path: '/test', - component: () => import('pages/TestPage.vue') - }, // Always leave this as last one, // but you can also remove it diff --git a/src/stores/tenor-store.ts b/src/stores/tenor-store.ts new file mode 100644 index 0000000..893af5a --- /dev/null +++ b/src/stores/tenor-store.ts @@ -0,0 +1,26 @@ +import { defineStore } from 'pinia'; +import {api} from 'boot/axios'; +import { ptpUser, responseModel, tenorResponseElement } from 'src/models'; +import Keycloak from 'keycloak-js'; + +export const useTenorStore = defineStore('tenorStore', { + state: () => ({ + gifs: [] as Array, + gifsLoaded: false, + }), + getters: { + + }, + actions: { + getGifsBySearchTerm(searchTerm : string, amount : number) { + this.loadGifsBySearchTerm(searchTerm, amount).then((response : any) => { + this.gifs = response.data.results; + this.gifsLoaded = true; + console.log(this.gifsLoaded + " / from store"); + }); + }, + async loadGifsBySearchTerm(searchTerm : string, amount : number) : Promise { + return await api.get("https://tenor.googleapis.com/v2/search?q="+searchTerm+"&key=AIzaSyBXsUPCjnmjXwcdqMLsyhrH1zm_6VYH_fY&client_key=praxistransferProjekt&limit="+amount); + } + }, +}); diff --git a/src/stores/user-store.ts b/src/stores/user-store.ts index 0744ed0..877b554 100644 --- a/src/stores/user-store.ts +++ b/src/stores/user-store.ts @@ -30,6 +30,8 @@ export const useUserStore = defineStore('userStore', { state: () => ({ user: null as ptpUser | null, userLoaded: false, + users: [] as ptpUser[], + usersLoaded: false, keycloak: null as Keycloak | null, id: "", users: [] as ptpUser[], @@ -44,10 +46,18 @@ export const useUserStore = defineStore('userStore', { async loadPtpUsersById(id : string) : Promise { return (await api.get("/users/login/"+id)).data; }, - async loadAllUsers(): Promise { - this.users = (await api.get("/users/user")).data; - return this.users; + + getAllPtpUsers() { + this.loadAllPtpUsers().then((response : ptpUser[]) => { + this.users = response; + this.usersLoaded = true; + }) }, + + async loadAllPtpUsers() { + return (await api.get("/users/user")).data; + }, + async initKeycloak() : Promise{ try { diff --git a/tsconfig.json b/tsconfig.json index 1cd2194..6b2177a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,4 +3,12 @@ "compilerOptions": { "baseUrl": "." }, + "exclude": [ + "./dist", + "./.quasar", + "./node_modules", + "./src-capacitor", + "./src-cordova", + "./quasar.config.*.temporary.compiled*" + ] }
{{props.message}}
+ {{props.displayName}} + @{{props.username}} +
{{ props.status }}
Gib einen Nutzername ein, um die Suche zu beginnen
Hier werden dann die Chats angezeigt