import React from "react"; import styled from "styled-components/macro"; export const ToggleWrapper = styled.button<{ width?: string }>` display: flex; align-items: center; width: ${({ width }) => width ?? "100%"}; padding: 1px; background: ${({ theme }) => theme.bg1}; border-radius: 8px; border: ${({ theme }) => "1px solid " + theme.bg2}; cursor: pointer; outline: none; `; export const ToggleElement = styled.span<{ isActive?: boolean; fontSize?: string; }>` display: flex; align-items: center; width: 100%; padding: 4px 0.5rem; border-radius: 6px; justify-content: center; height: 100%; background: ${({ theme, isActive }) => (isActive ? theme.bg0 : "none")}; color: ${({ theme, isActive }) => (isActive ? theme.text1 : theme.text3)}; font-size: ${({ fontSize }) => fontSize ?? "1rem"}; font-weight: 500; white-space: nowrap; :hover { user-select: initial; color: ${({ theme, isActive }) => (isActive ? theme.text2 : theme.text3)}; } `; export const ToggleText = styled.div` color: ${({ theme }) => theme.text3}; font-size: 12px; margin-right: 0.5rem; width: 100%; white-space: nowrap; padding: 0 0 0 4px; `; export interface ToggleProps { options: string[]; activeIndex: number; toggle: (index: number) => void; id?: string; width?: string; } export default function MultiToggle({ id, options, activeIndex, toggle, width, }: ToggleProps) { return ( {options.map((option, index) => ( toggle(index)} > {option} ))} ); }