Merge pull request #718 from rocboss/dev

docs: localize paopao.info assets in bilingual README files
pull/727/head
ROC 5 months ago committed by GitHub
commit 2f55b4b5d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

@ -202,11 +202,11 @@ All notable changes to paopao-ce are documented in this file.
TweetMobileEllipsisSize: 300 # 移动端推文作为feed显示的最长字数默认300字 TweetMobileEllipsisSize: 300 # 移动端推文作为feed显示的最长字数默认300字
DefaultTweetVisibility: friend # 推文可见性,默认好友可见 值: public/following/friend/private DefaultTweetVisibility: friend # 推文可见性,默认好友可见 值: public/following/friend/private
DefaultMsgLoopInterval: 5000 # 拉取未读消息的间隔,单位:毫秒, 默认5000ms DefaultMsgLoopInterval: 5000 # 拉取未读消息的间隔,单位:毫秒, 默认5000ms
CopyrightTop: "2023 paopao.info" CopyrightTop: "2026 PaoPao"
CopyrightLeft: "Roc's Me" CopyrightLeft: ""
CopyrightLeftLink: "" CopyrightLeftLink: ""
CopyrightRight: "泡泡(PaoPao)开源社区" CopyrightRight: "Github"
CopyrightRightLink: "https://www.paopao.info" CopyrightRightLink: "https://github.com/rocboss/paopao-ce"
... ...
``` ```
- add read more contents support for post card in tweets list. - add read more contents support for post card in tweets list.

