✨ Better avatar and banner APIs
This commit is contained in:
		
							
								
								
									
										2
									
								
								web/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								web/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -28,3 +28,5 @@ coverage
 | 
			
		||||
*.sw?
 | 
			
		||||
 | 
			
		||||
*.tsbuildinfo
 | 
			
		||||
 | 
			
		||||
.vite
 | 
			
		||||
@@ -1,8 +1,85 @@
 | 
			
		||||
{
 | 
			
		||||
  "hash": "47c7bee8",
 | 
			
		||||
  "hash": "8b6d0833",
 | 
			
		||||
  "configHash": "9db2f33b",
 | 
			
		||||
  "lockfileHash": "e3b0c442",
 | 
			
		||||
  "browserHash": "0938dccf",
 | 
			
		||||
  "optimized": {},
 | 
			
		||||
  "chunks": {}
 | 
			
		||||
  "lockfileHash": "f7feab31",
 | 
			
		||||
  "browserHash": "0decaeb8",
 | 
			
		||||
  "optimized": {
 | 
			
		||||
    "vue": {
 | 
			
		||||
      "src": "../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
 | 
			
		||||
      "file": "vue.js",
 | 
			
		||||
      "fileHash": "1913939b",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "pinia": {
 | 
			
		||||
      "src": "../../node_modules/pinia/dist/pinia.mjs",
 | 
			
		||||
      "file": "pinia.js",
 | 
			
		||||
      "fileHash": "4c101c90",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "vuetify": {
 | 
			
		||||
      "src": "../../node_modules/vuetify/lib/framework.mjs",
 | 
			
		||||
      "file": "vuetify.js",
 | 
			
		||||
      "fileHash": "3ab2542c",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "vuetify/blueprints": {
 | 
			
		||||
      "src": "../../node_modules/vuetify/lib/blueprints/index.mjs",
 | 
			
		||||
      "file": "vuetify_blueprints.js",
 | 
			
		||||
      "fileHash": "b34fe63c",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "vuetify/components": {
 | 
			
		||||
      "src": "../../node_modules/vuetify/lib/components/index.mjs",
 | 
			
		||||
      "file": "vuetify_components.js",
 | 
			
		||||
      "fileHash": "42f8a374",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "vuetify/labs/components": {
 | 
			
		||||
      "src": "../../node_modules/vuetify/lib/labs/components.mjs",
 | 
			
		||||
      "file": "vuetify_labs_components.js",
 | 
			
		||||
      "fileHash": "a46a672a",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "vuetify/directives": {
 | 
			
		||||
      "src": "../../node_modules/vuetify/lib/directives/index.mjs",
 | 
			
		||||
      "file": "vuetify_directives.js",
 | 
			
		||||
      "fileHash": "66c34130",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "vue-router": {
 | 
			
		||||
      "src": "../../node_modules/vue-router/dist/vue-router.mjs",
 | 
			
		||||
      "file": "vue-router.js",
 | 
			
		||||
      "fileHash": "56488480",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "chunks": {
 | 
			
		||||
    "chunk-WKTZ3I3B": {
 | 
			
		||||
      "file": "chunk-WKTZ3I3B.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-XJKCW2PU": {
 | 
			
		||||
      "file": "chunk-XJKCW2PU.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-VFMM6PD2": {
 | 
			
		||||
      "file": "chunk-VFMM6PD2.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-XREPMAG4": {
 | 
			
		||||
      "file": "chunk-XREPMAG4.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-ZUZRGUJJ": {
 | 
			
		||||
      "file": "chunk-ZUZRGUJJ.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-V6X3YB3T": {
 | 
			
		||||
      "file": "chunk-V6X3YB3T.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-6CN2GOSH": {
 | 
			
		||||
      "file": "chunk-6CN2GOSH.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-AYVSL3LM": {
 | 
			
		||||
      "file": "chunk-AYVSL3LM.js"
 | 
			
		||||
    },
 | 
			
		||||
    "chunk-Q5PGHB6G": {
 | 
			
		||||
      "file": "chunk-Q5PGHB6G.js"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -14,12 +14,12 @@
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@fontsource/roboto": "^5.0.13",
 | 
			
		||||
    "@mdi/font": "^7.4.47",
 | 
			
		||||
    "@unocss/reset": "^0.58.9",
 | 
			
		||||
    "@unocss/reset": "^0.61.0",
 | 
			
		||||
    "dompurify": "^3.1.5",
 | 
			
		||||
    "marked": "^12.0.2",
 | 
			
		||||
    "pinia": "^2.1.7",
 | 
			
		||||
    "universal-cookie": "^7.1.4",
 | 
			
		||||
    "unocss": "^0.58.9",
 | 
			
		||||
    "unocss": "^0.61.0",
 | 
			
		||||
    "vue": "^3.4.30",
 | 
			
		||||
    "vue-router": "^4.4.0",
 | 
			
		||||
    "vuetify": "^3.6.10"
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
                   subtitle="There is no more new things for you..." />
 | 
			
		||||
    </v-list>
 | 
			
		||||
 | 
			
		||||
    <v-list v-else class="w-[380px]" density="compact" lines="three">
 | 
			
		||||
    <v-list v-else density="compact" lines="three">
 | 
			
		||||
      <v-list-item v-for="(item, idx) in notify.notifications" :key="idx">
 | 
			
		||||
        <template #title>{{ item.subject }}</template>
 | 
			
		||||
        <template #subtitle>{{ item.content }}</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <v-card>
 | 
			
		||||
      <v-img cover class="bg-grey-lighten-2" :height="240" :src="'/api/avatar/' + id.userinfo.data.banner" />
 | 
			
		||||
      <v-img cover class="bg-grey-lighten-2" :height="240" src="/api/avatar" />
 | 
			
		||||
 | 
			
		||||
      <v-card-text class="flex gap-3.5 px-5 pb-5">
 | 
			
		||||
        <v-avatar
 | 
			
		||||
          color="grey-lighten-2"
 | 
			
		||||
          icon="mdi-account-circle"
 | 
			
		||||
          class="rounded-card"
 | 
			
		||||
          image="/api/banner"
 | 
			
		||||
          :size="54"
 | 
			
		||||
          :image="'/api/avatar/' + id.userinfo.data.avatar"
 | 
			
		||||
        />
 | 
			
		||||
        <div>
 | 
			
		||||
          <h1 class="text-2xl cursor-pointer" @click="show.realname = !show.realname">{{ displayName }}</h1>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user