import { useHistory } from 'react-router-dom' import React, { useMemo, useState } from 'react' import { Container, Layout, FlexExpander, DropDown, ButtonVariation, TextInput, Button } from '@harness/uicore' import { useStrings } from 'framework/strings' import { CodeIcon, GitInfoProps, makeDiffRefs, PullRequestFilterOption } from 'utils/GitUtils' import { useAppContext } from 'AppContext' import css from './PullRequestsContentHeader.module.scss' interface PullRequestsContentHeaderProps extends Pick { activePullRequestFilterOption?: string onPullRequestFilterChanged: (filter: string) => void onSearchTermChanged: (searchTerm: string) => void } export function PullRequestsContentHeader({ onPullRequestFilterChanged, onSearchTermChanged, activePullRequestFilterOption = PullRequestFilterOption.ALL, repoMetadata }: PullRequestsContentHeaderProps) { const history = useHistory() const { routes } = useAppContext() const { getString } = useStrings() const [filterOption, setFilterOption] = useState(activePullRequestFilterOption) const [searchTerm, setSearchTerm] = useState('') const items = useMemo( () => [ { label: getString('open'), value: PullRequestFilterOption.OPEN }, { label: getString('merged'), value: PullRequestFilterOption.MERGED }, { label: getString('closed'), value: PullRequestFilterOption.CLOSED }, { label: getString('rejected'), value: PullRequestFilterOption.REJECTED }, { label: getString('yours'), value: PullRequestFilterOption.YOURS }, { label: getString('all'), value: PullRequestFilterOption.ALL } ], [getString] ) return ( { setFilterOption(value as string) onPullRequestFilterChanged(value as string) }} popoverClassName={css.branchDropdown} /> event.target.select()} value={searchTerm} onInput={event => { const value = event.currentTarget.value setSearchTerm(value) onSearchTermChanged(value) }} />