@ -10,7 +10,7 @@
<div align="center"> <div align="center">
<a href="https://github.com/rocboss/paopao-ce"> <a href="https://github.com/rocboss/paopao-ce">
<img src="https://assets.paopao.info/static/paopao-logo.png" alt="PaoPao logo" width="88" height="88"> <img src="./.assets/readme/paopao-logo.png" alt="PaoPao logo" width="88" height="88">
</a> </a>
<h1 align="center">PaoPao</h1> <h1 align="center">PaoPao</h1>
@ -24,7 +24,7 @@
<p align="center"> <p align="center">
<a href="README_ZH.md">简体中文</a> <a href="README_ZH.md">简体中文</a>
· ·
<a href="https://www.paopao.info/">Live Demo</a> <a href="https://paopao-demo.vercel.app/">Live Demo</a>
· ·
<a href="https://github.com/rocboss/paopao-ce/pulls">Pull Requests</a> <a href="https://github.com/rocboss/paopao-ce/pulls">Pull Requests</a>
· ·
@ -52,15 +52,15 @@ The repository is suitable for teams or individuals who want to run a community
### Web ### Web
[![Light theme preview](https://assets.paopao.info/static/paopao-light.jpeg)](https://www.paopao.info) [![Light theme preview](./.assets/readme/preview-light.jpeg)](https://paopao-demo.vercel.app)
[![Dark theme preview](https://assets.paopao.info/static/paopao-dark.jpeg)](https://www.paopao.info) [![Dark theme preview](./.assets/readme/preview-dark.jpeg)](https://paopao-demo.vercel.app)
### Desktop ### Desktop
![](docs/proposal/.assets/000-00.jpg) ![](docs/proposal/.assets/000-00.jpg)
More screenshots and live behavior are available at [paopao.info](https://www.paopao.info/). More screenshots and live behavior are available at [PaoPao](https://paopao-demo.vercel.app/).
## Architecture at a Glance ## Architecture at a Glance

@ -10,7 +10,7 @@
<div align="center"> <div align="center">
<a href="https://github.com/rocboss/paopao-ce"> <a href="https://github.com/rocboss/paopao-ce">
<img src="https://assets.paopao.info/static/paopao-logo.png" alt="PaoPao logo" width="88" height="88"> <img src="./.assets/readme/paopao-logo.png" alt="PaoPao logo" width="88" height="88">
</a> </a>
<h1 align="center">PaoPao</h1> <h1 align="center">PaoPao</h1>
@ -24,7 +24,7 @@
<p align="center"> <p align="center">
<a href="README.md">English</a> <a href="README.md">English</a>
· ·
<a href="https://www.paopao.info/">在线演示</a> <a href="https://paopao-demo.vercel.app/">在线演示</a>
· ·
<a href="https://github.com/rocboss/paopao-ce/pulls">Pull Requests</a> <a href="https://github.com/rocboss/paopao-ce/pulls">Pull Requests</a>
· ·
@ -52,15 +52,15 @@ PaoPao 是一个完整的开源微社区系统,包含 Go 后端、Vue 3 Web
### Web 端 ### Web 端
[![明色主题预览](https://assets.paopao.info/static/paopao-light.jpeg)](https://www.paopao.info) [![明色主题预览](./.assets/readme/preview-light.jpeg)](https://paopao-demo.vercel.app)
[![暗色主题预览](https://assets.paopao.info/static/paopao-dark.jpeg)](https://www.paopao.info) [![暗色主题预览](./.assets/readme/preview-dark.jpeg)](https://paopao-demo.vercel.app)
### 桌面端 ### 桌面端
![](docs/proposal/.assets/000-00.jpg) ![](docs/proposal/.assets/000-00.jpg)
更多效果可前往 [paopao.info](https://www.paopao.info/) 查看。 更多效果可前往 [PaoPao](https://paopao-demo.vercel.app/) 查看。
## 架构概览 ## 架构概览

@ -3,8 +3,7 @@ PaoPao部署站点信息。
| 名称 | 网址 | 站长 | 备注 | | 名称 | 网址 | 站长 | 备注 |
| ----- | ----- | ----- | ----- | | ----- | ----- | ----- | ----- |
|泡泡|[www.paopao.info](https://www.paopao.info)|[ROC](https://www.paopao.info/#/user?username=roc 'roc(@paopao.info)')|PaoPao官方站点| |布里塔|[bulita.cn](https://bulita.cn)|chendong|招聘求职等信息|
|布里塔|[bulita.cn](https://bulita.cn)|[chendong](https://www.paopao.info/#/user?username=chendong 'chendong(@paopao.info)')|招聘求职等信息| |提示词社区|[promptser.cn](https://promptser.cn)|henryspace|提示词社区|
|提示词社区|[promptser.cn](https://promptser.cn)|[henryspace](https://paopao.info/#/user?username=henryspace 'henryspace(@paopao.info)')|提示词社区| |iiBiuBiu|[iibiubiu.com](https://iibiubiu.com)|北野|开发、测试备用机可以体验最新版本paopao-ce|
|iiBiuBiu|[iibiubiu.com](https://iibiubiu.com)|[北野](https://www.paopao.info/#/user?username=alimy 'alimy(@paopao.info)')|开发、测试备用机可以体验最新版本paopao-ce| |稍言|[slowsay.com](https://slowsay.com)|orzi|测试演示,修改了用户系统等内容|
|稍言|[slowsay.com](https://slowsay.com)|[orzi](https://www.paopao.info/#/user?username=orzi 'orzi(@paopao.info)')|测试演示,修改了用户系统等内容|

@ -3,6 +3,3 @@
* [0000-讨论样式模版](./0000-讨论样式模版.md "讨论样式模版") * [0000-讨论样式模版](./0000-讨论样式模版.md "讨论样式模版")
* [0001-FAQs](./0001-FAQs.md "FAQs") * [0001-FAQs](./0001-FAQs.md "FAQs")
### paopao.info
关于paopao-ce的交流、反馈也可以直接在我们官网[paopao.info](https://www.paopao.info)进行,发布动态时记得加上标签`#paopao-ce`或类似主题相关的标签,方便话题查找。欢迎大家在[paopao.info](https://www.paopao.info)畅快愉悦的交流一起让paopao-ce的用户体验更好、更便捷。

@ -22,56 +22,56 @@ import (
) )
var defaultAvatars = []string{ var defaultAvatars = []string{
"https://assets.paopao.info/public/avatar/default/zoe.png", "https://paopao-demo.vercel.app/avatar/default/zoe.png",
"https://assets.paopao.info/public/avatar/default/william.png", "https://paopao-demo.vercel.app/avatar/default/william.png",
"https://assets.paopao.info/public/avatar/default/walter.png", "https://paopao-demo.vercel.app/avatar/default/walter.png",
"https://assets.paopao.info/public/avatar/default/thomas.png", "https://paopao-demo.vercel.app/avatar/default/thomas.png",
"https://assets.paopao.info/public/avatar/default/taylor.png", "https://paopao-demo.vercel.app/avatar/default/taylor.png",
"https://assets.paopao.info/public/avatar/default/sophia.png", "https://paopao-demo.vercel.app/avatar/default/sophia.png",
"https://assets.paopao.info/public/avatar/default/sam.png", "https://paopao-demo.vercel.app/avatar/default/sam.png",
"https://assets.paopao.info/public/avatar/default/ryan.png", "https://paopao-demo.vercel.app/avatar/default/ryan.png",
"https://assets.paopao.info/public/avatar/default/ruby.png", "https://paopao-demo.vercel.app/avatar/default/ruby.png",
"https://assets.paopao.info/public/avatar/default/quinn.png", "https://paopao-demo.vercel.app/avatar/default/quinn.png",
"https://assets.paopao.info/public/avatar/default/paul.png", "https://paopao-demo.vercel.app/avatar/default/paul.png",
"https://assets.paopao.info/public/avatar/default/owen.png", "https://paopao-demo.vercel.app/avatar/default/owen.png",
"https://assets.paopao.info/public/avatar/default/olivia.png", "https://paopao-demo.vercel.app/avatar/default/olivia.png",
"https://assets.paopao.info/public/avatar/default/norman.png", "https://paopao-demo.vercel.app/avatar/default/norman.png",
"https://assets.paopao.info/public/avatar/default/nora.png", "https://paopao-demo.vercel.app/avatar/default/nora.png",
"https://assets.paopao.info/public/avatar/default/natalie.png", "https://paopao-demo.vercel.app/avatar/default/natalie.png",
"https://assets.paopao.info/public/avatar/default/naomi.png", "https://paopao-demo.vercel.app/avatar/default/naomi.png",
"https://assets.paopao.info/public/avatar/default/miley.png", "https://paopao-demo.vercel.app/avatar/default/miley.png",
"https://assets.paopao.info/public/avatar/default/mike.png", "https://paopao-demo.vercel.app/avatar/default/mike.png",
"https://assets.paopao.info/public/avatar/default/lucas.png", "https://paopao-demo.vercel.app/avatar/default/lucas.png",
"https://assets.paopao.info/public/avatar/default/kylie.png", "https://paopao-demo.vercel.app/avatar/default/kylie.png",
"https://assets.paopao.info/public/avatar/default/julia.png", "https://paopao-demo.vercel.app/avatar/default/julia.png",
"https://assets.paopao.info/public/avatar/default/joshua.png", "https://paopao-demo.vercel.app/avatar/default/joshua.png",
"https://assets.paopao.info/public/avatar/default/john.png", "https://paopao-demo.vercel.app/avatar/default/john.png",
"https://assets.paopao.info/public/avatar/default/jane.png", "https://paopao-demo.vercel.app/avatar/default/jane.png",
"https://assets.paopao.info/public/avatar/default/jackson.png", "https://paopao-demo.vercel.app/avatar/default/jackson.png",
"https://assets.paopao.info/public/avatar/default/ivy.png", "https://paopao-demo.vercel.app/avatar/default/ivy.png",
"https://assets.paopao.info/public/avatar/default/isaac.png", "https://paopao-demo.vercel.app/avatar/default/isaac.png",
"https://assets.paopao.info/public/avatar/default/henry.png", "https://paopao-demo.vercel.app/avatar/default/henry.png",
"https://assets.paopao.info/public/avatar/default/harry.png", "https://paopao-demo.vercel.app/avatar/default/harry.png",
"https://assets.paopao.info/public/avatar/default/harold.png", "https://paopao-demo.vercel.app/avatar/default/harold.png",
"https://assets.paopao.info/public/avatar/default/hanna.png", "https://paopao-demo.vercel.app/avatar/default/hanna.png",
"https://assets.paopao.info/public/avatar/default/grace.png", "https://paopao-demo.vercel.app/avatar/default/grace.png",
"https://assets.paopao.info/public/avatar/default/george.png", "https://paopao-demo.vercel.app/avatar/default/george.png",
"https://assets.paopao.info/public/avatar/default/freddy.png", "https://paopao-demo.vercel.app/avatar/default/freddy.png",
"https://assets.paopao.info/public/avatar/default/frank.png", "https://paopao-demo.vercel.app/avatar/default/frank.png",
"https://assets.paopao.info/public/avatar/default/finn.png", "https://paopao-demo.vercel.app/avatar/default/finn.png",
"https://assets.paopao.info/public/avatar/default/emma.png", "https://paopao-demo.vercel.app/avatar/default/emma.png",
"https://assets.paopao.info/public/avatar/default/emily.png", "https://paopao-demo.vercel.app/avatar/default/emily.png",
"https://assets.paopao.info/public/avatar/default/edward.png", "https://paopao-demo.vercel.app/avatar/default/edward.png",
"https://assets.paopao.info/public/avatar/default/clara.png", "https://paopao-demo.vercel.app/avatar/default/clara.png",
"https://assets.paopao.info/public/avatar/default/claire.png", "https://paopao-demo.vercel.app/avatar/default/claire.png",
"https://assets.paopao.info/public/avatar/default/chloe.png", "https://paopao-demo.vercel.app/avatar/default/chloe.png",
"https://assets.paopao.info/public/avatar/default/audrey.png", "https://paopao-demo.vercel.app/avatar/default/audrey.png",
"https://assets.paopao.info/public/avatar/default/arthur.png", "https://paopao-demo.vercel.app/avatar/default/arthur.png",
"https://assets.paopao.info/public/avatar/default/anna.png", "https://paopao-demo.vercel.app/avatar/default/anna.png",
"https://assets.paopao.info/public/avatar/default/andy.png", "https://paopao-demo.vercel.app/avatar/default/andy.png",
"https://assets.paopao.info/public/avatar/default/alfred.png", "https://paopao-demo.vercel.app/avatar/default/alfred.png",
"https://assets.paopao.info/public/avatar/default/alexa.png", "https://paopao-demo.vercel.app/avatar/default/alexa.png",
"https://assets.paopao.info/public/avatar/default/abigail.png", "https://paopao-demo.vercel.app/avatar/default/abigail.png",
} }
func getRandomAvatar() string { func getRandomAvatar() string {

@ -1,139 +1,117 @@
<template> <template>
<div class="message-item" :class="{ unread: isNotWhisperSender && message.is_read === 0 }" @click="handleReadMessage(message)"> <div class="message-item" :class="{ unread: isNotWhisperSender && message.is_read === 0 }" @click="handleReadMessage(message)">
<n-thing content-indented> <n-thing content-indented>
<template #avatar> <template #avatar>
<n-avatar round :size="30" :src=" <n-avatar round :size="30" :src="message.type == 4 && message.sender_user_id == userInfo.id
message.type == 4 && message.sender_user_id == userInfo.id ? message.receiver_user.avatar
? message.receiver_user.avatar : (message.sender_user.id > 0
: ( message.sender_user.id > 0 ? message.sender_user.avatar
? message.sender_user.avatar : defaultavatar
: defaultavatar )
) " />
" /> </template>
<template #header>
<div class="sender-wrap">
<span class="nickname" v-if="(message.type != 4 && message.sender_user.id > 0) || isWhisperReceiver">
<router-link @click.stop class="username-link" :to="{
name: 'user',
query: {
s: message.sender_user.username,
},
}">
{{ message.sender_user.nickname }}
</router-link>
<span v-if="desktopModelShow" class="username">
@{{ message.sender_user.username }}
</span>
</span>
<span class="nickname" v-else-if="isWhisperSender">
<router-link @click.stop class="username-link" :to="{
name: 'user',
query: {
s: message.receiver_user.username,
},
}">
{{ message.receiver_user.nickname }}
</router-link>
<span v-if="desktopModelShow" class="username">
@{{ message.receiver_user.username }}
</span>
</span>
<span class="nickname" v-else> </span>
<n-tag v-if="isWhisperSender" class="top-tag" type="info" size="small" round>
<template #icon>
<n-icon :component="CheckmarkCircle" />
</template> </template>
<template #header> </n-tag>
<div class="sender-wrap"> <n-tag v-if="message.type == 4 && message.receiver_user_id == userInfo.id" class="top-tag" type="warning" size="small" round>
<span class="nickname" v-if="(message.type !=4 && message.sender_user.id > 0) || isWhisperReceiver">
<router-link @click.stop class="username-link" :to="{ <template #icon>
name: 'user', <n-icon :component="CheckmarkCircle" />
query: {
s: message.sender_user.username,
},
}">
{{ message.sender_user.nickname }}
</router-link>
<span v-if="desktopModelShow" class="username">
@{{ message.sender_user.username }}
</span>
</span>
<span class="nickname" v-else-if="isWhisperSender">
<router-link @click.stop class="username-link" :to="{
name: 'user',
query: {
s: message.receiver_user.username,
},
}">
{{ message.receiver_user.nickname }}
</router-link>
<span v-if="desktopModelShow" class="username">
@{{ message.receiver_user.username }}
</span>
</span>
<span class="nickname" v-else> </span>
<n-tag
v-if="isWhisperSender"
class="top-tag"
type="info"
size="small"
round
>
<template #icon>
<n-icon :component="CheckmarkCircle" />
</template>
</n-tag>
<n-tag
v-if="message.type == 4 && message.receiver_user_id == userInfo.id"
class="top-tag"
type="warning"
size="small"
round
>
<template #icon>
<n-icon :component="CheckmarkCircle" />
</template>
</n-tag>
</div>
</template> </template>
<template #header-extra> </n-tag>
<span class="timestamp"> </div>
<n-badge v-if="isNotWhisperSender && message.is_read === 0" dot processing /> </template>
<span class="timestamp-txt"> <template #header-extra>
{{ formatRelativeTime(message.created_on) }} <span class="timestamp">
</span> <n-badge v-if="isNotWhisperSender && message.is_read === 0" dot processing />
<n-dropdown <span class="timestamp-txt">
placement="bottom-end" {{ formatRelativeTime(message.created_on) }}
trigger="click" </span>
size="small" <n-dropdown placement="bottom-end" trigger="click" size="small" :options="actionOpts" @select="handleAction">
:options="actionOpts" <n-button quaternary circle>
@select="handleAction" <template #icon>
> <n-icon>
<n-button quaternary circle> <more-horiz-filled />
<template #icon> </n-icon>
<n-icon> </template>
<more-horiz-filled /> </n-button>
</n-icon> </n-dropdown>
</template> </span>
</n-button> </template>
</n-dropdown> <template #description>
</span> <n-alert :show-icon="false" class="brief-wrap" :type="!isNotWhisperSender || message.is_read > 0 ? 'default' : 'success'">
</template> <div v-if="message.type != 4" class="brief-content">
<template #description> {{ message.brief }}
<n-alert :show-icon="false" class="brief-wrap" :type="!isNotWhisperSender || message.is_read > 0 ? 'default' : 'success'"> <span v-if="message.type === 1 || message.type === 2 || message.type === 3" @click.stop="viewDetail(message)" class="hash-link view-link">
<div v-if="message.type != 4" class="brief-content"> <n-icon>
{{ message.brief }} <share-outline />
<span v-if="message.type === 1 || message.type === 2 || message.type === 3" </n-icon>
@click.stop="viewDetail(message)" class="hash-link view-link"> </span>
<n-icon> </div>
<share-outline />
</n-icon> <div v-if="message.type === 4" class="whisper-content-wrap">
</span> {{ message.content }}
</div> </div>
<div v-if="message.type === 4" class="whisper-content-wrap"> <div v-if="message.type === 5" class="requesting-friend-wrap">
{{ message.content }} {{ message.content }}
</div> <span v-if="message.reply_id === 1" @click.stop="agreeAddFriend(message)" class="hash-link view-link">
<n-icon>
<div v-if="message.type === 5" class="requesting-friend-wrap"> <checkmark-outline />
{{ message.content }} </n-icon>
<span v-if="message.reply_id === 1" @click.stop="agreeAddFriend(message)" </span>
class="hash-link view-link"> <span v-if="message.reply_id === 1" @click.stop="rejectAddFriend(message)" class="hash-link view-link">
<n-icon> <n-icon>
<checkmark-outline /> <close-outline />
</n-icon> </n-icon>
</span> </span>
<span v-if="message.reply_id === 1" @click.stop="rejectAddFriend(message)" <span v-if="message.reply_id === 2" class="status-info">
class="hash-link view-link"> <n-icon>
<n-icon> <checkmark-done-outline />
<close-outline /> </n-icon>
</n-icon> </span>
</span> <span v-if="message.reply_id === 3" class="status-info">
<span v-if="message.reply_id === 2" class="status-info"> <n-icon>
<n-icon> <close-outline />
<checkmark-done-outline /> </n-icon>
</n-icon> </span>
</span> </div>
<span v-if="message.reply_id === 3" class="status-info"> </n-alert>
<n-icon> </template>
<close-outline /> </n-thing>
</n-icon> </div>
</span>
</div>
</n-alert>
</template>
</n-thing>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -160,7 +138,7 @@ import { Api } from '@/utils/request';
import UserAction from '@/composables/useUserAction'; import UserAction from '@/composables/useUserAction';
const defaultavatar = const defaultavatar =
'https://assets.paopao.info/public/avatar/default/admin.png'; 'https://paopao-demo.vercel.app/avatar/default/admin.png';
const router = useRouter(); const router = useRouter();
@ -188,7 +166,7 @@ const renderIcon = (icon: Component) => {
const actionOpts = computed(() => { const actionOpts = computed(() => {
let user = let user =
props.message.type == 4 && props.message.type == 4 &&
props.message.sender_user_id == userInfo.value.id props.message.sender_user_id == userInfo.value.id
? props.message.receiver_user ? props.message.receiver_user
: props.message.sender_user; : props.message.sender_user;
let options: DropdownOption[] = [ let options: DropdownOption[] = [
@ -222,21 +200,21 @@ const emit = defineEmits<{
}>(); }>();
const onHandleFollowAction = (message: Item.MessageProps) => { const onHandleFollowAction = (message: Item.MessageProps) => {
let user = let user =
message.type == 4 && message.sender_user_id == userInfo.value.id message.type == 4 && message.sender_user_id == userInfo.value.id
? message.receiver_user ? message.receiver_user
: message.sender_user; : message.sender_user;
UserAction.followAction(dialog, user.id, user.username, user.is_following) UserAction.followAction(dialog, user.id, user.username, user.is_following)
.then(_action => { .then(_action => {
user.is_following = _action; user.is_following = _action;
// TODO: 这里暴力处理简单重新加载更好的做法是遍历所有message如果是对应user就更新到新状态 // TODO: 这里暴力处理简单重新加载更好的做法是遍历所有message如果是对应user就更新到新状态
setTimeout(() => { setTimeout(() => {
emit('reload'); emit('reload');
}, 50); }, 50);
}) })
.catch(err => { .catch(err => {
console.log(err); console.log(err);
}); });
}; };
const handleAction = (item: 'whisper' | 'follow' | 'unfollow') => { const handleAction = (item: 'whisper' | 'follow' | 'unfollow') => {
@ -345,75 +323,79 @@ const handleReadMessage = (message: Item.MessageProps) => {
<style lang="less" scoped> <style lang="less" scoped>
.message-item { .message-item {
padding: 16px; padding: 16px;
&.unread { &.unread {
background: #fcfffc; background: #fcfffc;
}
.sender-wrap {
display: flex;
align-items: center;
.top-tag {
transform: scale(0.75);
} }
.sender-wrap { .username {
display: flex; opacity: 0.75;
align-items: center; font-size: 14px;
.top-tag {
transform: scale(0.75);
}
.username {
opacity: 0.75;
font-size: 14px;
}
} }
}
.timestamp { .timestamp {
opacity: 0.75; opacity: 0.75;
font-size: 12px; font-size: 12px;
display: flex; display: flex;
align-items: center; align-items: center;
.timestamp-txt { .timestamp-txt {
margin-left: 6px; margin-left: 6px;
}
} }
}
.brief-wrap { .brief-wrap {
margin-top: 10px; margin-top: 10px;
.brief-content { .brief-content {
display: flex; display: flex;
width: 100%; width: 100%;
}
.whisper-content-wrap {
display: flex;
width: 100%;
}
.requesting-friend-wrap {
display: flex;
width: 100%;
}
} }
.view-link { .whisper-content-wrap {
margin-left: 8px; display: flex;
display: flex; width: 100%;
align-items: center;
} }
.status-info { .requesting-friend-wrap {
margin-left: 8px; display: flex;
align-items: center; width: 100%;
} }
}
.view-link {
margin-left: 8px;
display: flex;
align-items: center;
}
.status-info {
margin-left: 8px;
align-items: center;
}
} }
.dark { .dark {
.message-item { .message-item {
&.unread { &.unread {
background: #0f180b; background: #0f180b;
}
.brief-wrap {
background-color: #18181c;
}
background-color: rgba(16, 16, 20, 0.75);
} }
.brief-wrap {
background-color: #18181c;
}
background-color: rgba(16, 16, 20, 0.75);
}
} }
</style> </style>

@ -17,11 +17,11 @@ export const useStoreProfile = defineStore("profile", () => {
tweetMobileEllipsisSize: 300, tweetMobileEllipsisSize: 300,
defaultTweetVisibility: 'friend', defaultTweetVisibility: 'friend',
defaultMsgLoopInterval: 5000, defaultMsgLoopInterval: 5000,
copyrightTop: '2023 paopao.info', copyrightTop: '2026 PaoPao',
copyrightLeft: 'Roc\'s Me', copyrightLeft: '',
copyrightLeftLink: '', copyrightLeftLink: '',
copyrightRight: '(PaoPao)', copyrightRight: 'Github',
copyrightRightLink: 'https://www.paopao.info', copyrightRightLink: 'https://github.com/rocboss/paopao-ce',
}); });
function loadDefaultSiteProfile() { function loadDefaultSiteProfile() {

Loading…
Cancel
Save