import { ColorSchemeName } from 'react-native';
import { LLThemeAssets, LLThemeType } from '../types';

import SendIcon from '../assets/images/send.png';
import AvatarIcon from '../assets/images/avatar.png';

/**
 * Light theme assets
 */
import GifLightIcon from '../assets/images/gif-light.png';
import StickerLightIcon from '../assets/images/sticker-light.png';
import CloseLightIcon from '../assets/images/close-light.png';
import BinLightkIcon from '../assets/images/bin-light.png';
import BlockUserLightIcon from '../assets/images/block-light.png';
import FlagLightIcon from '../assets/images/flag-light.png';
import ReactionLightIcon from '../assets/images/reaction-light.png';
import ThemeSwitchLightIcon from '../assets/images/theme-light.png';

/**
 * Dark theme assets
 */
import GifDarkIcon from '../assets/images/gif-dark.png';
import StickerDarkIcon from '../assets/images/sticker-dark.png';
import CloseDarkIcon from '../assets/images/close-dark.png';
import BinDarkIcon from '../assets/images/bin-dark.png';
import BlockUserDarkIcon from '../assets/images/block-dark.png';
import FlagDarkIcon from '../assets/images/flag-dark.png';
import ReactionDarkIcon from '../assets/images/reaction-dark.png';
import ThemeSwitchDarkIcon from '../assets/images/theme-dark.png';

const themeAssets: Record<LLThemeType, LLThemeAssets> = {
  [LLThemeType.LIGHT]: {
    avatar: AvatarIcon,
    send: SendIcon,
    gif: GifLightIcon,
    sticker: StickerLightIcon,
    close: CloseLightIcon,
    bin: BinLightkIcon,
    blockUser: BlockUserLightIcon,
    flag: FlagLightIcon,
    reaction: ReactionLightIcon,
    themeSwitch: ThemeSwitchDarkIcon,
  },
  [LLThemeType.DARK]: {
    avatar: AvatarIcon,
    send: SendIcon,
    gif: GifDarkIcon,
    sticker: StickerDarkIcon,
    close: CloseDarkIcon,
    bin: BinDarkIcon,
    blockUser: BlockUserDarkIcon,
    flag: FlagDarkIcon,
    reaction: ReactionDarkIcon,
    themeSwitch: ThemeSwitchLightIcon,
  },
};

export function getThemeAssets(themeType: LLThemeType | ColorSchemeName) {
  return themeAssets[themeType];
}
