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

60 lines
1.4 KiB
TypeScript
Raw Normal View History

2022-12-13 23:03:30 +09:00
import type { Account, AccountCredentials, Attachment, CreateStatusParams, Emoji, Instance, Notification, Status } from 'masto'
import type { 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
2022-11-25 00:48:52 +09:00
account: AccountCredentials
2022-11-16 00:48:23 +09:00
}
2022-11-17 01:11:08 +09:00
2022-11-17 16:35:42 +09:00
export type PaginatorState = 'idle' | 'loading' | 'done' | 'error'
2022-11-21 15:55:31 +09:00
export interface ServerInfo extends Instance {
server: string
timeUpdated: number
customEmojis?: Record<string, Emoji>
}
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'>
2022-11-30 09:47:54 +09:00
items: Notification[]
}
2022-11-30 13:50:29 +09:00
2022-12-12 07:40:40 +09:00
export interface GroupedAccountLike {
account: Account
favourite?: Notification
reblog?: Notification
}
export interface GroupedLikeNotifications {
id: string
type: 'grouped-reblogs-and-favourites'
status: Status
likes: GroupedAccountLike[]
}
export type NotificationSlot = GroupedNotifications | GroupedLikeNotifications | Notification
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 {
editingStatus?: Status
initialText?: string
params: Omit<Mutable<CreateStatusParams>, 'status'> & {
status?: Exclude<CreateStatusParams['status'], null>
}
attachments: Attachment[]
}
export type DraftMap = Record<string, Draft>