import React, { useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import styled from 'styled-components';
import { switchThemeTo } from '../../session/utils/Theme';
import {
  darkColorReceivedMessageBg,
  darkColorSentMessageBg,
  getPrimaryColors,
  lightColorReceivedMessageBg,
  lightColorSentMessageBg,
  OceanBlueDark,
  OceanBlueLight,
  PrimaryColorIds,
} from '../../state/ducks/SessionTheme';
import { ThemeStateType } from '../../state/ducks/theme';
import { getTheme } from '../../state/selectors/theme';
import { SessionRadio, SessionRadioPrimaryColors } from '../basic/SessionRadio';
import { SpacerLG, SpacerMD } from '../basic/Text';
import { StyledDescriptionSettingsItem, StyledTitleSettingsItem } from './SessionSettingListItem';
// tslint:disable: use-simple-attributes
const StyledSwitcherContainer = styled.div`
  font-size: var(--font-size-md);
  padding: var(--margins-lg);
  background: var(--color-cell-background);
`;
const ThemeContainer = styled.button`
  background: var(--color-conversation-list);
  border: 1px solid var(--color-clickable-hovered);
  border-radius: 8px;
  padding: var(--margins-sm);
  display: flex;
  align-items: center;
  width: 285px;
  height: 90px;
  transition: var(--default-duration);
  :hover {
    background: var(--color-clickable-hovered);
  }
`;
const ThemesContainer = styled.div`
  display: flex;
  flex-wrap: wrap;
  gap: var(--margins-lg);
`;
type ThemeType = {
  id: ThemeStateType;
  title: string;
  style: StyleSessionSwitcher;
};
type StyleSessionSwitcher = {
  background: string;
  border: string;
  receivedBg: string;
  sentBg: string;
};
const StyledPreview = styled.svg`
  max-height: 100%;
`;
const ThemePreview = (props: { style: StyleSessionSwitcher }) => {
  return (
    
      
      
      
    
  );
};
const Themes = () => {
  const themes: Array = [
    {
      id: 'dark',
      title: window.i18n('classicDarkThemeTitle'),
      style: {
        background: '#000000',
        border: '#414141',
        receivedBg: darkColorReceivedMessageBg,
        sentBg: darkColorSentMessageBg,
      },
    },
    {
      id: 'light',
      title: window.i18n('classicLightThemeTitle'),
      style: {
        background: '#ffffff',
        border: '#414141',
        receivedBg: lightColorReceivedMessageBg,
        sentBg: lightColorSentMessageBg,
      },
    },
    {
      id: 'ocean-dark',
      title: window.i18n('oceanDarkThemeTitle'),
      style: {
        background: OceanBlueDark.background,
        border: OceanBlueDark.border,
        receivedBg: OceanBlueDark.received,
        sentBg: OceanBlueDark.sent,
      },
    },
    {
      id: 'ocean-light',
      title: window.i18n('oceanLightThemeTitle'),
      style: {
        background: OceanBlueLight.background,
        border: OceanBlueLight.border,
        receivedBg: OceanBlueLight.received,
        sentBg: OceanBlueLight.sent,
      },
    },
  ];
  const selectedTheme = useSelector(getTheme);
  const dispatch = useDispatch();
  return (
    <>
      {themes.map(theme => {
        function onSelectTheme() {
          void switchThemeTo(theme.id, dispatch);
        }
        return (
          
            
            
            {theme.title}
            
          
        );
      })}
    >
  );
};
export const SettingsThemeSwitcher = () => {
  //TODO Theming
  const [selectedAccent, setSelectedAccent] = useState(undefined);
  return (
    
      {window.i18n('themesSettingTitle')}
      
        
      
      
      {window.i18n('primaryColor')}
      
      
        {getPrimaryColors().map(item => {
          return (
             {
                setSelectedAccent(item.id);
              }}
            />
          );
        })}
      
    
  );
};