import React, { ChangeEvent } from 'react'; import styled, { CSSProperties } from 'styled-components'; import { Flex } from '../basic/Flex'; // tslint:disable: react-unused-props-and-state type Props = { label: string; value: string; active: boolean; inputName?: string; onClick?: (value: string) => void; }; const StyledInput = styled.input` opacity: 0; position: absolute; cursor: pointer; width: calc(var(--filled-size) + var(--outline-offset)); height: calc(var(--filled-size) + var(--outline-offset)); :checked + label:before, :hover + label:before { background: var(--color-accent); } `; const StyledLabel = styled.label` cursor: pointer; :before { content: ''; display: inline-block; margin-inline-end: var(--filled-size); border-radius: 100%; transition: var(--default-duration); padding: calc(var(--filled-size) / 2); outline-offset: 2px; outline: var(--color-text) solid 1px; border: none; margin-top: var(--filled-size); :hover { background: var(--color-accent); } } `; export const SessionRadio = (props: Props) => { const { label, inputName, value, active, onClick } = props; function clickHandler(e: ChangeEvent) { if (onClick) { // let something else catch the event if our click handler is not set e.stopPropagation(); onClick?.(value); } } return ( {label} ); };