elk/types/index.ts

108 lines
2.5 KiB
TypeScript
Raw Normal View History

2023-01-08 09:21:09 +03:00
import type { mastodon } from 'masto'
2023-01-04 13:21:18 +03:00
import type { MarkNonNullable, Mutable } from './utils'
import type { RouteLocationRaw } from '#vue-router'
2022-11-15 18:48:23 +03: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-29 23:51:52 +03:00
token?: string
2023-01-08 09:21:09 +03:00
account: mastodon.v1.AccountCredentials
vapidKey?: string
2023-01-08 09:21:09 +03:00
pushSubscription?: mastodon.v1.WebPushSubscription
2022-11-15 18:48:23 +03:00
}
2022-11-16 19:11:08 +03:00
2022-11-17 10:35:42 +03:00
export type PaginatorState = 'idle' | 'loading' | 'done' | 'error'
2022-11-21 09:55:31 +03:00
2022-11-30 03:47:54 +03:00
export interface GroupedNotifications {
id: string
type: 'grouped-follow'
2023-01-08 09:21:09 +03:00
items: mastodon.v1.Notification[]
2022-11-30 03:47:54 +03:00
}
2022-11-30 07:50:29 +03:00
2022-12-12 01:40:40 +03:00
export interface GroupedAccountLike {
2023-01-08 09:21:09 +03:00
account: mastodon.v1.Account
favourite?: mastodon.v1.Notification
reblog?: mastodon.v1.Notification
2022-12-12 01:40:40 +03:00
}
export interface GroupedLikeNotifications {
id: string
type: 'grouped-reblogs-and-favourites'
2023-01-08 09:21:09 +03:00
status: mastodon.v1.Status
2022-12-12 01:40:40 +03:00
likes: GroupedAccountLike[]
}
2023-01-08 09:21:09 +03:00
export type NotificationSlot = GroupedNotifications | GroupedLikeNotifications | mastodon.v1.Notification
2022-12-12 01:40:40 +03:00
2022-11-30 07:50:29 +03:00
export type TranslateFn = ReturnType<typeof useI18n>['t']
2022-12-13 17:03:30 +03:00
export interface DraftItem {
2023-01-08 09:21:09 +03:00
editingStatus?: mastodon.v1.Status
2022-12-13 17:03:30 +03:00
initialText?: string
2024-01-09 11:56:15 +03:00
params: MarkNonNullable<Mutable<Omit<mastodon.rest.v1.CreateStatusParams, 'poll'>>, 'status' | 'language' | 'sensitive' | 'spoilerText' | 'visibility'> & { poll: Mutable<mastodon.rest.v1.CreateStatusParams['poll']> }
2023-01-08 09:21:09 +03:00
attachments: mastodon.v1.MediaAttachment[]
2023-01-05 18:42:36 +03:00
lastUpdated: number
mentions?: string[]
2022-12-13 17:03:30 +03:00
}
export type DraftMap = Record<string, Array<DraftItem>
// For backward compatibility we need to support single draft items
| DraftItem>
2022-12-26 22:33:19 +03:00
export interface ConfirmDialogOptions {
title: string
description?: string
confirm?: string
cancel?: string
extraOptionType?: 'mute'
}
export interface ConfirmDialogChoice {
choice: 'confirm' | 'cancel'
extraOptions?: {
mute: {
duration: number
notifications: boolean
}
}
}
export interface CommonRouteTabOption {
to: RouteLocationRaw
display: string
disabled?: boolean
name?: string
icon?: string
hide?: boolean
match?: boolean
}
export interface CommonRouteTabMoreOption {
options: CommonRouteTabOption[]
icon?: string
tooltip?: string
match?: boolean
}
export interface ErrorDialogData {
title: string
messages: string[]
close: string
}
2022-12-26 22:33:19 +03:00
export interface BuildInfo {
version: string
commit: string
2023-02-23 14:17:28 +03:00
shortCommit: string
2022-12-26 22:33:19 +03:00
time: number
branch: string
2023-01-06 19:20:12 +03:00
env: 'preview' | 'canary' | 'dev' | 'release'
2022-12-26 22:33:19 +03:00
}