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); }} /> ); })} ); };