@waline/client 2.6.4 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component.esm.js +1 -1
- package/dist/component.esm.js.map +1 -1
- package/dist/component.js +1 -1
- package/dist/component.js.map +1 -1
- package/dist/legacy.d.ts +3 -0
- package/dist/legacy.js +1 -1
- package/dist/legacy.js.map +1 -1
- package/dist/pageview.cjs.js +1 -1
- package/dist/pageview.cjs.js.map +1 -1
- package/dist/pageview.esm.js +1 -1
- package/dist/pageview.esm.js.map +1 -1
- package/dist/pageview.js +1 -1
- package/dist/pageview.js.map +1 -1
- package/dist/shim.d.ts +3 -0
- package/dist/shim.esm.d.ts +3 -0
- package/dist/shim.esm.js +1 -1
- package/dist/shim.esm.js.map +1 -1
- package/dist/shim.js +1 -1
- package/dist/shim.js.map +1 -1
- package/dist/waline.cjs.d.ts +3 -0
- package/dist/waline.cjs.js +1 -1
- package/dist/waline.cjs.js.map +1 -1
- package/dist/waline.css +1 -1
- package/dist/waline.css.map +1 -1
- package/dist/waline.d.ts +3 -0
- package/dist/waline.esm.d.ts +3 -0
- package/dist/waline.esm.js +1 -1
- package/dist/waline.esm.js.map +1 -1
- package/dist/waline.js +1 -1
- package/dist/waline.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Waline.vue +46 -3
- package/src/config/i18n/en.ts +3 -0
- package/src/config/i18n/generate.ts +3 -0
- package/src/config/i18n/jp.ts +3 -0
- package/src/config/i18n/pt-BR.ts +3 -0
- package/src/config/i18n/ru.ts +3 -0
- package/src/config/i18n/vi-VN.ts +3 -0
- package/src/config/i18n/zh-CN.ts +3 -0
- package/src/config/i18n/zh-TW.ts +3 -0
- package/src/styles/layout.scss +26 -0
- package/src/typings/locale.ts +3 -0
- package/src/utils/fetch.ts +3 -1
package/package.json
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div data-waline>
|
|
3
3
|
<CommentBox v-if="!reply" @submit="onSubmit" />
|
|
4
|
-
<div class="wl-
|
|
5
|
-
<
|
|
6
|
-
|
|
4
|
+
<div class="wl-head">
|
|
5
|
+
<div class="wl-count">
|
|
6
|
+
<span v-if="count" class="wl-num" v-text="count" />
|
|
7
|
+
{{ i18n.comment }}
|
|
8
|
+
</div>
|
|
9
|
+
<ul class="wl-sort">
|
|
10
|
+
<li
|
|
11
|
+
v-for="item in sortByItems"
|
|
12
|
+
:key="item.key"
|
|
13
|
+
:class="[item.key === sortBy ? 'active' : '']"
|
|
14
|
+
@click="onSortByChange(item.key)"
|
|
15
|
+
>
|
|
16
|
+
{{ i18n[item.name] }}
|
|
17
|
+
</li>
|
|
18
|
+
</ul>
|
|
7
19
|
</div>
|
|
8
20
|
|
|
9
21
|
<div class="wl-cards">
|
|
@@ -117,6 +129,24 @@ const props = [
|
|
|
117
129
|
'copyright',
|
|
118
130
|
];
|
|
119
131
|
|
|
132
|
+
type SortKeyItems = 'insertedAt_desc' | 'insertedAt_asc' | 'like_desc';
|
|
133
|
+
type SortNameItems = 'latest' | 'oldest' | 'hottest';
|
|
134
|
+
type SortByItems = { key: SortKeyItems; name: SortNameItems }[];
|
|
135
|
+
const sortByItems: SortByItems = [
|
|
136
|
+
{
|
|
137
|
+
key: 'insertedAt_desc',
|
|
138
|
+
name: 'latest',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
key: 'insertedAt_asc',
|
|
142
|
+
name: 'oldest',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
key: 'like_desc',
|
|
146
|
+
name: 'hottest',
|
|
147
|
+
},
|
|
148
|
+
];
|
|
149
|
+
|
|
120
150
|
const propsWithValidate = {
|
|
121
151
|
serverURL: {
|
|
122
152
|
type: String,
|
|
@@ -229,6 +259,7 @@ export default defineComponent({
|
|
|
229
259
|
const count = ref(0);
|
|
230
260
|
const page = ref(1);
|
|
231
261
|
const totalPages = ref(0);
|
|
262
|
+
const sortBy = ref<SortKeyItems>(sortByItems[0].key);
|
|
232
263
|
|
|
233
264
|
const data = ref<WalineComment[]>([]);
|
|
234
265
|
const reply = ref<WalineComment | null>(null);
|
|
@@ -253,6 +284,7 @@ export default defineComponent({
|
|
|
253
284
|
lang: config.value.lang,
|
|
254
285
|
path,
|
|
255
286
|
pageSize,
|
|
287
|
+
sortBy: sortBy.value,
|
|
256
288
|
page: pageNumber,
|
|
257
289
|
signal: controller.signal,
|
|
258
290
|
token: userInfo.value?.token,
|
|
@@ -282,6 +314,14 @@ export default defineComponent({
|
|
|
282
314
|
fetchComment(1);
|
|
283
315
|
};
|
|
284
316
|
|
|
317
|
+
const onSortByChange = (item: SortKeyItems): void => {
|
|
318
|
+
if (sortBy.value === item) {
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
sortBy.value = item;
|
|
322
|
+
refresh();
|
|
323
|
+
};
|
|
324
|
+
|
|
285
325
|
const onReply = (comment: WalineComment | null): void => {
|
|
286
326
|
reply.value = comment;
|
|
287
327
|
};
|
|
@@ -412,11 +452,14 @@ export default defineComponent({
|
|
|
412
452
|
count,
|
|
413
453
|
page,
|
|
414
454
|
totalPages,
|
|
455
|
+
sortBy,
|
|
456
|
+
sortByItems,
|
|
415
457
|
data,
|
|
416
458
|
reply,
|
|
417
459
|
|
|
418
460
|
loadMore,
|
|
419
461
|
refresh,
|
|
462
|
+
onSortByChange,
|
|
420
463
|
onReply,
|
|
421
464
|
onSubmit,
|
|
422
465
|
onStatusChange,
|
package/src/config/i18n/en.ts
CHANGED
package/src/config/i18n/jp.ts
CHANGED
package/src/config/i18n/pt-BR.ts
CHANGED
package/src/config/i18n/ru.ts
CHANGED
package/src/config/i18n/vi-VN.ts
CHANGED
package/src/config/i18n/zh-CN.ts
CHANGED
package/src/config/i18n/zh-TW.ts
CHANGED
package/src/styles/layout.scss
CHANGED
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
padding: 0.375em;
|
|
54
54
|
font-weight: bold;
|
|
55
55
|
font-size: 1.25em;
|
|
56
|
+
flex: 1;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
.wl-empty {
|
|
@@ -76,3 +77,28 @@
|
|
|
76
77
|
font-size: var(--waline-info-font-size);
|
|
77
78
|
text-align: right;
|
|
78
79
|
}
|
|
80
|
+
|
|
81
|
+
.wl-head {
|
|
82
|
+
display: flex;
|
|
83
|
+
flex-direction: row;
|
|
84
|
+
align-items: center;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.wl-sort.ul {
|
|
88
|
+
list-style-type: none;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.wl-sort li {
|
|
92
|
+
display: inline-block;
|
|
93
|
+
font-size: 0.75em;
|
|
94
|
+
color: var(--waline-info-color);
|
|
95
|
+
cursor: pointer;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.wl-sort li + li {
|
|
99
|
+
margin-left: 1em;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.wl-sort li.active {
|
|
103
|
+
color: var(--waline-theme-color);
|
|
104
|
+
}
|
package/src/typings/locale.ts
CHANGED
package/src/utils/fetch.ts
CHANGED
|
@@ -85,6 +85,7 @@ export interface FetchListOptions {
|
|
|
85
85
|
path: string;
|
|
86
86
|
page: number;
|
|
87
87
|
pageSize: number;
|
|
88
|
+
sortBy: string;
|
|
88
89
|
signal: AbortSignal;
|
|
89
90
|
token?: string;
|
|
90
91
|
lang: string;
|
|
@@ -102,6 +103,7 @@ export const fetchCommentList = ({
|
|
|
102
103
|
path,
|
|
103
104
|
page,
|
|
104
105
|
pageSize,
|
|
106
|
+
sortBy,
|
|
105
107
|
signal,
|
|
106
108
|
token,
|
|
107
109
|
}: FetchListOptions): Promise<FetchListResult> => {
|
|
@@ -112,7 +114,7 @@ export const fetchCommentList = ({
|
|
|
112
114
|
return fetch(
|
|
113
115
|
`${serverURL}/comment?path=${encodeURIComponent(
|
|
114
116
|
path
|
|
115
|
-
)}&pageSize=${pageSize}&page=${page}&lang=${lang}`,
|
|
117
|
+
)}&pageSize=${pageSize}&page=${page}&lang=${lang}&sortBy=${sortBy}`,
|
|
116
118
|
{ signal, headers }
|
|
117
119
|
)
|
|
118
120
|
.then((resp) => resp.json() as Promise<FetchListResult>)
|