your personal website on atproto - mirror
blento.app
1import type { Blob } from '@atcute/lexicons';
2import type { AppBskyActorDefs } from '@atcute/bluesky';
3
4export type Item = {
5 id: string;
6
7 w: number;
8 h: number;
9 x: number;
10 y: number;
11
12 mobileW: number;
13 mobileH: number;
14 mobileX: number;
15 mobileY: number;
16
17 cardType: string;
18
19 color?: string;
20
21 cardData: any;
22
23 updatedAt?: string;
24
25 version?: number;
26
27 page?: string;
28};
29
30export type WebsiteData = {
31 page: string;
32 did: string;
33 handle: string;
34
35 cards: Item[];
36 publication: {
37 url?: string;
38 name?: string;
39 description?: string;
40 icon?: Blob;
41 preferences?: {
42 /**
43 * @deprecated
44 *
45 * use hideProfileSection instead
46 */
47 hideProfile?: boolean;
48
49 // use this instead
50 hideProfileSection?: boolean;
51
52 // 'side' (default on desktop) or 'top' (always top like mobile view)
53 profilePosition?: 'side' | 'top';
54
55 // theme colors
56 accentColor?: string;
57 baseColor?: string;
58
59 // layout mirroring: 0/undefined=never edited, 1=desktop only, 2=mobile only, 3=both
60 editedOn?: number;
61 };
62 };
63 profile: AppBskyActorDefs.ProfileViewDetailed;
64
65 additionalData: Record<string, unknown>;
66 updatedAt: number;
67 version?: number;
68};
69
70export type UserCache = {
71 get: (key: string) => string;
72 put: (key: string, value: string) => void;
73};