|
@@ -17,6 +17,8 @@ import { memo, useCallback } from 'react'
|
|
|
import { HistoryContextValue } from '../../context/types/history-context-value'
|
|
import { HistoryContextValue } from '../../context/types/history-context-value'
|
|
|
import VersionDropdownContent from './dropdown/version-dropdown-content'
|
|
import VersionDropdownContent from './dropdown/version-dropdown-content'
|
|
|
import CompareItems from './dropdown/menu-item/compare-items'
|
|
import CompareItems from './dropdown/menu-item/compare-items'
|
|
|
|
|
+import CompareVersionDropdown from './dropdown/compare-version-dropdown'
|
|
|
|
|
+import { CompareVersionDropdownContentAllHistory } from './dropdown/compare-version-dropdown-content'
|
|
|
|
|
|
|
|
type HistoryVersionProps = {
|
|
type HistoryVersionProps = {
|
|
|
update: LoadedUpdate
|
|
update: LoadedUpdate
|
|
@@ -29,6 +31,8 @@ type HistoryVersionProps = {
|
|
|
setSelection: HistoryContextValue['setSelection']
|
|
setSelection: HistoryContextValue['setSelection']
|
|
|
dropdownOpen: boolean
|
|
dropdownOpen: boolean
|
|
|
dropdownActive: boolean
|
|
dropdownActive: boolean
|
|
|
|
|
+ compareDropdownOpen: boolean
|
|
|
|
|
+ compareDropdownActive: boolean
|
|
|
setActiveDropdownItem: ActiveDropdown['setActiveDropdownItem']
|
|
setActiveDropdownItem: ActiveDropdown['setActiveDropdownItem']
|
|
|
closeDropdownForItem: ActiveDropdown['closeDropdownForItem']
|
|
closeDropdownForItem: ActiveDropdown['closeDropdownForItem']
|
|
|
}
|
|
}
|
|
@@ -44,13 +48,15 @@ function HistoryVersion({
|
|
|
setSelection,
|
|
setSelection,
|
|
|
dropdownOpen,
|
|
dropdownOpen,
|
|
|
dropdownActive,
|
|
dropdownActive,
|
|
|
|
|
+ compareDropdownOpen,
|
|
|
|
|
+ compareDropdownActive,
|
|
|
setActiveDropdownItem,
|
|
setActiveDropdownItem,
|
|
|
closeDropdownForItem,
|
|
closeDropdownForItem,
|
|
|
}: HistoryVersionProps) {
|
|
}: HistoryVersionProps) {
|
|
|
const orderedLabels = orderBy(update.labels, ['created_at'], ['desc'])
|
|
const orderedLabels = orderBy(update.labels, ['created_at'], ['desc'])
|
|
|
|
|
|
|
|
const closeDropdown = useCallback(() => {
|
|
const closeDropdown = useCallback(() => {
|
|
|
- closeDropdownForItem(update)
|
|
|
|
|
|
|
+ closeDropdownForItem(update, 'moreOptions')
|
|
|
}, [closeDropdownForItem, update])
|
|
}, [closeDropdownForItem, update])
|
|
|
|
|
|
|
|
const updateRange = updateRangeForUpdate(update)
|
|
const updateRange = updateRangeForUpdate(update)
|
|
@@ -97,7 +103,11 @@ function HistoryVersion({
|
|
|
id={`${update.fromV}_${update.toV}`}
|
|
id={`${update.fromV}_${update.toV}`}
|
|
|
isOpened={dropdownOpen}
|
|
isOpened={dropdownOpen}
|
|
|
setIsOpened={(isOpened: boolean) =>
|
|
setIsOpened={(isOpened: boolean) =>
|
|
|
- setActiveDropdownItem({ item: update, isOpened })
|
|
|
|
|
|
|
+ setActiveDropdownItem({
|
|
|
|
|
+ item: update,
|
|
|
|
|
+ isOpened,
|
|
|
|
|
+ whichDropDown: 'moreOptions',
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
>
|
|
>
|
|
|
{dropdownActive ? (
|
|
{dropdownActive ? (
|
|
@@ -111,15 +121,34 @@ function HistoryVersion({
|
|
|
)}
|
|
)}
|
|
|
|
|
|
|
|
{selected !== 'selected' ? (
|
|
{selected !== 'selected' ? (
|
|
|
- <span data-testid="compare-icon-version" className="pull-right">
|
|
|
|
|
|
|
+ <div data-testid="compare-icon-version" className="pull-right">
|
|
|
{selected !== 'withinSelected' ? (
|
|
{selected !== 'withinSelected' ? (
|
|
|
<CompareItems
|
|
<CompareItems
|
|
|
updateRange={updateRange}
|
|
updateRange={updateRange}
|
|
|
selected={selected}
|
|
selected={selected}
|
|
|
closeDropdown={closeDropdown}
|
|
closeDropdown={closeDropdown}
|
|
|
/>
|
|
/>
|
|
|
- ) : null}
|
|
|
|
|
- </span>
|
|
|
|
|
|
|
+ ) : (
|
|
|
|
|
+ <CompareVersionDropdown
|
|
|
|
|
+ id={`${update.fromV}_${update.toV}`}
|
|
|
|
|
+ isOpened={compareDropdownOpen}
|
|
|
|
|
+ setIsOpened={(isOpened: boolean) =>
|
|
|
|
|
+ setActiveDropdownItem({
|
|
|
|
|
+ item: update,
|
|
|
|
|
+ isOpened,
|
|
|
|
|
+ whichDropDown: 'compare',
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ >
|
|
|
|
|
+ {compareDropdownActive ? (
|
|
|
|
|
+ <CompareVersionDropdownContentAllHistory
|
|
|
|
|
+ update={update}
|
|
|
|
|
+ closeDropdownForItem={closeDropdownForItem}
|
|
|
|
|
+ />
|
|
|
|
|
+ ) : null}
|
|
|
|
|
+ </CompareVersionDropdown>
|
|
|
|
|
+ )}
|
|
|
|
|
+ </div>
|
|
|
) : null}
|
|
) : null}
|
|
|
|
|
|
|
|
<div className="history-version-main-details">
|
|
<div className="history-version-main-details">
|