fixes #6114 Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
committed by
GitHub
parent
088d061b3e
commit
12c33159e0
@ -4,18 +4,11 @@ export const getObjectMetadataItemViews = (
|
|||||||
viewObjectMetadataId: string,
|
viewObjectMetadataId: string,
|
||||||
views: GraphQLView[],
|
views: GraphQLView[],
|
||||||
) => {
|
) => {
|
||||||
const indexView = views.find(
|
|
||||||
(view) =>
|
|
||||||
view.key === 'INDEX' && view.objectMetadataId === viewObjectMetadataId,
|
|
||||||
);
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
...views
|
...views.filter((view) => view.objectMetadataId === viewObjectMetadataId),
|
||||||
.filter((view) => view.objectMetadataId === viewObjectMetadataId)
|
|
||||||
.filter((view) => view.key !== 'INDEX'),
|
|
||||||
]
|
]
|
||||||
.sort((a, b) => a.position - b.position)
|
.sort((a, b) => a.position - b.position)
|
||||||
.concat(indexView ? [indexView] : [])
|
|
||||||
.map((view) => ({
|
.map((view) => ({
|
||||||
id: view.id,
|
id: view.id,
|
||||||
name: view.name,
|
name: view.name,
|
||||||
|
|||||||
@ -64,9 +64,6 @@ export const ViewPickerListContent = () => {
|
|||||||
const { getIcon } = useIcons();
|
const { getIcon } = useIcons();
|
||||||
|
|
||||||
const indexView = viewsOnCurrentObject.find((view) => view.key === 'INDEX');
|
const indexView = viewsOnCurrentObject.find((view) => view.key === 'INDEX');
|
||||||
const viewsOnCurrentObjectWithoutIndex = viewsOnCurrentObject.filter(
|
|
||||||
(view) => view.key !== 'INDEX',
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleDragEnd = useCallback(
|
const handleDragEnd = useCallback(
|
||||||
(result: DropResult) => {
|
(result: DropResult) => {
|
||||||
@ -89,49 +86,41 @@ export const ViewPickerListContent = () => {
|
|||||||
<DropdownMenuItemsContainer>
|
<DropdownMenuItemsContainer>
|
||||||
<DraggableList
|
<DraggableList
|
||||||
onDragEnd={handleDragEnd}
|
onDragEnd={handleDragEnd}
|
||||||
draggableItems={viewsOnCurrentObjectWithoutIndex.map(
|
draggableItems={viewsOnCurrentObject.map((view, index) => (
|
||||||
(view, index) => (
|
<DraggableItem
|
||||||
<DraggableItem
|
key={view.id}
|
||||||
key={view.id}
|
draggableId={view.id}
|
||||||
draggableId={view.id}
|
index={index}
|
||||||
index={index}
|
isDragDisabled={viewsOnCurrentObject.length === 1}
|
||||||
isDragDisabled={viewsOnCurrentObjectWithoutIndex.length === 1}
|
itemComponent={
|
||||||
itemComponent={
|
<MenuItemDraggable
|
||||||
<MenuItemDraggable
|
key={view.id}
|
||||||
key={view.id}
|
iconButtons={
|
||||||
iconButtons={[
|
indexView?.id === view.id
|
||||||
{
|
? [
|
||||||
Icon: IconPencil,
|
{
|
||||||
onClick: (event: MouseEvent<HTMLButtonElement>) =>
|
Icon: IconLock,
|
||||||
handleEditViewButtonClick(event, view.id),
|
},
|
||||||
},
|
]
|
||||||
].filter(isDefined)}
|
: [
|
||||||
isIconDisplayedOnHoverOnly
|
{
|
||||||
onClick={() => handleViewSelect(view.id)}
|
Icon: IconPencil,
|
||||||
LeftIcon={getIcon(view.icon)}
|
onClick: (event: MouseEvent<HTMLButtonElement>) =>
|
||||||
text={view.name}
|
handleEditViewButtonClick(event, view.id),
|
||||||
/>
|
},
|
||||||
}
|
].filter(isDefined)
|
||||||
/>
|
}
|
||||||
),
|
isIconDisplayedOnHoverOnly={
|
||||||
)}
|
indexView?.id === view.id ? false : true
|
||||||
|
}
|
||||||
|
onClick={() => handleViewSelect(view.id)}
|
||||||
|
LeftIcon={getIcon(view.icon)}
|
||||||
|
text={view.name}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
/>
|
/>
|
||||||
{indexView && (
|
|
||||||
<MenuItemDraggable
|
|
||||||
key={indexView.id}
|
|
||||||
iconButtons={[
|
|
||||||
{
|
|
||||||
Icon: IconLock,
|
|
||||||
},
|
|
||||||
].filter(isDefined)}
|
|
||||||
isIconDisplayedOnHoverOnly={false}
|
|
||||||
onClick={() => handleViewSelect(indexView.id)}
|
|
||||||
LeftIcon={getIcon(indexView.icon)}
|
|
||||||
text={indexView.name}
|
|
||||||
accent="placeholder"
|
|
||||||
isDragDisabled
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</DropdownMenuItemsContainer>
|
</DropdownMenuItemsContainer>
|
||||||
<DropdownMenuSeparator />
|
<DropdownMenuSeparator />
|
||||||
<StyledBoldDropdownMenuItemsContainer>
|
<StyledBoldDropdownMenuItemsContainer>
|
||||||
|
|||||||
Reference in New Issue
Block a user