mobile: fix showing properties from shortcuts

This commit is contained in:
Ammar Ahmed
2026-01-16 11:49:08 +05:00
parent 5633d4504f
commit e241b2fe72
3 changed files with 41 additions and 31 deletions

View File

@@ -30,6 +30,7 @@ import ReorderableList from "../list/reorderable-list";
import { Properties } from "../properties";
import { useSideBarDraggingStore } from "./dragging-store";
import { MenuItem } from "./menu-item";
import { Default_Drag_Action } from "../../hooks/use-actions";
export const ColorSection = React.memo(
function ColorSection() {
@@ -59,7 +60,7 @@ export const ColorSection = React.memo(
const onLongPress = React.useCallback((item: SideMenuItem) => {
if (useSideBarDraggingStore.getState().dragging) return;
Properties.present(item.data as Color);
Properties.present(item.data as Color, false, [Default_Drag_Action]);
}, []);
const renderIcon = React.useCallback((item: SideMenuItem, size: number) => {

View File

@@ -31,6 +31,9 @@ import ReorderableList from "../list/reorderable-list";
import { MenuItem } from "./menu-item";
import { useThemeColors } from "@notesnook/theme";
import { DefaultAppStyles } from "../../utils/styles";
import { useSideBarDraggingStore } from "./dragging-store";
import { Properties } from "../properties";
import { Default_Drag_Action } from "../../hooks/use-actions";
export const PinnedSection = React.memo(
function PinnedSection() {
@@ -57,6 +60,11 @@ export const PinnedSection = React.memo(
});
}, []);
const onLongPress = React.useCallback((item: SideMenuItem) => {
if (useSideBarDraggingStore.getState().dragging) return;
Properties.present(item.data as Notebook, false, [Default_Drag_Action]);
}, []);
const menuItems = useMemo(
() =>
menuPins.map((item) => ({
@@ -65,7 +73,8 @@ export const PinnedSection = React.memo(
icon: item.type === "notebook" ? "notebook-outline" : "pound",
dataType: item.type,
data: item,
onPress: onPress
onPress: onPress,
onLongPress: onLongPress
})) as SideMenuItem[],
[menuPins, onPress]
);
@@ -98,6 +107,7 @@ export const PinnedSection = React.memo(
flexGrow: 1,
width: "100%"
}}
disableDefaultDrag
contentContainerStyle={{
flexGrow: 1
}}

View File

@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* eslint-disable no-inner-declarations */
import { useAreFeaturesAvailable } from "@notesnook/common";
import { isFeatureAvailable, useAreFeaturesAvailable } from "@notesnook/common";
import {
Color,
createInternalLink,
@@ -67,11 +67,10 @@ import { useSelectionStore } from "../stores/use-selection-store";
import { useSettingStore } from "../stores/use-setting-store";
import { useTagStore } from "../stores/use-tag-store";
import { useUserStore } from "../stores/use-user-store";
import { eUpdateNoteInEditor } from "../utils/events";
import { eCloseSheet, eUpdateNoteInEditor } from "../utils/events";
import { deleteItems } from "../utils/functions";
import { convertNoteToText } from "../utils/note-to-text";
import { sleep } from "../utils/time";
import { resetStoredState } from "./use-stored-state";
import { NotesnookModule } from "../utils/notesnook-module";
export type ActionId =
@@ -134,6 +133,31 @@ export type Action = {
locked?: boolean;
};
export const Default_Drag_Action: Action = {
id: "reorder",
title: strings.reorder(),
icon: "sort-ascending",
onPress: async () => {
const feature = await isFeatureAvailable("customizableSidebar");
if (feature && !feature.isAllowed) {
ToastManager.show({
message: feature.error,
type: "info",
context: "local",
actionText: strings.upgrade(),
func: () => {
PaywallSheet.present(feature);
}
});
return;
}
useSideBarDraggingStore.setState({
dragging: true
});
eSendEvent(eCloseSheet);
}
};
function isNotePinnedInNotifications(item: Item) {
const pinned = Notifications.getPinnedNotes();
if (!pinned || pinned.length === 0) {
@@ -439,31 +463,6 @@ export const useActions = ({
icon: "square-edit-outline",
onPress: renameColor
});
actions.push({
id: "reorder",
title: strings.reorder(),
icon: "sort-ascending",
onPress: async () => {
if (features && !features.customizableSidebar.isAllowed) {
ToastManager.show({
message: features.customizableSidebar.error,
type: "info",
context: "local",
actionText: strings.upgrade(),
func: () => {
PaywallSheet.present(features.customizableSidebar);
}
});
return;
}
useSideBarDraggingStore.setState({
dragging: true
});
close();
},
locked: !features?.customizableSidebar.isAllowed
});
}
if (item.type === "reminder") {
@@ -949,7 +948,7 @@ export const useActions = ({
copyNote: true,
novault: true,
locked: true,
item: item,
item: item as Note,
title: strings.copyNote()
});
} else {