fix: hide "Move to folder" when no destination folder is available (#18992)
This commit is contained in:
+5
-2
@@ -22,6 +22,7 @@ type SidePanelEditLinkItemViewProps = OrganizeActionsProps & {
|
||||
updates: { link?: string; name?: string },
|
||||
) => void;
|
||||
onOpenFolderPicker: () => void;
|
||||
showMoveToFolder?: boolean;
|
||||
};
|
||||
|
||||
export const SidePanelEditLinkItemView = ({
|
||||
@@ -35,13 +36,15 @@ export const SidePanelEditLinkItemView = ({
|
||||
onRemove,
|
||||
onAddBefore,
|
||||
onAddAfter,
|
||||
showMoveToFolder = false,
|
||||
}: SidePanelEditLinkItemViewProps) => {
|
||||
const { t } = useLingui();
|
||||
const [urlEditInput, setUrlEditInput] = useState('');
|
||||
const [lastAutoSetName, setLastAutoSetName] = useState<string | null>(null);
|
||||
|
||||
const defaultLabel = t`Link label`;
|
||||
const selectableItemIds = getOrganizeActionsSelectableItemIds(true);
|
||||
const selectableItemIds =
|
||||
getOrganizeActionsSelectableItemIds(showMoveToFolder);
|
||||
|
||||
const currentName = selectedItem.name ?? defaultLabel;
|
||||
const currentDomain = selectedItem.link
|
||||
@@ -91,7 +94,7 @@ export const SidePanelEditLinkItemView = ({
|
||||
onRemove={onRemove}
|
||||
onAddBefore={onAddBefore}
|
||||
onAddAfter={onAddAfter}
|
||||
showMoveToFolder
|
||||
showMoveToFolder={showMoveToFolder}
|
||||
onMoveToFolder={onOpenFolderPicker}
|
||||
/>
|
||||
<SidePanelEditOwnerSection applicationId={selectedItem.applicationId} />
|
||||
|
||||
+5
-2
@@ -20,6 +20,7 @@ import { type NavigationMenuItem } from '~/generated-metadata/graphql';
|
||||
|
||||
type SidePanelEditObjectViewBaseProps = OrganizeActionsProps & {
|
||||
onOpenFolderPicker: () => void;
|
||||
showMoveToFolder?: boolean;
|
||||
showColorOption?: boolean;
|
||||
selectedItem?: NavigationMenuItem | null;
|
||||
};
|
||||
@@ -33,11 +34,13 @@ export const SidePanelEditObjectViewBase = ({
|
||||
onRemove,
|
||||
onAddBefore,
|
||||
onAddAfter,
|
||||
showMoveToFolder = false,
|
||||
showColorOption = false,
|
||||
selectedItem,
|
||||
}: SidePanelEditObjectViewBaseProps) => {
|
||||
const { t } = useLingui();
|
||||
const selectableItemIds = getOrganizeActionsSelectableItemIds(true);
|
||||
const selectableItemIds =
|
||||
getOrganizeActionsSelectableItemIds(showMoveToFolder);
|
||||
const objectMetadataItems = useAtomStateValue(objectMetadataItemsSelector);
|
||||
const views = useAtomStateValue(viewsSelector);
|
||||
|
||||
@@ -88,7 +91,7 @@ export const SidePanelEditObjectViewBase = ({
|
||||
onRemove={onRemove}
|
||||
onAddBefore={onAddBefore}
|
||||
onAddAfter={onAddAfter}
|
||||
showMoveToFolder
|
||||
showMoveToFolder={showMoveToFolder}
|
||||
onMoveToFolder={onOpenFolderPicker}
|
||||
/>
|
||||
</SidePanelList>
|
||||
|
||||
+24
-9
@@ -1,16 +1,14 @@
|
||||
import { CommandMenuItem } from '@/command-menu/components/CommandMenuItem';
|
||||
import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
import { pendingInsertionNavigationMenuItemState } from '@/navigation-menu-item/common/states/pendingInsertionNavigationMenuItemState';
|
||||
import { useDraftNavigationMenuItemsAllFolders } from '@/navigation-menu-item/edit/hooks/useDraftNavigationMenuItemsAllFolders';
|
||||
import { useNavigationMenuItemsDraftState } from '@/navigation-menu-item/edit/hooks/useNavigationMenuItemsDraftState';
|
||||
import { useSelectedNavigationMenuItemEditItem } from '@/navigation-menu-item/edit/hooks/useSelectedNavigationMenuItemEditItem';
|
||||
import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
|
||||
import { useSelectedNavigationMenuItemEditItemLabel } from '@/navigation-menu-item/edit/hooks/useSelectedNavigationMenuItemEditItemLabel';
|
||||
import { useUpdateLinkInDraft } from '@/navigation-menu-item/edit/link/hooks/useUpdateLinkInDraft';
|
||||
import { selectedNavigationMenuItemIdInEditModeState } from '@/navigation-menu-item/common/states/selectedNavigationMenuItemIdInEditModeState';
|
||||
import { parseThemeColor } from '@/navigation-menu-item/common/utils/parseThemeColor';
|
||||
import { SidePanelGroup } from '@/side-panel/components/SidePanelGroup';
|
||||
import { SidePanelList } from '@/side-panel/components/SidePanelList';
|
||||
import { useSidePanelSubPageHistory } from '@/side-panel/hooks/useSidePanelSubPageHistory';
|
||||
import { useSelectedNavigationMenuItemEditItemLabel } from '@/navigation-menu-item/edit/hooks/useSelectedNavigationMenuItemEditItemLabel';
|
||||
import { useUpdateLinkInDraft } from '@/navigation-menu-item/edit/link/hooks/useUpdateLinkInDraft';
|
||||
import { SidePanelEditColorOption } from '@/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption';
|
||||
import { SidePanelEditLinkItemView } from '@/navigation-menu-item/edit/side-panel/components/SidePanelEditLinkItemView';
|
||||
import { SidePanelEditObjectViewBase } from '@/navigation-menu-item/edit/side-panel/components/SidePanelEditObjectViewBase';
|
||||
@@ -18,6 +16,9 @@ import { SidePanelEditOrganizeActions } from '@/navigation-menu-item/edit/side-p
|
||||
import { SidePanelEditOwnerSection } from '@/navigation-menu-item/edit/side-panel/components/SidePanelEditOwnerSection';
|
||||
import { useNavigationMenuItemEditOrganizeActions } from '@/navigation-menu-item/edit/side-panel/hooks/useNavigationMenuItemEditOrganizeActions';
|
||||
import { getOrganizeActionsSelectableItemIds } from '@/navigation-menu-item/edit/side-panel/utils/getOrganizeActionsSelectableItemIds';
|
||||
import { SidePanelGroup } from '@/side-panel/components/SidePanelGroup';
|
||||
import { SidePanelList } from '@/side-panel/components/SidePanelList';
|
||||
import { useSidePanelSubPageHistory } from '@/side-panel/hooks/useSidePanelSubPageHistory';
|
||||
import { SidePanelSubPages } from '@/side-panel/types/SidePanelSubPages';
|
||||
import { SelectableListItem } from '@/ui/layout/selectable-list/components/SelectableListItem';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
@@ -48,6 +49,7 @@ export const SidePanelNavigationMenuItemEditPage = () => {
|
||||
const { selectedItemLabel } = useSelectedNavigationMenuItemEditItemLabel();
|
||||
const { selectedItem } = useSelectedNavigationMenuItemEditItem();
|
||||
const selectedItemType = selectedItem?.type ?? null;
|
||||
const { allFolders } = useDraftNavigationMenuItemsAllFolders();
|
||||
|
||||
const { navigateToSidePanelSubPage } = useSidePanelSubPageHistory();
|
||||
const openFolderPicker = () =>
|
||||
@@ -69,12 +71,20 @@ export const SidePanelNavigationMenuItemEditPage = () => {
|
||||
pendingInsertionNavigationMenuItemState,
|
||||
);
|
||||
|
||||
const currentFolderId =
|
||||
selectedItemType === NavigationMenuItemType.FOLDER
|
||||
? selectedItem?.id
|
||||
: selectedItem?.folderId;
|
||||
const canMoveToOtherFolder = allFolders.some(
|
||||
(folder) => folder.id !== currentFolderId,
|
||||
);
|
||||
|
||||
const handleAddItemToFolder = () => {
|
||||
if (!selectedItem || selectedItem.type !== NavigationMenuItemType.FOLDER) {
|
||||
return;
|
||||
}
|
||||
const folderItemCount = workspaceNavigationMenuItems.filter(
|
||||
(item) => (item.folderId ?? null) === selectedItem.id,
|
||||
(item) => item.folderId === selectedItem.id,
|
||||
).length;
|
||||
setPendingInsertionNavigationMenuItem({
|
||||
folderId: selectedItem.id,
|
||||
@@ -98,6 +108,7 @@ export const SidePanelNavigationMenuItemEditPage = () => {
|
||||
return (
|
||||
<SidePanelEditObjectViewBase
|
||||
onOpenFolderPicker={openFolderPicker}
|
||||
showMoveToFolder={canMoveToOtherFolder}
|
||||
canMoveUp={canMoveUp}
|
||||
canMoveDown={canMoveDown}
|
||||
onMoveUp={onMoveUp}
|
||||
@@ -113,6 +124,7 @@ export const SidePanelNavigationMenuItemEditPage = () => {
|
||||
return (
|
||||
<SidePanelEditObjectViewBase
|
||||
onOpenFolderPicker={openFolderPicker}
|
||||
showMoveToFolder={canMoveToOtherFolder}
|
||||
canMoveUp={canMoveUp}
|
||||
canMoveDown={canMoveDown}
|
||||
onMoveUp={onMoveUp}
|
||||
@@ -135,6 +147,7 @@ export const SidePanelNavigationMenuItemEditPage = () => {
|
||||
updateLinkInDraft(linkId, updates)
|
||||
}
|
||||
onOpenFolderPicker={openFolderPicker}
|
||||
showMoveToFolder={canMoveToOtherFolder}
|
||||
canMoveUp={canMoveUp}
|
||||
canMoveDown={canMoveDown}
|
||||
onMoveUp={onMoveUp}
|
||||
@@ -191,7 +204,9 @@ export const SidePanelNavigationMenuItemEditPage = () => {
|
||||
return (
|
||||
<SidePanelList
|
||||
commandGroups={[]}
|
||||
selectableItemIds={getOrganizeActionsSelectableItemIds(true)}
|
||||
selectableItemIds={getOrganizeActionsSelectableItemIds(
|
||||
canMoveToOtherFolder,
|
||||
)}
|
||||
>
|
||||
<SidePanelEditOrganizeActions
|
||||
canMoveUp={canMoveUp}
|
||||
@@ -201,7 +216,7 @@ export const SidePanelNavigationMenuItemEditPage = () => {
|
||||
onRemove={onRemove}
|
||||
onAddBefore={onAddBefore}
|
||||
onAddAfter={onAddAfter}
|
||||
showMoveToFolder
|
||||
showMoveToFolder={canMoveToOtherFolder}
|
||||
onMoveToFolder={openFolderPicker}
|
||||
/>
|
||||
</SidePanelList>
|
||||
|
||||
Reference in New Issue
Block a user