import React from 'react';
import { useDispatch, useSelector } from 'react-redux';
import styled from 'styled-components';
import { switchThemeTo } from '../../themes/switchTheme';
import { getTheme } from '../../state/selectors/theme';
import { SessionRadio, SessionRadioPrimaryColors } from '../basic/SessionRadio';
import { SpacerLG, SpacerMD } from '../basic/Text';
import { StyledDescriptionSettingsItem, StyledTitleSettingsItem } from './SessionSettingListItem';
import {
getPrimaryColors,
getThemeColors,
StyleSessionSwitcher,
} from '../../themes/constants/colors';
import { switchPrimaryColorTo } from '../../themes/switchPrimaryColor';
import { getPrimaryColor } from '../../state/selectors/primaryColor';
// tslint:disable: use-simple-attributes
const StyledSwitcherContainer = styled.div`
font-size: var(--font-size-md);
padding: var(--margins-lg);
margin-bottom: var(--margins-lg);
background: var(--settings-tab-background-color);
color: var(--settings-tab-text-color);
border-top: 1px solid var(--border-color);
border-bottom: 1px solid var(--border-color);
`;
const ThemeContainer = styled.button`
background: var(--background-secondary-color);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: var(--margins-sm);
display: flex;
align-items: center;
width: 285px;
height: 90px;
transition: var(--default-duration);
:hover {
background: var(--settings-tab-background-hover-color);
}
`;
const ThemesContainer = styled.div`
display: flex;
flex-wrap: wrap;
gap: var(--margins-lg);
`;
const StyledPreview = styled.svg`
max-height: 100%;
`;
const ThemePreview = (props: { style: StyleSessionSwitcher }) => {
return (
);
};
const Themes = () => {
const themes = getThemeColors();
const selectedTheme = useSelector(getTheme);
const dispatch = useDispatch();
return (
<>
{themes.map(theme => (
{
await switchThemeTo({
theme: theme.id,
mainWindow: true,
dispatch,
});
}}
>
{theme.title}
))}
>
);
};
export const SettingsThemeSwitcher = () => {
const selectedPrimaryColor = useSelector(getPrimaryColor);
const dispatch = useDispatch();
return (
{window.i18n('themesSettingTitle')}
{window.i18n('primaryColor')}
{getPrimaryColors().map(item => {
return (
{
await switchPrimaryColorTo(item.id, dispatch);
}}
/>
);
})}
);
};