matrix-dimension/web/app/shared/models/integration.ts
Travis Ralston 7a0af05ac4 Sticker pack selection (without widget)
This is the UI where the user can pick which stickers they want. This does not add the widget yet though.

Helps towards #156
2018-05-12 23:51:31 -06:00

87 lines
1.8 KiB
TypeScript

export interface FE_Integration {
category: "bot" | "complex-bot" | "bridge" | "widget";
type: string;
requirements: FE_IntegrationRequirement[];
isEncryptionSupported: boolean;
displayName: string;
avatarUrl: string;
description: string;
isEnabled: boolean;
isPublic: boolean;
// Used by us
_inRoom: boolean;
_isUpdating: boolean;
_isSupported: boolean;
_notSupportedReason: string;
}
export interface FE_SimpleBot extends FE_Integration {
userId: string;
}
export interface FE_ComplexBot<T> extends FE_Integration {
notificationUserId: string;
botUserId?: string;
config: T;
}
export interface FE_Bridge<T> extends FE_Integration {
config: T;
}
export interface FE_StickerPack extends FE_Integration {
id: number;
author: {
type: "none" | "twitter" | "mx-user";
name: string;
reference: string;
};
license: {
name: string;
urlPath: string;
};
stickers: FE_Sticker[];
}
export interface FE_UserStickerPack extends FE_StickerPack {
isSelected: boolean;
}
export interface FE_Sticker {
id: number;
name: string;
description: string;
image: {
mxc: string;
mimetype: string;
};
thumbnail: {
mxc: string;
width: number;
height: number;
};
}
export interface FE_Widget extends FE_Integration {
options: any;
}
export interface FE_EtherpadWidget extends FE_Widget {
options: {
defaultUrl: string;
};
}
export interface FE_JitsiWidget extends FE_Widget {
options: {
jitsiDomain: string;
scriptUrl: string;
};
}
export interface FE_IntegrationRequirement {
condition: "publicRoom" | "canSendEventTypes" | "userInRoom";
argument: any;
expectedValue: any;
}