summaryrefslogtreecommitdiff
path: root/packages/client/src/pages/favorites.vue
blob: b4f6ff35bc9b6f1b8f3f257b8887e88c4183e6bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<template>
<MkSpacer :content-max="800">
	<MkPagination ref="pagingComponent" :pagination="pagination">
		<template #empty>
			<div class="_fullinfo">
				<img src="https://xn--931a.moe/assets/info.jpg" class="_ghost"/>
				<div>{{ $ts.noNotes }}</div>
			</div>
		</template>

		<template #default="{ items }">
			<XList v-slot="{ item }" :items="items" :direction="'down'" :no-gap="false" :ad="false">
				<XNote :key="item.id" :note="item.note" :class="$style.note"/>
			</XList>
		</template>
	</MkPagination>
</MkSpacer>
</template>

<script lang="ts" setup>
import { ref } from 'vue';
import MkPagination from '@/components/ui/pagination.vue';
import XNote from '@/components/note.vue';
import XList from '@/components/date-separated-list.vue';
import * as symbols from '@/symbols';
import { i18n } from '@/i18n';

const pagination = {
	endpoint: 'i/favorites' as const,
	limit: 10,
};

const pagingComponent = ref<InstanceType<typeof MkPagination>>();

defineExpose({
	[symbols.PAGE_INFO]: {
		title: i18n.ts.favorites,
		icon: 'fas fa-star',
		bg: 'var(--bg)',
	},
});
</script>

<style lang="scss" module>
.note {
	background: var(--panel);
	border-radius: var(--radius);
}
</style>