1
0
mirror of https://github.com/elk-zone/elk synced 2024-11-30 15:58:06 +09:00
elk/types/index.ts

80 lines
2.1 KiB
TypeScript
Raw Normal View History

2023-01-08 15:21:09 +09:00
import type { mastodon } from 'masto'
import type { Ref } from 'vue'
2023-01-04 19:21:18 +09:00
import type { MarkNonNullable, Mutable } from './utils'
2022-11-16 00:48:23 +09:00
export interface AppInfo {
id: string
name: string
website: string | null
redirect_uri: string
client_id: string
client_secret: string
vapid_key: string
}
export interface UserLogin {
server: string
2022-11-30 05:51:52 +09:00
token?: string
2023-01-08 15:21:09 +09:00
account: mastodon.v1.AccountCredentials
vapidKey?: string
2023-01-08 15:21:09 +09:00
pushSubscription?: mastodon.v1.WebPushSubscription
2022-11-16 00:48:23 +09:00
}
2022-11-17 01:11:08 +09:00
2023-01-08 15:21:09 +09:00
export interface ElkMasto extends mastodon.Client {
loginTo (user?: Omit<UserLogin, 'account'> & { account?: mastodon.v1.AccountCredentials }): Promise<mastodon.Client>
loggedIn: Ref<boolean>
}
2022-11-17 16:35:42 +09:00
export type PaginatorState = 'idle' | 'loading' | 'done' | 'error'
2022-11-21 15:55:31 +09:00
2022-11-30 09:47:54 +09:00
export interface GroupedNotifications {
id: string
2022-12-12 07:40:40 +09:00
type: Exclude<string, 'grouped-reblogs-and-favourites'>
2023-01-08 15:21:09 +09:00
items: mastodon.v1.Notification[]
2022-11-30 09:47:54 +09:00
}
2022-11-30 13:50:29 +09:00
2022-12-12 07:40:40 +09:00
export interface GroupedAccountLike {
2023-01-08 15:21:09 +09:00
account: mastodon.v1.Account
favourite?: mastodon.v1.Notification
reblog?: mastodon.v1.Notification
2022-12-12 07:40:40 +09:00
}
export interface GroupedLikeNotifications {
id: string
type: 'grouped-reblogs-and-favourites'
2023-01-08 15:21:09 +09:00
status: mastodon.v1.Status
2022-12-12 07:40:40 +09:00
likes: GroupedAccountLike[]
}
2023-01-08 15:21:09 +09:00
export type NotificationSlot = GroupedNotifications | GroupedLikeNotifications | mastodon.v1.Notification
2022-12-12 07:40:40 +09:00
2022-11-30 13:50:29 +09:00
export type TranslateFn = ReturnType<typeof useI18n>['t']
2022-12-13 23:03:30 +09:00
export interface Draft {
2023-01-08 15:21:09 +09:00
editingStatus?: mastodon.v1.Status
2022-12-13 23:03:30 +09:00
initialText?: string
2023-01-08 15:21:09 +09:00
params: MarkNonNullable<Mutable<mastodon.v1.CreateStatusParams>, 'status' | 'language' | 'sensitive' | 'spoilerText' | 'visibility'>
attachments: mastodon.v1.MediaAttachment[]
2023-01-06 00:42:36 +09:00
lastUpdated: number
2022-12-13 23:03:30 +09:00
}
export type DraftMap = Record<string, Draft>
2022-12-27 04:33:19 +09:00
export interface ConfirmDialogLabel {
title: string
description?: string
confirm?: string
cancel?: string
}
export type ConfirmDialogChoice = 'confirm' | 'cancel'
2022-12-27 04:33:19 +09:00
export interface BuildInfo {
version: string
commit: string
time: number
branch: string
2023-01-07 01:20:12 +09:00
env: 'preview' | 'canary' | 'dev' | 'release'
2022-12-27 04:33:19 +09:00
}
export type FontSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
export type ColorMode = 'light' | 'dark'