Signal-Desktop/ts/components/fun/constants.tsx

79 lines
1.9 KiB
TypeScript

// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { EmojiPickerCategory } from './data/emojis';
import type { StickerPackType } from '../../state/ducks/stickers';
export enum FunPickerTabKey {
Emoji = 'Emoji',
Stickers = 'Stickers',
Gifs = 'Gifs',
}
export enum FunGifsCategory {
Trending = 'Trending',
Celebrate = 'Celebrate',
Love = 'Love',
ThumbsUp = 'ThumbsUp',
Surprised = 'Surprised',
Excited = 'Excited',
Sad = 'Sad',
Angry = 'Angry',
}
export enum FunEmojisBase {
ThisMessage = 'ThisMessage',
}
export enum FunSectionCommon {
SearchResults = 'SearchResults',
Recents = 'Recents',
}
export enum FunStickersSectionBase {
StickersSetup = 'StickersSetup',
Featured = 'Featured',
}
export type FunTimeStickerStyle = 'analog' | 'digital';
export const FunTimeStickerStylesOrder: ReadonlyArray<FunTimeStickerStyle> = [
'analog',
'digital',
];
export type FunStickersPackSection = `StickerPack:${string}` & {
FunStickersPackSection: never;
};
export function toFunStickersPackSection(
pack: StickerPackType
): FunStickersPackSection {
return `StickerPack:${pack.id}` as FunStickersPackSection;
}
export type FunEmojisSection =
| FunSectionCommon
| EmojiPickerCategory
| FunEmojisBase;
export type FunStickersSection =
| FunSectionCommon
| FunStickersSectionBase
| FunStickersPackSection;
export type FunGifsSection = FunSectionCommon | FunGifsCategory;
export const FunEmojisSectionOrder: ReadonlyArray<
FunSectionCommon.Recents | FunEmojisBase.ThisMessage | EmojiPickerCategory
> = [
FunEmojisBase.ThisMessage,
FunSectionCommon.Recents,
EmojiPickerCategory.SmileysAndPeople,
EmojiPickerCategory.AnimalsAndNature,
EmojiPickerCategory.FoodAndDrink,
EmojiPickerCategory.Activities,
EmojiPickerCategory.TravelAndPlaces,
EmojiPickerCategory.Objects,
EmojiPickerCategory.Symbols,
EmojiPickerCategory.Flags,
];