import React, { useState } from 'react' import { ActionList, ActionMenu, Box, Details, Text, useDetails } from '@primer/react' import { ArrowRightIcon, ChevronDownIcon, InfoIcon, LinkExternalIcon } from '@primer/octicons-react' import cx from 'classnames' import { Link } from 'components/Link' export type PickerOptionsTypeT = { text: string href: string locale?: string external?: boolean arrow?: boolean info?: boolean selected?: boolean onselect?: Function | void } export type PickerPropsT = { variant?: 'inline' defaultText: string options: Array } export function Picker({ variant, defaultText, options }: PickerPropsT) { const [open, setOpen] = useState(false) const { getDetailsProps } = useDetails({ closeOnOutsideClick: true }) const selectedOption = options.find((opt) => opt.selected === true) function getFields() { return ( {options.map((option) => ( { if (option.onselect) option.onselect(option.locale) setOpen(!open) }} > {option.text} {option.external && } {option.info && } {option.arrow && } ))} ) } function getInlinePicker() { return (
{selectedOption?.text || defaultText}
    {getFields()}
) } return ( {variant === 'inline' ? ( getInlinePicker() ) : ( {selectedOption?.text || defaultText} {getFields()} )} ) }